Enlace simbólico / var / www directorio


17

He estado tratando de crear un enlace simbólico:

/ var / www -> / home / USER / code /

Siguiendo /programming/9104337/create-a-symbolic-link-of-directory-in-ubuntu , ingresé el siguiente comando:

sudo ln -s / var / www / home / USER / code

Sin embargo, el resultado no es lo que espero. Mi enlace se almacena dentro del directorio / www en lugar de vincular el directorio www en sí. Uso apache como servidor web local, para mi caso, tengo que acceder a mi código como

localhost / código / PROYECTO

mientras que deseo tener algo como

localhost / PROYECTO

El codedirectorio solo debe servir como un directorio donde almaceno todos mis proyectos.

¿Algo que me estoy perdiendo?


1
¿Eliminaste el wwwdirectorio? Creará un enlace simbólico dentro de www si existe www. Debería crear un enlace simbólico llamado www si www no existe.
— Mendhak

No, wwwhay intacto. El enlace simbólico dentro del wwwdirectorio no sirve para el propósito que mencioné
— user236603

No puede tener dos entradas con el mismo nombre (un directorio y un enlace simbólico en su caso) en el mismo directorio. ¿Qué quieres decir cuando dices /var/www/file.txt? Tienes que decidir ...
— Rmano

Debería volver a leer el comentario de @ Shah ... debe eliminarlo wwwy luego crear el enlace simbólico.
— GabrielF

Respuestas:


3

Elimine (o mueva, por seguridad) el wwwdirectorio antes de crear el enlace simbólico.

Entonces, deberías tener un /var, pero no debería haber /var/www. Entonces, y solo entonces, se creará un enlace simbólico llamado wwwque apunta a su carpeta localhost / code / project.


1
esta respuesta aceptada es incorrecta, en primer lugar dice "eliminar" o "mover" mientras hablamos de comandos, por lo que también debe colocar el comando de shell correspondiente. En segundo lugar, tiene el origen y el destino incorrectos en el comando ln.
— sarah.ferguson

1
-1 por responder a la pregunta que no se hizo y no señalar el problema real que sufría el usuario.
— Shadur

29

Creo que tienes la ln -s'fuente' y el 'objetivo' al revés


MAL :

sudo ln -s /var/www /home/USER/code


DERECHA:

sudo ln -s /home/USER/code /var/www


terminarás con un enlace simbólico en tu /home/USER/codecarpeta que indica var/wwwcuál está mal.

Por ejemplo, tengo una carpeta para el sitio de sally en /home/webs/sallybydesign/

cd /var/www

No debería haber ninguna carpeta o archivo llamado sallybydesignen /var/wwwporque estamos a punto de hacer una.

 sudo ln -s  /home/ndmaque/webs/sallybydesign /var/www/sallybydesign

para ver el nuevo archivo (un enlace simbólico)

ls -l

verá un archivo llamado sallybydesign, es un enlace simbólico a su home/webs/sallybydesigncarpeta y si ejecuta

ls sallybydesign/ 

verá los archivos en su home/webs/sallybydesigncarpeta.

Si es así, puede apuntar su archivo vhost /var/www/sallybydesigny heredará automáticamente todos los /var/wwwpermisos de apache y resolverá una gran cantidad de problemas.


¿Ha cambiado algo en el enlace simbólico de las últimas actualizaciones de Ubuntu? Parece que ya no puedo hacer el enlace simbólico y aparece el famoso error 403.
— Daniel

@Daniel yo también
— emrecnl

1
Los permisos no se heredan automáticamente de forma predeterminada. Asegúrese de que chmod 0755 -Ren sallybydesignel ejemplo anterior para permitir que el servidor web para leer. Además, debe hacerlo AllowOverride Allen el directorio predeterminado para / (generalmente en apache.conf).
— Daniel

Sally /, tengo Too many levels of symbolic links.
— Adi Prasetyo
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.