python django apache virtualenv wsgi

python - La configuración de django apache con WSGIDaemonProcess no funciona



virtualenv (1)

WSGIDaemonProcess Rent python-path=/var/www/rent:/root/.virtualenvs/rent/lib/python2.7/site-packages

Esta es la causa más probable del problema. Ha creado un virtualenv dentro de la carpeta de inicio del superusuario. Pero esa carpeta es poco probable que sea accesible para apache. La carpeta de inicio de un usuario no está accesible para ningún otro usuario de forma predeterminada.

El servidor web y el proceso WSGI se ejecutarán como un usuario no privilegiado que normalmente nobody llama nobody , httpd , apache o algo similar. Si bien puede solucionar este problema cambiando los permisos en / root / eso es un gran no, no. Sería menos peligroso si fuera un usuario común, pero aún así no es una buena idea hacer esto.

La mejor solución es colocar virtualenv en una ubicación accesible para el usuario no privilegiado. /usr/local/virtualenv es una buena ubicación.

Tenga en cuenta que al mover /root/.virtualenvs/ a /usr/local/virtualenv deberá recrearlo de la siguiente manera

source /root/.virtualenvs/rent/bin/activate pip freeze > /tmp/requirements.txt cd /usr/local/ virtualenv virtualenv source virtualenv/bin/activate pip install -r /tmp/requirements.txt

luego edite el archivo httpd.conf para reflejar la nueva ruta.

Pregunta actualizada

[Mon Jul 18 09:20:10.517873 2016] [:error] [pid 30316:tid 139756302964480] [remote 122.164.94.99:48261] Traceback (most recent call last): [Mon Jul 18 09:20:10.518005 2016] [:error] [pid 30316:tid 139756302964480] [remote 122.164.94.99:48261] File "/var/www/rent/Rent/wsgi.py", line 20, in <module> [Mon Jul 18 09:20:10.518141 2016] [:error] [pid 30316:tid 139756302964480] [remote 122.164.94.99:48261] from django.core.wsgi import get_wsgi_application [Mon Jul 18 09:20:10.518236 2016] [:error] [pid 30316:tid 139756302964480] [remote 122.164.94.99:48261] ImportError: No module named django.core.wsgi

Mi virtualhost

<VirtualHost *:80> ServerName ip_address ServerAdmin webmaster@localhost Alias /static/ /var/www/rent/static/ Alias /media/ /var/www/rent/media/ WSGIScriptAlias / /var/www/rent/Rent/wsgi.py WSGIDaemonProcess Rent python-path=/var/www/rent:/root/.virtualenvs/rent/lib/python2.7/site-packages WSGIProcessGroup Rent <Directory /var/www/rent/static> Options -Indexes Order deny,allow Allow from all </Directory> <Directory /var/www/rent/media> Options -Indexes Order deny,allow Allow from all </Directory> LogLevel warn ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>