Приложение Django
Приложение Django предназначено для быстрого старта разработки на Django-framework.
На сервере с Django установлено:
- Операционная система: Ubuntu 20.04
- Веб-сервер: Nginx, gunicorn
- СУБД: PostgreSQL 10
- Python 3.6
- Django 3
Запуск проекта настроен через сервис gunicorn осуществляется командой:
sudo systemctl start gunicorn
В шаблоне есть настроенное виртуальное окружение django_project. Оно расположено в директории пользователя django: /home/django/django_env/
Как создать еще одно окружение Django
Если вам необходимо, можно создать еще одно окружение Django самостоятельно:
Переменные:
${POSTGRES_DB} - имя базы данных для нового проекта
${POSTGRES_USER} - пользователь базы данных для нового проекта
${POSTGRES_PASSWORD} - пароль пользователя базы данных
${USER} - системный пользователь, на котором хотите создать проект
${DOMAIN} - домен для нового проекта
- 1 Подключитесь по SSH.
-
2
Создайте базу данных и пользователя для нового проекта. Выполните команду:
sudo -u postgres psql
Затем по очереди выполните следующие команды, заменив названия в фигурных скобках на свои:
CREATE DATABASE ${POSTGRES_DB}; CREATE USER ${POSTGRES_USER} WITH PASSWORD '${POSTGRES_PASSWORD}'; ALTER ROLE ${POSTGRES_USER} SET client_encoding TO 'utf8'; ALTER ROLE ${POSTGRES_USER} SET default_transaction_isolation TO 'read committed'; ALTER ROLE ${POSTGRES_USER} SET timezone TO 'Europe/Moscow'; GRANT ALL PRIVILEGES ON DATABASE ${POSTGRES_DB} TO ${POSTGRES_USER};
Введите
\q
для выхода. -
3
Переключитесь на системного пользователя, под которым хотите создать проект:
sudo su ${USER}
-
4
Создайте директорию, в которой будет размещено окружение:
mkdir /home/${USER}/django_new_project
-
5
Перейдите в новую директорию:
cd /home/${USER}/django_new_project/
и создайте окружение:
virtualenv django_new_env
-
6
Активируйте проект:
source /home/${USER}/django_new_project/django_new_env/bin/activate
-
7
Установите фреймворк Django и необходимые пакеты:
pip install django gunicorn psycopg2 psycopg2-binary
-
8
Запустите проект:
django-admin.py startproject django_new_env /home/${USER}/django_new_project
-
9
Внесите изменения в конфигурационный файл:
/home/${USER}/django_new_project/django_new_env/settings.py: Хосты ALLOWED_HOSTS = [ ‘$DOMAIN’ ] Доступ к БД DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'NAME': '${POSTGRES_DB}', 'USER': '${POSTGRES_USER}', 'PASSWORD': '${POSTGRES_PASSWORD}', 'HOST': 'localhost', 'PORT': '', } }
В конце файла добавьте:
STATIC_ROOT = os.path.join(BASE_DIR, 'static/')
-
10
Создайте структуру БД, выполнив по очереди следующие команды:
/home/${USER}/django_new_project/manage.py makemigrations /home/${USER}/django_new_project/manage.py migrate /home/${USER}/django_new_project/manage.py collectstatic
-
11
Создайте пользователя «Администратор» Django:
/home/${USER}/django_new_project/manage.py createsuperuser
-
12
Деактивируйте проект и вернитесь в root-пользователя, чтобы перейти к дальнейшей настройке. Для этого последовательно введите команды:
deactivate exit
-
13
Добавьте виртуальный хост для нового проекта. Например, можно скопировать уже имеющийся проект и перенастроить его:
cp /etc/nginx/sites-available/какой-нибудь_уже_имеющийся_домен /etc/nginx/sites-available/${DOMAIN}
Внесите изменения в файл /etc/nginx/sites-available/${DOMAIN}:
server { listen 80; listen [::]:80; server_name ${DOMAIN}; location / { include proxy_params; proxy_pass http://unix:/home/${USER}/django_new_project/django_new_env.sock; } location /static/ { root /home/${USER}/django_new_project; } location = /favicon.ico { access_log off; log_not_found off; } }
Включите виртуальный хост и перезапустите nginx:
ln -s /etc/nginx/sites-available/${DOMAIN} /etc/nginx/sites-enabled/${DOMAIN} systemctl restart nginx.service
-
14
Для удобства можно добавить новый проект на автозапуск в виде сервиса, добавив файл /etc/systemd/system/new_gunicorn.service:
[Unit] Description=gunicorn daemon After=network.target [Service] User=${USER} Group=${USER} WorkingDirectory=/home/${USER}/django_new_project ExecStart=/home/${USER}/django_new_project/django_new_env/bin/gunicorn --access-logfile - --workers 3 --bind unix:/home/${USER}/django_new_project/django_new_env.sock django_new_env.wsgi:application [Install] WantedBy=multi-user.target
-
12
Запустите новый сервис:
systemctl daemon-reload systemctl enable new_gunicorn.service
Готово! Теперь вы можете разместить свой проект на созданном окружении.
Приложение LEMP
LEMP — шаблон для размещения одного или нескольких сайтов на сервере.
На сервере с LEMP установлено:
- Операционная система: Ubuntu 20.04
- Веб-сервер: Nginx 1.14
- СУБД: MySQL 8
- PHP 7.2 (в режиме PHP-FPM)
- Pure-FTPD
Как начать пользоваться
При создании сервера выберите LEMP во вкладке Приложения. После окончания процедуры вам будут доступны:
- сконфигурированный веб-сервер для работы с одним сайтом (по технологическому домену);
- доступ по SSH и FTP;
- доступ в phpMyAdmin.
Этого достаточно для размещения сайта.
После того как сервер будет создан, необходимые доступы будут высланы на вашу контактную почту. Кроме того, краткая инструкция и действующая ссылка на технологический домен будут доступны в консоли, когда вы подключитесь по SSH:
Основные конфигурационные файлы находятся в директориях:
- конфигурационный файл mysql-сервера: /etc/mysql/mysql.conf.d/mysqld.cnf
- конфигурационный файл FTP-сервера: /etc/pure-ftpd/conf/
- основной конфигурационный файл nginx: /etc/nginx/nginx.conf
- конфигурационный файл nginx с виртуальным хостом: /etc/nginx/sites-available/$DOMAIN
- конфигурационный файл: php-fpm /etc/php/7.0/fpm/php.ini
Как добавить еще один сайт на LEMP
- 1 Подключитесь по SSH под логином root.
-
2
Добавьте новый конфигурационный файл виртуального хоста в директории
/etc/nginx/sites-available/$NEW_DOMAIN
Где NEW_DOMAIN — домен нового сайта.
Конфигурационный файл можно скопировать с имеющегося домена, введя команды:
cp /etc/nginx/sites-available/$OLD_DOMAIN /etc/nginx/sites-available/$NEW_DOMAIN
-
3
Приведите новый конфигурационный файл, где NEW_DOMAIN — ваш новый домен, к виду:
server { listen 80; listen [::]:80; root /var/www/${NEW_DOMAIN}; index index.php index.html index.htm; server_name ${NEW_DOMAIN}; location / { try_files $uri $uri/ =404; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php7.0-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } location ~ /\.ht { deny all; } }
-
4
Добавьте новый конфигурационный файл во включенные виртуальные хосты:
ln -s /etc/nginx/sites-available/$NEW_DOMAIN /etc/nginx/sites-enabled/$NEW_DOMAIN
где NEW_DOMAIN — домен нового сайта.
-
5
Разместите файлы нового сайта в директории /var/www/$NEW_DOMAIN и убедитесь, что владелец файлов sites:sites установлен верно:
ls -la /var/www/$NEW_DOMAIN
Где NEW_DOMAIN — домен нового сайта.
-
6
Проверьте, что конфигурационный файл был поправлен корректно:
sudo nginx -t
-
7
Перезапустите nginx:
sudo systemctl restart nginx.service
Готово, вы создали дополнительный виртуальный хост и теперь можете разместить а нём еще один сайт.
Приложение LAMP
LAMP — шаблон для размещения одного или нескольких сайтов на сервере.
На сервере с LAMP установлено:
- Операционная система: Ubuntu 20.04
- Веб-сервер: Apache 2.4
- СУБД: MySQL 8
- PHP 7.2
- Pure-FTPD
Apache запущен под пользователем sites.
Как начать пользоваться
При создании сервера выберите LAMP во вкладке Приложения. После окончания процедуры вам будут доступны:
- сконфигурированный веб-сервер для работы с одним сайтом (по технологическому домену);
- доступ по SSH и FTP;
- доступ в phpMyAdmin.
Этого достаточно для размещения сайта.
После того как сервер будет создан, необходимые доступы будут высланы на вашу контактную почту. Кроме того, краткая инструкция и действующая ссылка на технологический домен будут доступны в консоли, когда вы подключитесь по SSH:
Основные конфигурационные файлы находятся в директориях:
- конфигурационный файл для mysql-сервера: /etc/mysql/mysql.conf.d/mysqld.cnf
- конфигурационный файл для FTP-сервера: /etc/pure-ftpd/conf/
- настройки apache: /etc/apache2/
Как добавить еще один сайт на LAMP
- 1 Подключитесь по SSH под логином root.
-
2
Добавьте новый конфигурационный файл виртуального хоста в директории:
/etc/apache2/sites-available/$NEW_DOMAIN
Где NEW_DOMAIN — домен нового сайта.
Конфигурационный файл можно скопировать с имеющегося домена, введя команды:
cp /etc/apache2/sites-available/$OLD_DOMAIN /etc/apache2/sites-available/$NEW_DOMAIN
-
3
Приведите новый конфигурационный файл, где NEW_DOMAIN — ваш новый домен, к виду:
<VirtualHost *:80> ServerAdmin webmaster@${NEW_DOMAIN} ServerName ${NEW_DOMAIN} ServerAlias www.${NEW_DOMAIN} DocumentRoot /var/www/${NEW_DOMAIN} DirectoryIndex index.php index.html index.htm ErrorLog /var/log/apache2/${NEW_DOMAIN}_error.log CustomLog /var/log/apache2/${NEW_DOMAIN}_access.log combined <Directory /var/www/${NEW_DOMAIN}> AllowOverride All </Directory> </VirtualHost>
-
4
Добавьте новый конфигурационный файл во включенные виртуальные хосты, введя команду:
a2ensite $NEW_DOMAIN
Где NEW_DOMAIN — домен нового сайта.
-
5
Разместите файлы нового сайта в директории /var/www/$NEW_DOMAIN (где NEW_DOMAIN — домен нового сайта) и убедитесь, что владелец файлов sites:sites установлен верно, введя команду:
ls -la /var/www/$NEW_DOMAIN
-
6
Проверьте, что конфигурационный файл был поправлен корректно:
sudo apachectl -t
-
7
Перезапустите apache:
sudo systemctl restart apache2.service
Как разместить сайт на приложения LAMP и LEMP
На сервер добавлен технологический домен вида 123-123-123-123.cloudvps.regruhosting.ru, по которому можно проверить доступность вашего сайта. Также сайт будет доступен напрямую по IP.
Добавить больше сайтов
Шаблон настроен сконфигурирован для загрузки одного сайта. Чтобы добавить больше сайтов на LAMP, используйте инструкцию выше. Чтобы добавить больше сайтов на LEMP, используйте инструкцию выше.
Как разместить файлы
- 1 Подключитесь по FTP.
- 2 Вы автоматически попадете в каталог вида /var/www/.
- 3 Перейдите в каталог технологического домена 123-123-123-123.cloudvps.regruhosting.ru.
- 4 Загрузите файлы вашего сайта.
Как импортировать базу данных
- 1 Войдите в phpMyAdmin. Доступы высланы в стартовом письме.
-
2
Создайте базу данных и пользователя:
- 3 Нажмите кнопку Go.
- 4 Импортируйте дамп (резервную копию базы данных) по инструкции.
Как настроить DNS
Теперь вам осталось привязать домен к облачному сервер. Для этого воспользуйтесь статьей: Как привязать домен к Облачному VPS.
Помогла ли вам статья?
Спасибо за оценку. Рады помочь 😊