Estoy trabajando en la implementación de un proyecto Django con apache2 y MOD_WSGI. Cuando ejecuto el servidor, no puedo acceder al sitio web y aparece el error en el sitio,
Forbidden You don't have permission to access this resource. Apache/2.4.29 (Ubuntu) Server at testnexusstudy.com Port 8081
He configurado todo lo que creo que necesito como el archivo conf,
<VirtualHost *:8081> ServerAdmin webmaster@localhost DocumentRoot /var/www/html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined #Include conf-available/serve-cgi-bin.conf Alias /static /root/StudBud1/static <Directory /root/StudBud1/static> Require all granted </Directory> Alias /media /root/StudBud1/media <Directory /root/StudBud1/media> Require all granted </Directory> <Directory /root/StudBud1/StudBud1> <Files wsgi.py> Require all granted </Files> </Directory> WSGIScriptAlias / /root/StudBud1/StudBud1/wsgi.py WSGIDaemonProcess StudBud1 python-path=/root/StudBud1 WSGIProcessGroup StudBud1 </VirtualHost>He dado todos los permisos que pensé que eran necesarios para apache y aquí está mi ls -la
drwxrwxr-x 12 root www-data 4096 Apr 5 19:36 StudBud1 -rw-rw-r-- 1 root www-data 204800 Apr 5 19:36 db.sqlite3Con suerte, algunos de ustedes tienen experiencia con este tipo de error.
No usaría ni daría acceso de root a su servidor web por razones de seguridad.
Crearía un usuario que solo tenga acceso al grupo www-data, asegúrese de que apache también esté en ese grupo.
Algunos de estos comandos provienen de la distribución de Fedora, por lo que pueden ser un poco diferentes a los de Debian.
$ adduser deploy $ vim /etc/groupEn /etc/grupo:
www-data:x:1003:apache,deploy/ubicación/a/vhosts/website.conf (configuraciones extrañas eliminadas para mayor claridad)
<VirtualHost *:80> Alias /static/ /srv/vhosts/mywebsite/static/ Alias /media/ /srv/vhosts/mywebsite/media/ Alias /robots.txt /srv/vhosts/robots.txt <Directory /srv/vhosts/mywebsite/path/to/django/configs> Require all granted </Directory> <Directory /srv/vhosts/mywebsite/static> Require all granted </Directory> <Directory /srv/vhosts/mywebsite/media> Require all granted </Directory> <Location "/robots.txt"> SetHandler None Require all granted </Location> WSGIDaemonProcess mywebsite python-home=/srv/vhosts/mywebsite/.venv python-path=/srv/vhosts/mywebsite/ WSGIProcessGroup mywebsite WSGIScriptAlias / /srv/vhosts/mywebsite/path/to/django/configs/wsgi.py </VirtualHost>Luego reinicie apache
Una vez hecho esto, asegúrese de dar sus directorios al usuario y agrupe www-data como sudo (-R para recursivo)
$ sudo chown -R deploy:www-data /path/to/webrootSoy un principiante total. En una instalación nueva, tuve que configurar los permisos para el directorio /var/www/html. Por defecto eran -rw------- Escribí sudo chmod 775 * y funcionó.