- Я пытаюсь запустить django, используя модуль mod_wsgi в easyapache4 на CentOS 7 VPS, предоставленном Hostgator.
- Я новичок в этом. У меня нет опыта развертывания приложений Django на живых серверах, но я развернул в локальной сети нашего офиса на сервере с Ubuntu.
- Я несу ответственность за развертывание Django приложений на Hostgator VPS, которые у нас уже были для развертывания сайтов Wordpress, Magento на базе PHP, и мы не собираемся вкладывать деньги в других провайдеров, так как мы У нас уже есть VPS.
У нашей учетной записи VPS для Hostgator Reseller есть CentOS 7, просто apache 4, и я успешно установил mod_wsgi, который не был предварительно установлен.
Случай 1: PHP и Django в одном домене
Мы обычно запускаем наши клиентские проекты в нашем домене, например www.ourdomain.com/php/php_project_one/. Чтобы запустить django в том же домене по другому пути к как www.ourdomain.com/python/python_project_one/ как должна быть конфигурация виртуального хоста?
Я знаю, что всякий раз, когда я регистрирую новую учетную запись пространства сервера через WHM, в конфигурационный файл apache для этого конкретного домена добавляется конфигурация виртуального хоста. Итак, должен ли я редактировать эту конфигурацию виртуального хоста для создания указанного Case 1 ?
Я попытался добавить дополнительную конфигурацию в конец существующей конфигурации виртуального хоста для www.ourdomain.com загрузив внешний файл конфигурации, который включал конфигурацию python, которая не работала. Не было ошибок в конфигурационном файле. Apache успешно перезапущен. PHP работал нормально. В папке проекта Python отображается «Внутренняя ошибка сервера 500» с загруженной конфигурацией python и «У вас нет прав для просмотра этой папки» без загруженной конфигурации python.
Случай 2: Django только для домена
Только для python проектов, если я создаю учетную запись через WHM, язык конфигурации по умолчанию будет php. Мне нужно полностью изменить этот домен, чтобы он работал над python проектами. Итак, скажем www.pythondomain.com. Должен ли я очистить всю конфигурацию виртуального хоста по умолчанию для www.pythondomain.com и изменить конфигурацию, указав python среду и папку? Я знаю, что загружено много модулей (я не знаю каждый из них, что он делает), которые используются в целях безопасности и по другим причинам, не должны ли они быть загружены тоже?
Все, что я пытался сделать, это Случай 1 в нашем домене, что является предпочтительным.
Это часть основного apache conf файла. Этот виртуальный хост предназначен для субдомена www.python.ourdomain.com.
Кроме того, этот каталог субдомена находится в www.ourdomain.com public_ html. ie, одни и те же файлы php / html могут быть загружены как с www.python.ourdomain.com, так и с www.ourdomain.com/python/
<VirtualHost ipaddress:80>
ServerName python.ourdomain.com
ServerAlias www.python.ourdomain.com
DocumentRoot /home/user/public_html/python
ServerAdmin webmaster@python.ourdomain.com
UseCanonicalName Off
# some of the modules loaded are : suphp_module, mod_passenger.c
<IfModule proxy_fcgi_module>
<FilesMatch \.(phtml|php[0-9]*)$>
SetHandler proxy:unix:/opt/cpanel/ea-php71/root/usr/var/run/php-fpm/a02f2d3c0dcb7df70a4c8c597f92c4f4e90c6349.sock|fcgi://python.ourdomain.com
</FilesMatch>
</IfModule>
# To customize this VirtualHost use an include file at the following location
Include "/etc/apache2/conf.d/userdata/std/2_4/user/python.ourdomain.com/*.conf"
</VirtualHost>
Я добавил файл conf в /etc/apache2/conf.d/ userdata / std / 2_4 / user / python .ourdomain.com /, который включает:
Alias /static /home/user/public_html/python/billing/static
Alias /media /home/user/public_html/python/billing/media
<Directory /home/user/public_html/python/billing/static>
Require all granted
</Directory>
<Directory /home/user/public_html/python/billing/media>
Require all granted
</Directory>
<Directory /home/user/public_html/python/billing/billing>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
WSGIDaemonProcess billing python-path=/home/user/public_html/python/billing:/home/user/public_html/python/billing/venv/lib/python3.6/site-packages
WSGIProcessGroup billing
WSGIScriptAlias / /home/user/public_html/python/billing/billing/wsgi.py
mod_wsgi загружен. Проверено.
# sudo /usr/sbin/httpd -M
[sudo] password for user:
Loaded Modules:
core_module (static)
so_module (static)
http_module (static)
...
suphp_module (shared)
wsgi_module (shared)
passenger_module (shared)
#