¿Cómo hago para que mi directorio de usuarios vuelva a funcionar para compartir en la web?

Tenía habilitado el uso compartido web en Lion y un sitio web en http://localhost/~user, donde userestá 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?

Respuestas (5)

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
Lo siento, mi error, también lo necesitas para el nombre del archivo conf. Sin embargo, $(basename ~) debería funcionar también
Hice algo un poco diferente a esto. Gracias indiv por la información que me ayudó a crear una solución personalizada para mi configuración. Agregué el bloque "Directorio" que tiene que /etc/apache2/extra/httpd-userdir.conf con un "*" en lugar de "$USER_DIR". Esto habilita los directorios de usuarios para todos los usuarios que tienen un directorio "Sitios".

Tuve que agregar FollowSymLinkslo 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>

( usernametiene 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.