Diretório Symlink / var / www

17

Eu tenho tentado criar um link simbólico:

/ var / www -> / home / USER / código /

Seguindo /programming/9104337/create-a-symbolic-link-of-directory-in-ubuntu , digitei o seguinte comando:

sudo ln -s / var / www / home / USUÁRIO / código

No entanto, o resultado não é o que eu espero. Meu link é armazenado dentro do diretório / www em vez de vincular o próprio diretório www. Eu uso o apache como servidor da web local; no meu caso, tenho que acessar meu código como

localhost / código / PROJECT

Considerando que eu gostaria de ter algo como

localhost / PROJECT

O codediretório deve servir apenas como um diretório onde eu armazeno todos os meus projetos.

Estou perdendo alguma coisa?

user236603
fonte
1
Você excluiu o wwwdiretório? Ele criará um link simbólico dentro de www se www existir. Ele deve criar um link simbólico chamado www se www não existir.
precisa saber é o seguinte
Não wwwexiste intacto. Symlink dentro do wwwdiretório não servir ao propósito que eu mencionei
user236603
Você não pode ter duas entradas com o mesmo nome (um diretório e um link simbólico no seu caso) no mesmo diretório. O que você quis dizer quando diz /var/www/file.txt? Você tem que decidir ...
Rmano
Você deve reler o comentário de @ Shah ... é necessário excluir wwwe criar o link simbólico.
GabrielF

Respostas:

3

Exclua (ou mova, por segurança) o wwwdiretório antes de criar o link simbólico.

Então, você deve ter um /var, mas não deve haver /var/www. Então, e somente então, será wwwcriado um link simbólico chamado que aponta para a pasta host local / código / projeto.

Mendhak
fonte
1
esta resposta aceita está errada, antes de tudo, você diz "excluir" ou "mover" enquanto falamos sobre comandos; portanto, você deve colocar também o respectivo comando shell. Em segundo lugar, ele tem a origem e o destino errados no comando ln!
precisa saber é o seguinte
1
-1 por responder à pergunta que não foi feita e por não apontar o problema real do qual o usuário estava sofrendo.
Shadur 03/01
29

Eu acho que você tem a ln -s'fonte' e 'alvo' o caminho errado


ERRADO :

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


CERTO:

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


você terminará com um link simbólico na /home/USER/codepasta apontando para o var/wwwque está errado.

Por exemplo, tenho uma pasta para o site de sally em /home/webs/sallybydesign/

cd /var/www

Não deve haver pasta ou arquivo chamado sallybydesign, /var/wwwporque estamos prestes a criar um.

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

para ver o novo arquivo (um link simbólico)

ls -l

você verá um arquivo chamado sallybydesign, é um link simbólico para sua home/webs/sallybydesignpasta e se você executar

ls sallybydesign/ 

você verá os arquivos em sua home/webs/sallybydesignpasta.

Nesse caso, você pode apontar o seu arquivo vhost /var/www/sallybydesigne ele herdará automaticamente todas as /var/wwwpermissões do apache e resolverá um monte de problemas.

Andy Mac
fonte
Alguma coisa mudou no simbólico que liga as duas últimas atualizações ao Ubuntu? Não consigo mais fazer a ligação simbólica e recebo o famoso erro 403.
Daniel
@Daniel eu também
emrecnl 24/10/2015
1
As permissões não são herdadas automaticamente por padrão. Certifique-se chmod 0755 -Rde sallybydesignno exemplo acima para permitir que o servidor web para ler. Além disso, você precisa AllowOverride Allno diretório padrão para / (geralmente em apache.conf).
Daniel
É Sally, entendi Too many levels of symbolic links.
Adi Prasetyo