26 votos

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

Tenía activado el uso compartido de la web en Lion y un sitio web en http://localhost/~user donde user es mi directorio de usuario. Cuando actualicé a Mountain Lion, la compartición web (Apache) permaneció habilitada y puedo ir a localhost y obtener la página web predeterminada "¡Funciona!", pero ya no puedo acceder a mi página de usuario. El error es el siguiente

Prohibido

No tienes permiso para acceder a /~user/ en este servidor.

¿Cómo puedo volver a activar la página web de mi directorio de usuarios?

18voto

innaM Puntos 22831

He aquí cómo puede volver a habilitar la página web con la línea de comandos utilizando Terminal.

Primero copia esto y pégalo en Terminal. Puede que tenga que pulsar enter después de pegarlo para ejecutarlo. Le pedirá su contraseña porque está añadiendo un archivo al directorio de su 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

A continuación, ejecute este comando para reiniciar el servidor web:

sudo apachectl restart

0 votos

Lo siento, me equivoqué, lo necesitas también para el nombre del archivo conf. Sin embargo, $(basename ~) debería funcionar también

1 votos

Hice algo ligeramente diferente a esto. Gracias indiv para la información que me ayudó a crear una solución personalizada para mi configuración. Añadí el bloque "Directorio" que tienes a /etc/apache2/extra/httpd-userdir.conf con un "*" en lugar de "$USER_DIR". Esto habilita los directorios de usuario para todos los usuarios que tienen un directorio "Sitios".

1voto

Satanicpuppy Puntos 4902

Tuve que añadir FollowSymLinks como sigue 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 sustituido por su nombre de usuario real)

1voto

Wowfunhappy Puntos 33

He aquí un ejemplo † que habilitará el servidor apache integrado de MacOS y le permitirá utilizar el directorio Sites de su carpeta de usuario. Es compatible con la última versión de macOS en el momento de escribir este artículo (Mojave), y también se ha probado que funciona con Sierra y High Sierra. Sospecho que funcionará con otras versiones también - hice todo lo posible para escribir de una manera a prueba de 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, es <em>técnicamente </em>una línea, aunque sea muy muy larga...

0voto

Véase https://apple.stackexchange.com/a/57555/9058 Básicamente, tienes que habilitar la compartición web por usuario manualmente (con Terminal.app).

0voto

innaM Puntos 22831

Mountain Lion elimina el archivo de configuración que da acceso web a tu 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 quieres jugar con la línea de comandos, aquí tienes un Applescript que puedes ejecutar para crear un archivo de configuración para tu usuario. Te pedirá tu contraseña porque tiene que crear el archivo en un directorio a nivel de sistema y necesita privilegios elevados.

En su carpeta de aplicaciones o Launchpad, abra Other > Applescript Editor . Copia el script que aparece a continuación y pégalo en el área de texto del editor de Applescript. A continuación, haga clic en el icono Ejecutar botón.

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 el script finalice, deberías poder acceder a tu página web a nivel de usuario.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X