Мой Apache, кажется, работает нормально, за исключением двух вещей.
1) Сообщение в error.log:
[wsgi:warn] [pid 1234:tid 12345678] (2)No such file or directory: mod_wsgi (pid=1234): Unable to stat Python home /home/user/myproject/myprojectenv:/home/user/myproject/myprojectenv/myproject. Python interpreter may not be able to be initialized correctly. Verify the supplied path and access permissions for whole of the path.
- Когда я пытаюсь перейти по адресу 127.0.0.1:8181 в браузере, я получаю сообщение 403 Запрещено.
Я работаю на Ubuntu 14.04, Apache 2.4.7, Python 3.6.1 и Django. Я скомпилировал mod_wsgi с правильной версией Python (разделяемая библиотека). В каталоге /home /user установлено 755 разрешений, и все, начиная с myproject и ниже, - 775.
Обратите внимание, что наше имя пользователя - "пользователь", а виртуальная среда - myprojectenv.
Фрагмент кода из apache2.conf:
IncludeOptional mods-enabled/*.load
IncludeOptional mods-enabled/*.conf
Include ports.conf
<Directory />
Options FollowSymLinks
AllowOverride None
Require all denied
</Directory>
<Directory /usr/share>
AllowOverride None
Require all granted
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
<Directory /home/user/myproject/projectenv/myproject/myapp>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
IncludeOptional sites-enabled/*.conf
IncludeOptional conf-enabled/*.conf
От 000-default.conf:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
<VirtualHost *:8181>
ServerName localhost
ServerAlias localhost
ServerAdmin webmaster@localhost
DocumentRoot /home/user/myproject/myprojectenv/myproject
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
Alias /static/ /home/user/myproject/myprojectenv/myproject/myproject_static/
<Directory /home/user/myproject/myprojectenv/myproject/myproject_static>
Require all granted
</Directory>
<Directory /home/user/myproject/myprojectenv/myproject/myapp>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
WSGIDaemonProcess myproject user=user home=/home/user/myproject/myprojectenv/lib/python3.6 python=path=/home/user/myproject/myprojectenv/myproject python-home=/home/user/myproject/myprojectenv:/home/user/myproject/myprojectenv/myproject
WSGIProcessGroup myproject
WSGIApplicationGroup localhost:8181
WSGIScriptAlias /home/user/myproject/myprojectenv/myproject /home/user/myproject/myprojectenv/myproject/myapp/wsgi.py
</VirtualHost>
В файле base.ini нашего проекта мы имеем следующее:
[web_server]
host = 127.0.0.1
port = 8181
url = http://${host}:${port}/
Файл ports.conf включает в себя 80 и 8181.
Я знаю, что где-то есть разрыв, но я не знаю где. Любые подсказки были бы великолепны. Благодарю.