He cambiado la configuración de Apache para apuntar hacia una carpeta en mi directorio de inicio:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /home/dbugger/html
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /home/dbugger/html/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>
Incluso he dado mi /home/dbugger/html
permiso 777. Pero sigo recibiendo el mismo mensaje de error en http://localhost
: "403 Prohibido"
¿Qué es lo que me estoy perdiendo?
/home/dbugger
permiso?Respuestas:
Esto funciono para mi
Lo importante era cambiar
a
fuente
Allow from all
apache 2.4 en adelante - serverfault.com/questions/549517/…AllowOverride
aAll
en su raíz directorio es imprudente en el mejor! Consulte httpd.apache.org/docs/2.4/mod/core.html#allowoverride para más detalles.Habilitar
userdir
módulo:Habilite la ejecución de PHP en el directorio de usuarios:
(O si usa php7.0, por ejemplo)
Comente esta parte (coloque
#
al comienzo de cada línea):Presione Ctrl+ Xpara guardar
Habilitar listado de directorio:
Agrega esto:
Presione Ctrl+ Xpara guardar
Reinicie apache (
sudo
requerido aquí también):Ahora ponga sus archivos php en el
/home/yourname/public_html
directorio y vayahttp://localhost/~yourname
desde su navegador web.fuente
Apache se ejecuta como usuario
www-data
. Si no tiene permiso de ejecución en su hogar, apache no podrá leer ningún archivo.Cambie el grupo de su hogar a
www-data
:Y déle permiso solo para recorrer su directorio de inicio:
También puede restringir los permisos de
/home/dbugger/html
:fuente
/home/dbugger
usar/home/dbugger/html
?/home/dbugger/html
lugar de 777, pero debe tener en cuenta que si el usuario www-data no puedecd
acceder a su hogar, no podrá acceder a ningún archivo o subcarpeta. Entonces, si el permiso de su casa esrwx------ dbugger:dbugger
apache, no podrá acceder a ningún archivo dentro de su casa. Si desea restringir un poco el acceso, puede intentar dar solo permiso de ejecución (chmod g+x /home/dbugger
), no estoy seguro, pero creo que funciona.chgrp www-data /home/dbugger
en combinación con el método @DavidGreene, funcionó para mísudo usermod -a -G dbugger www-data
, después de eso debe reiniciar apache.No necesita cambiar los permisos si desea utilizar su directorio de inicio para alojar el entorno de desarrollo, al menos que necesita permisos de escritura para algunas aplicaciones. Necesita el módulo apache mod_userdir y puede acceder a / home / user_name / public_html / * de esta manera http: //domain.local/~user_name/dir_name/ * para usar un host virtual, para usar el módulo mod_userdir necesita crear un símbolo enlace como este:
fuente
a2enmod userdir