我按照django教程和mod_wsgi安装指南在LinuxMint18.1上使用Apache和mod_wsg,但是当我运行apache2ctl start时出现错误。
Current thread 0x00007f88c10c7780 (most recent call first):
[Mon Mar 20 21:23:28.781270 2017] [core:notice] [pid 32458:tid 140225331099520] AH00052: child pid 7962 exit signal Aborted (6)
Fatal Python error: Py_Initialize: can't initialize sys
我有什么问题?
我按照以下步骤安装Apache和mod_wsgi:
ls /usr/bin/ -aoh |grep python
的输出为:
lrwxrwxrwx 1 root 26 3月 18 09:40 dh_pypy -> ../share/dh-python/dh_pypy
-rwxr-xr-x 1 root 1.1K 12月 10 2015 dh_python2
lrwxrwxrwx 1 root 29 3月 18 09:40 dh_python3 -> ../share/dh-python/dh_python3
lrwxrwxrwx 1 root 23 3月 18 09:40 pdb2.7 -> ../lib/python2.7/pdb.py
lrwxrwxrwx 1 root 23 3月 18 09:40 pdb3.5 -> ../lib/python3.5/pdb.py
lrwxrwxrwx 1 root 31 3月 18 09:40 py3versions -> ../share/python3/py3versions.py
lrwxrwxrwx 1 root 26 3月 18 09:40 pybuild -> ../share/dh-python/pybuild
lrwxrwxrwx 1 root 18 3月 20 18:36 python -> /usr/bin/python2.7
lrwxrwxrwx 1 root 9 3月 18 09:40 python2 -> python2.7
-rwxr-xr-x 1 root 3.4M 11月 19 17:35 python2.7
lrwxrwxrwx 1 root 9 3月 18 09:40 python3 -> python3.5
-rwxr-xr-x 1 root 4.3M 11月 18 03:23 python3.5
lrwxrwxrwx 1 root 33 11月 18 03:23 python3.5-config -> x86_64-linux-gnu-python3.5-config
-rwxr-xr-x 1 root 4.3M 11月 18 03:23 python3.5m
lrwxrwxrwx 1 root 34 11月 18 03:23 python3.5m-config -> x86_64-linux-gnu-python3.5m-config
lrwxrwxrwx 1 root 10 3月 18 09:40 python3m -> python3.5m
lrwxrwxrwx 1 root 29 3月 18 09:40 pyversions -> ../share/python/pyversions.py
lrwxrwxrwx 1 root 34 11月 18 03:23 x86_64-linux-gnu-python3.5-config -> x86_64-linux-gnu-python3.5m-config
-rwxr-xr-x 1 root 3.2K 11月 18 03:20 x86_64-linux-gnu-python3.5m-config
/etc/apache2/apache2.conf
:
LoadModule wsgi_module /usr/lib/apache2/modules/mod_wsgi.so
WSGIScriptAlias / /home/jeffrey/桌面/Workspace/django-env/hello_django/hello_django/wsgi.py
WSGIPythonHome /home/jeffrey/桌面/Workspace/django-env
WSGIPythonPath /home/jeffrey/桌面/Workspace/django-env/hello_django
<Directory /home/jeffrey/桌面/Workspace/django-env/hello_django/hello_django>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
项目文件结构:
django-env
├── hello_django
│ ├── hello_django
│ │ └── wsgi.py
答案 0 :(得分:0)
我遇到了许多类似的问题,花了很多时间解决它们。最后,我写了以下指令来处理RHEL7。您可能正在使用Ubuntu,因此请阅读下面的配方并进行相应更改。这可能有所帮助。
Setup: RHEL 7, Apache 2.4, Python3.5
-------------------------------------------------------------------------
1. mod_wsgi--------------------------------------------------------------
-------------------------------------------------------------------------
See how I used my python3.5 interpreter to install mod_wsgi.
wget https://github.com/GrahamDumpleton/mod_wsgi/archive/4.5.14.tar.gz
tar -zxvf 4.5.14.tar.gz
cd mod_wsgi-4.5.14
./configure --with-python=/usr/bin/python3.5
make
make install
chmod 755 /usr/lib64/httpd/modules/mod_wsgi.so
-------------------------------------------------------------------------
2. conf file-------------------------------------------------------------
-------------------------------------------------------------------------
My website conf file in /etc/httpd/conf.d dir
portal.conf
LoadModule wsgi_module /usr/lib64/httpd/modules/mod_wsgi.so
<VirtualHost *:80>
ServerAdmin admin@portal.com
ServerName portal
ServerAlias portal.com
DocumentRoot /var/www/html/portal/src/
WSGIDaemonProcess portal python-path=/var/www/html/portal/src:/var/www/html/portal/venv/lib/python3.5/site-packages
WSGIApplicationGroup portal
WSGIScriptAlias / /var/www/html/portal/src/portal/wsgi.py process-group=portal
<Directory /var/www/html/portal/src>
Require all granted
</Directory>
<Directory /var/www/html/portal/src/portal>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
Alias /static /var/www/html/portal/src/static
<Directory /var/www/html/portal/src/static>
Require all granted
</Directory>
Alias /static /var/www/html/portal/src/templates
<Directory /var/www/html/portal/src/templates>
Require all granted
</Directory>
Alias /static /var/www/html/portal/src/media
<Directory /var/www/html/portal/src/media>
Require all granted
</Directory>
</VirtualHost>
-------------------------------------------------------------------------
Correct permissions on /var/www/html/------------------------------------
-------------------------------------------------------------------------
chgrp -R apache /var/www/html
find /var/www/html -type d -exec chmod g+rx {} +
find /var/www/html -type f -exec chmod g+r {} +
chown -R user1 /var/www/html/
find /var/www/html -type d -exec chmod u+rwx {} +
find /var/www/html -type f -exec chmod u+rw {} +
find /var/www/html -type d -exec chmod g+s {} +