#python #django #apache
#python #django #apache
Вопрос:
У меня есть проект Django, загруженный Lightsail. Я хочу запустить его с помощью Apache. Я следовал руководству, расположенному здесь, но по какой-то причине он выдает следующую ошибку сайта и ошибку apache при попытке подключиться к серверу только по его IP.
Получение следующей ошибки при посещении моего сайта:
500 Внутренняя ошибка сервера
При просмотре моих журналов Apache
No WSGI daemon process called 'smp_api' has been configured: /home/ubuntu/test/smp_api/wsgi.py,
WSGI.py Файл
import os
from django.core.wsgi import get_wsgi_application
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "smp_api.settings")
application = get_wsgi_application()
Apache Conf
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
Alias /static /home/ubuntu/test/static
<Directory /home/ubuntu/test/static>
Require all granted
</Directory>
<Directory /home/ubuntu/test/smp_api>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
<Directory /test>
Require all granted
</Directory>
WSGIDaemonProcess python-path=/home/ubuntu/test
WSGIProcessGroup smp_api
WSGIScriptAlias / /home/ubuntu/test/smp_api/wsgi.py
</VirtualHost>
Ответ №1:
Отредактируйте свой Apache conf с помощью приведенной ниже команды:
sudo nano /etc/apache2/sites-available/000-default.conf
Затем установите конфигурацию виртуального хоста, как показано ниже:
<VirtualHost *:80>
. . .
Alias /static /home/user/myproject/static
<Directory /home/user/myproject/static>
Require all granted
</Directory>
<Directory /home/user/myproject/myproject>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
WSGIDaemonProcess myproject python-path=/home/user/myproject python-home=/home/user/myproject/myprojectenv
WSGIProcessGroup myproject
WSGIScriptAlias / /home/user/myproject/myproject/wsgi.py
</VirtualHost>
ПРИМЕЧАНИЕ:
- Замените
myproject
на имя каталога вашего проекта Django. - Замените
myprojectenv
на имя вашей папки virtualenv и убедитесь, что папка virtualenv находится внутри корневой папки вашего проекта Django. - Запустите
sudo chmod 664 /home/user/myproject/db.sqlite3
, чтобы разрешить apache читать и записывать ваш файл базы данных. - Запустите
sudo chown :www-data /home/user/myproject/db.sqlite3
, чтобы разрешить группе apache владеть файлом базы данных. - Запустите
sudo chown :www-data /home/user/myproject
, чтобы предоставить apache полный доступ для записи в корневой каталог проекта. 6 Наконец, запуститеsudo service apache2 restart
, чтобы перезапустить apache. - Попробуйте получить доступ к вашему веб-сайту Django с IP-адресом вашего сервера или доменным именем.