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?

user236603
fuente
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.

Mendhak
fuente
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.

Andy Mac
fuente
¿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