Symlink / var / www dizini


17

Bir symlink oluşturmaya çalışıyorum:

/ var / www -> / home / KULLANICI / kod /

Https://stackoverflow.com/questions/9104337/create-a-symbolic-link-of-directory-in-ubuntu ardından aşağıdaki komutu girdim:

sudo ln -s / var / www / home / KULLANICI / kod

Ancak sonuç beklediğim gibi değil. Bağlantım, www dizinini bağlamak yerine / www dizininde saklanır. Apache'yi yerel web sunucusu olarak kullanıyorum, benim durumum için koduma şu şekilde erişmeliyim:

localhost / kod / PROJE

buna benzer bir şeye sahip olmak isterim

localhost / PROJE

codeDizin sadece ben bütün projeleri depolamak bir dizin olarak hizmet etmelidir.

Kaçırdığım bir şey var mı?


1
Silmek mi wwwdizini? Www varsa www içinde bir sembolik bağlantı oluşturur. Www yoksa www adlı bir sembolik bağlantı oluşturmalıdır.
— Mendhak

Hayır www, sağlam. wwwDizin içindeki Symlink bahsettiğim amaca hizmet etmiyor
— user236603

Aynı dizinde aynı ada sahip iki girişiniz (durumunuzda bir dizin ve bir sembolik bağlantı) olamaz. /Var/www/file.txt derken ne demek istersiniz?
— Karar vermelisin

@ Shah'ın yorumunu tekrar okumalısınız ... silmeyi silmeniz wwwve sonra oluşturmanız gerekir .
— GabrielF

Yanıtlar:


3

wwwSymlink'i oluşturmadan önce dizini silin (veya güvenlik için taşıyın) .

Yani, bir olmalı /var, ama olmamalı /var/www. Daha sonra ve ancak o zaman, wwwlocalhost / code / project klasörünüze işaret eden bir symlink oluşturulacaktır.


1
kabul edilen bu cevap yanlıştır, her şeyden önce komutlardan bahsederken "sil" ya da "taşı" diyorsunuz, böylece ilgili kabuk komutunu da koymalısınız. İkincisi, ln komutunda kaynak ve hedef yanlış!
— sarah.ferguson

1
-1 sorulmamış soruyu cevaplamak ve kullanıcının yaşadığı asıl sorunu işaret etmemek için.
— Shadur

29

Bence ln -s'kaynak' ve 'hedef' yanlış şekilde var


YANLIŞ :

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


SAĞ:

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


/home/USER/codeklasörünüzde var/wwwyanlış olduğunu gösteren bir sembolik bağlantıyla karşılaşırsınız .

Örneğin, Sally'nin sitesi için bir klasör var /home/webs/sallybydesign/

cd /var/www

Bir klasör veya dosya olmamalı sallybydesign, /var/wwwçünkü bir klasör yapmak üzereyiz.

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

yeni dosyayı görmek için (sembolik bir bağlantı)

ls -l

adlı bir dosya göreceksiniz sallybydesign, home/webs/sallybydesignklasörünüze bir sembolik bağlantı ve çalıştırırsanız

ls sallybydesign/ 

home/webs/sallybydesignklasörünüzdeki dosyaları göreceksiniz .

Eğer öyleyse, vhost dosyanızı işaret edebilir /var/www/sallybydesignve otomatik olarak tüm apache /var/wwwizinlerini devralır ve sorunların bir miktarını çözer.


Son güncellemeleri Ubuntu'ya bağlayan sembolik bir şey değişti mi? Artık symlinkning'i yapamıyorum ve ünlü 403 hatasını alıyorum.
— Daniel

@Daniel ben de öyle
— emrecnl

1
İzinler varsayılan olarak otomatik olarak devralınmaz. Web sunucusunun okumasına izin vermek için yukarıdaki örnekte chmod 0755 -Raçık olduğundan emin olun sallybydesign. Ayrıca, AllowOverride All/ için varsayılan dizinde (genellikle apache.conf dizininde) bulunmanız gerekir .
— Daniel

Sally / var Too many levels of symbolic links.
— Adi Prasetyo
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.