Вступление
В этой статье показано, как развернуть веб-приложение с использованием популярной платформы Python Django. Прелесть разработки с использованием популярных веб-фреймворков заключается в том, что для вас проделана большая повторяющаяся работа, поэтому вы можете сосредоточиться на создании своего сайта.
Независимо от того, являетесь ли вы разработчиком или нет, приятно знать, что ядро того, что вы запускаете в своей Droplet, подверглось проверке большого сообщества с открытым исходным кодом и должно быть менее подвержено большим дырам в безопасности.
Одна вещь, которая не является простой по своей сути, это знание того, как настроить эти веб-фреймворки и запустить их вне вашей собственной среды разработки или тестирования. В этой статье мы покажем вам, как это сделать, используя стандартный Apache, mod_wsgi и стек MySQL, работающий поверх FreeBSD 10.1.
цели
-
Установите и настройте виртуальную среду Python для своего сайта Django
-
Создать и настроить образец сайта Django для тестирования.
-
Настройте простой и безопасный сервер MySQL
-
Сконфигурируйте простой виртуальный хост Apache, который будет обслуживать ваш сайт Django
-
Проверьте, правильно ли работает новый сайт
Предпосылки
Прежде чем начать это руководство, вам понадобится следующее:
-
Капля FreeBSD 10.1
-
Получите доступ к своей корневой учетной записи или учетной записи с привилегиями sudo, следуя этому tutorial
-
Знание того, как редактировать текстовые файлы из командной строки
-
Среда оболочки * Bash *, так как мы будем использовать Virtualenv позже в этом руководстве. Следуйте инструкциям в Changing the Default Shell раздела * Как начать работу с FreeBSD 10.1 *. Вам может потребоваться выйти из системы и войти снова, чтобы получить оболочку Bash для вашего пользователя * freebsd *
Шаг 1 - Установите и настройте виртуальную среду Python
Обо всем по порядку; убедитесь, что ваши текущие пакеты обновлены.
sudo pkg update && sudo pkg upgrade -y
Теперь установите все необходимые вам пакеты, выполнив следующую команду и ответив «да» в появившейся подсказке Вы заметите, что установлено гораздо больше, чем мы набрали, поскольку система + pkg +
вычисляет и выбирает все нужные зависимости.
sudo pkg install bash ap24-mod_wsgi3 py27-virtualenv mysql56-server
Команда + virtualenv +
, которую вы скоро будете использовать, не очень хорошо работает с пользовательской оболочкой + tcsh +
по умолчанию во FreeBSD. Нам нужно + bash +
вместо этого. Если вы пришли из среды Linux, вы будете чувствовать себя как дома. Если вы еще этого не сделали в предварительных условиях, следуйте инструкциям https://www.digitalocean.com/community/tutorials/how-to-get-started-with-freebsd-10-1#changing-the- default-shell- (необязательно) [здесь] сейчас.
-
Вы используете оболочку Bash сейчас? * Не забудьте выйти и войти снова. Большой!
Теперь давайте начнем с нашей среды Python.
Чтобы упростить поиск, создайте каталог для своего сайта, введя эту команду.
sudo mkdir -p /www/data/
Предоставьте вашей учетной записи доступ к работе в вашем новом каталоге проекта. Часть + whoami +
команды автоматически заполняет ваше текущее имя пользователя.
sudo chown -R `whoami` /www/data/
Перейдите в недавно созданный каталог.
cd /www/data/
Использование виртуальных сред для сайта или приложения позволяет настраивать, какие пакеты и версии Python вы устанавливаете, вместо того, чтобы устанавливать их на общесистемном уровне.
Теперь создайте виртуальную среду python с помощью утилиты + virtualenv +
.
virtualenv venv
Активируйте эту среду, чтобы убедиться, что вы устанавливаете требования для своего сайта Django в этой среде, а не на уровне всей системы.
source venv/bin/activate
Вы узнаете, что находитесь в правильной среде, когда увидите в командной строке предваряющий + (venv) +
.
Если все выглядит в порядке, убедитесь, что инструменты Python обновлены, чтобы выполнить этот шаг.
pip install -U setuptools pip
Шаг 2 - Создание и настройка примера сайта Django
Теперь вы можете создать начало сайта Django. Вы начнете с установки требований Python, необходимых для запуска сайта. Убедитесь, что вы все еще находитесь в каталоге + / www / data / +
и в своей виртуальной среде.
pip install django mysql-python
С установленной поддержкой Python в Django и MySQL пришло время создать макет проекта с помощью утилиты Django + django-admin +
.
django-admin.py startproject mysite .
Используя ваш любимый редактор, откройте файл + mysite / settings.py +
.
vi /www/data/www.example.com/mysite/settings.py
Измените раздел + DATABASES +
, чтобы он выглядел следующим образом. Убедитесь, что вы заменили ++
на что-то более безопасное.
/www/data/www.example.com/mysite/settings.py
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'mysite',
'USER': 'mysite',
'PASSWORD': '',
'HOST': '/tmp/mysql.sock',
}
Сохраните ваши изменения.
Шаг 3 - Настройте простой и безопасный сервер MySQL
Вы уже установили MySQL, так что теперь его просто нужно настроить.
Сначала немного по хозяйству. Откройте файл + / etc / rc.conf
для редактирования.
sudo vi /etc/rc.conf
Добавьте эти две строки в конец файла. Это гарантирует, что MySQL и Apache будут запускаться при запуске сервера.
/etc/rc.conf
mysql_enable="YES"
apache24_enable="YES"
Мы еще не настроили Apache, но теперь проще добавить обе строки, чтобы потом не забыть.
Запустите экземпляр сервера MySQL.
sudo service mysql-server start
Запустите эту команду для защиты вашего сервера базы данных.
mysql_secure_installation
Прочитайте все подсказки (для вашего собственного знания) и ответьте + Y +
всем, кроме выбора пароля. Для запросов пароля, пожалуйста, установите пароль * root * MySQL на что-то безопасное.
Войдите в свой новый и достаточно безопасный экземпляр MySQL, используя только что установленный пароль.
mysql -u root -p
Выполните эту команду для создания примера базы данных сайта, которая называется * mysite *.
create database mysite character set utf8;
Теперь используйте эту команду, чтобы создать пользователя базы данных * mysite * и предоставить ему разрешения для базы данных, которую вы только что создали. Убедитесь, что ++
соответствует тому, что вы установили в файле + settings.py +
ранее. На самом деле, вы также можете изменить имя базы данных и имя пользователя; просто убедитесь, что база данных и созданный вами пользователь соответствуют настройкам в файле конфигурации Python.
grant all privileges on mysite.* to 'mysite'@'localhost' identified by '';
Если вы не видите никаких ошибок, вы можете выйти из оболочки MySQL следующим образом:
quit
Теперь, когда база данных готова, вы будете использовать утилиту Django + manage.py +
, чтобы заполнить ее исходными данными вашего примера сайта. Опять же, это должно быть сделано из каталога сайта, + / www / data / +
.
./manage.py migrate
(Необязательно) Шаг 4 - Тестирование нового приложения Django
Прежде чем идти дальше, давайте удостоверимся, что пример сайта Django находится в рабочем состоянии.
Запустите сервер разработки Django, чтобы он мог прослушивать общедоступный сетевой интерфейс вашего Droplet.
./manage.py runserver 0.0.0.0:8000
На панели DigitalOcean Droplet найдите внешний IP-адрес вашей капли. Теперь в вашем браузере зайдите + http: // <ваш ip здесь>: 8000 +
. Вы должны увидеть страницу по умолчанию для новой установки Django.
Очень важно, чтобы вы нажимали + CTRL + C +
на клавиатуре, чтобы выйти из сервера разработки Django, так как он не должен использоваться в работе.
Примечание о безопасности
При работе на любом сайте можно прочитать много информации о безопасности и рекомендациях Чтобы запустить что-то реальное в производстве, настоятельно рекомендуем вам дополнительно прочитать о том, как правильно защитить общедоступный веб-сервер и сервер базы данных.
После этого публичного объявления пришло время настроить Apache для обслуживания нашего сайта Django.
Шаг 5 - Настройте простой виртуальный хост Apache для вашего сайта Django
Используя ваш любимый редактор, создайте и отредактируйте файл + / usr / local / etc / apache24 / Includes / httpd.conf +
:
sudo vi /usr/local/etc/apache24/Includes/httpd.conf
Добавьте все следующие параметры конфигурации, чтобы создать виртуальный хост. Пожалуйста, замените ++
именем вашего сайта, чтобы оно соответствовало каталогам, которые мы создали ранее.
/usr/local/etc/apache24/Includes/httpd.conf
# Settings
ServerName mysite
## Default Overrides
ServerSignature Off
ServerTokens Prod
Timeout 30
## Virtual Hosts
<VirtualHost *:80>
WSGIDaemonProcess mysite python-path=/www/data/:/www/data//venv/lib/python2.7/site-packages/
WSGIProcessGroup mysite
WSGIScriptAlias / /www/data//mysite/wsgi.py
<Directory /www/data//mysite>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
</VirtualHost>
Здесь вы просто указываете Apache установить несколько нормальных параметров конфигурации по умолчанию и где найти код Python для запуска сайта Django с помощью модуля Apache + mod_wsgi +
. This статьи имеет более высокий уровень детализации о виртуальной Apache хосты, если хотите узнать больше.
Запустите веб-сервер Apache.
sudo service apache24 restart
Тестирование примера сайта Django
Теперь вы должны иметь возможность зайти в браузер + http: // +
и увидеть страницу Django по умолчанию. Если вы настроили DNS, вы также можете использовать свой домен.
Заключение
Как вы можете видеть, по теме развертывания даже самых простых веб-сайтов и приложений можно многому научиться. Следующим шагом будет развертывание вашего пользовательского приложения вместо демонстрационного приложения, которое мы использовали в руководстве.
Если у вас есть какие-либо вопросы или комментарии, пожалуйста, оставьте их ниже.
Рекомендуемое чтение
Следующие ссылки могут помочь вам узнать больше о создании и развертывании простого сайта Django.