¿Cómo configurar apache2 con enlaces simbólicos en / var / www /?

14

Quiero configurar un servidor web local en mi Ubuntu (14.04). Así que instalé todo el software para obtener un servidor LAMP.

El problema es que hago algo mal al crear mis hosts virtuales. Quería crear diferentes subdominios en mi localhost. Entonces, por ejemplo, site1.localhost y site2.localhost.

En mi /var/www/directorio creé un enlace simbólico "sitio1" que iba a /home/user/Workspaces/site1.

En mi archivo Apache error.log recibí el siguiente error.

[core:error] [pid 12679] [client 127.0.0.1:59006] AH00037: Symbolic link not allowed or link target not accessible: /var/www/site1

En mi configuración de apache tengo:

<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>

Así que creo que hay algo mal con los permisos de las carpetas. Busqué en Google y encontré algunas personas con el mismo problema, pero todas las respuestas siempre que no funcionaron. Agregué mi propio nombre de usuario al grupo www-data y cosas así.

Entonces ls -la /var/wwwvuelve:

total 12
drwxrwsr-x  3 user www-data 4096 okt 13 19:08 .
drwxr-xr-x 14 root root     4096 okt  1 22:50 ..
drwxr-xr-x  2 root www-data 4096 okt  1 22:50 html
lrwxrwxrwx  1 root www-data   29 okt 13 19:08 site1 -> /home/user/Workspaces/site1/

y ls -la /home/juul/Workspaces/site1vuelve:

total 24
drwxrwxr-x 4 user www-data 4096 okt 13 18:21 .
drwxrwx--- 3 user user     4096 okt 13 17:31 ..
-rw-rw-r-- 1 user user        0 okt 13 18:21 index.html
drwxrwxr-x 4 user www-data 4096 okt 13 16:12 .metadata
drwxrwxr-x 5 user www-data 4096 okt 13 16:53 Project

Espero que alguien pueda ayudarme con esto :-)

user300279
fuente

Respuestas:

5

Estos permisos impiden el apacheacceso a usted

drwxrwx--- 3 user user     4096 okt 13 17:31 ..

Debe otorgar permisos de ejecución para otros:

chmod o+x /home/juul/Workspaces/

(y tal vez /home/juul/también).

muru
fuente
según la respuesta de @muru, asegúrese de que todo el directorio que contiene tenga el conjunto de permisos "x". Si uno no tiene, nunca funcionará
dawez
3

Tengo una instalación estándar de Apache en 14.04. No hay archivos o directorios que especifiquen "www-data". ¿Cambiaste todo esto tú mismo? Hay mucha información desactualizada o simplemente incorrecta sobre cómo configurar servidores web, así que tenga cuidado con a quién sigue y deshaga lo que no funciona.

Dicho esto, "sitio1" debe estar en el htmldirectorio y ser de su propiedad. Realmente no necesita ser un enlace simbólico; Puede especificar un directorio diferente en el archivo de configuración. Algo como esto:

# Add this to the end of the existing 000-default.conf file (after "</VirtualHost>")
<VirtualHost *:80>
    <Directory  /home/user/Workspaces/site1>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>
    DocumentRoot /home/user/Workspaces/site1
    ServerName site1
</VirtualHost>
Marty Fried
fuente
1

Solución para: Enlace simbólico no permitido o destino del enlace no es accesible: /var/www/html/mySymbolicLink.

Esto claramente es un problema con los permisos. El problema es que el html bajo su directorio de inicio es propiedad de su usuario, y el servidor apache lo ejecuta otro usuario, por lo que no puede acceder a su directorio de inicio.

La solución sería agregar al usuario que ejecuta apache a su grupo, normalmente lo mismo que su nombre de usuario. Entonces, en mi caja CentOS lo hice como:

sudo usermod -a -G dev apache

Entonces esto agrega el usuario apache al grupo dev. Ahora necesito dar permisos de ejecución.

En /home:

chmod g+x dev -R

Esto otorgará permiso de ejecución a mi carpeta solo para los miembros del grupo. Y eso es. Tendrá que modificar el usuario de Apache para lo que sea que esté ejecutando su servidor web, creo que para Ubuntu el usuario es www-data.

Roberto Aguilar
fuente