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.