Tenía habilitado el uso compartido web en Lion y un sitio web en http://localhost/~user
, donde user
está mi directorio de usuarios. Cuando actualicé a Mountain Lion, el uso compartido web (Apache) permaneció habilitado y puedo ir a localhost y obtener el mensaje "¡Funciona!" página web predeterminada, pero ya no puedo acceder a mi página de usuario. el error es
Prohibido
No tienes permiso para acceder a /~usuario/ en este servidor.
¿Cómo vuelvo a habilitar la página web de mi directorio de usuarios?
Así es como puede volver a habilitar la página web con la línea de comando usando Terminal.
Primero copie esto y péguelo en la Terminal. Es posible que deba presionar enterdespués de pegar para ejecutarlo. Le pedirá su contraseña porque está agregando un archivo a su directorio de sistema.
USER_DIR=$(basename $(echo ~))
sudo bash -c "cat > /etc/apache2/users/$USER_DIR.conf" <<TEXT
<Directory "/Users/$USER_DIR/Sites">
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
TEXT
Luego ejecute este comando para reiniciar el servidor web:
sudo apachectl restart
Tuve que agregar FollowSymLinks
lo siguiente a mi /etc/apache2/users/username.conf
:
<Directory "/Users/username/Sites/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Allow from all
</Directory>
( username
tiene que ser reemplazado por su nombre de usuario real)
Aquí hay un comando de terminal de una línea † que habilitará el servidor apache incorporado de macOS y le permitirá usar el directorio de sitios en su carpeta de usuario. Es compatible con la última versión de macOS a partir de este escrito (Mojave), y también se ha probado para funcionar con Sierra y High Sierra. Sospecho que también funcionará con otras versiones; hice todo lo posible para escribirlo de manera que esté preparado para el futuro.
mkdir ~/Sites ; sudo bash -c "printf '<Directory \"/Users/`whoami`/Sites/\">\n\tAddLanguage en .en\n\tAllowOverride All\n\tOptions Indexes MultiViews FollowSymLinks\n\tRequire all granted\n</Directory>' > /etc/apache2/users/`whoami`.conf ; echo 'AddDefaultCharset utf-8' >> /etc/apache2/httpd.conf ; sed -i '' '/LoadModule userdir_module libexec\/apache2\/mod_userdir.so/s/^#*//g' /etc/apache2/httpd.conf ; sed -i '' '/LoadModule php[0-9]_module libexec\/apache2\/libphp[0-9].so/s/^#*//g' /etc/apache2/httpd.conf ; sed -i '' '/Include \/private\/etc\/apache2\/extra\/httpd-userdir.conf/s/^#*//g' /etc/apache2/httpd.conf ; sed -i '' '/Include \/private\/etc\/apache2\/users\/\*.conf/s/^#*//g' /etc/apache2/extra/httpd-userdir.conf ; apachectl start"
† Bueno, técnicamente es una línea, incluso si es muy, muy larga...
Consulte https://apple.stackexchange.com/a/57555/9058 , básicamente debe habilitar el uso compartido web por usuario manualmente (con Terminal.app).
Mountain Lion elimina el archivo de configuración que da acceso web a su directorio de usuario. Los archivos de configuración están en /etc/apache2/users/
. El que falta es user.conf
, donde usuario es su nombre de usuario abreviado.
Si no quiere jugar con la línea de comando, aquí hay un Applescript que puede ejecutar para crear un archivo de configuración para su usuario. Le pedirá su contraseña porque tiene que crear el archivo en un directorio a nivel del sistema y necesita privilegios elevados.
En su carpeta de aplicaciones o Launchpad, abra Other > Applescript Editor
. Copie el script a continuación y péguelo en el área de texto del editor de Applescript. Luego haga clic en el botón Ejecutar .
set userHome to (short user name of (system info))
set configFile to "/etc/apache2/users/" & userHome & ".conf"
set configFileContents to "<Directory \"/Users/" & userHome & "/Sites/\">
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>"
do shell script "echo '" & configFileContents & "' > " & configFile with administrator privileges
do shell script "/usr/sbin/apachectl restart" with administrator privileges
Cuando finalice el script, debería poder acceder a su página web de nivel de usuario.
sin ladera
jason