Direktori symlink / var / www

17

Saya telah mencoba membuat symlink:

/ var / www -> / home / USER / kode /

Mengikuti /programming/9104337/create-a-symbolic-link-of-directory-in-ubuntu , saya memasukkan perintah berikut:

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

Namun hasilnya bukan yang saya harapkan. Tautan saya disimpan di dalam direktori / www alih-alih menautkan direktori www itu sendiri. Saya menggunakan apache sebagai server web lokal, untuk kasus saya, saya harus mengakses kode saya sebagai

localhost / kode / PROYEK

sedangkan saya ingin memiliki sesuatu seperti

localhost / PROYEK

The codedirektori hanya harus berfungsi sebagai direktori dimana saya menyimpan semua proyek saya.

Ada yang saya lewatkan?

pengguna236603
sumber
1
Apakah Anda menghapus wwwdirektori? Ini akan membuat symlink di dalam www jika ada. Seharusnya membuat symlink yang disebut www jika www tidak ada.
Mendhak
Tidak wwwada di sana utuh. Symlink di dalam wwwdirektori tidak melayani tujuan yang saya sebutkan
user236603
Anda tidak dapat memiliki dua entri dengan nama yang sama (direktori dan symlink dalam kasus Anda) di direktori yang sama. Apa yang Anda maksud ketika Anda mengatakan /var/www/file.txt? Anda harus memutuskan ...
Rmano
Anda harus membaca kembali komentar @ Shah ... Anda perlu menghapus wwwdan kemudian membuat symlink.
GabrielF

Jawaban:

3

Hapus (atau pindahkan, untuk keamanan) wwwdirektori sebelum Anda membuat symlink.

Jadi, Anda harus memiliki /var, tetapi seharusnya tidak ada /var/www. Kemudian, dan hanya pada saat itu, symlink yang dipanggil wwwakan dibuat yang menunjuk ke folder localhost / code / project Anda.

Mendhak
sumber
1
jawaban yang diterima ini salah, pertama-tama Anda mengatakan "hapus" atau "pindah" saat kita berbicara tentang perintah sehingga Anda harus meletakkan perintah shell masing-masing juga. Kedua, sumber dan tujuan salah dalam perintah ln!
sarah.ferguson
1
-1 untuk menjawab pertanyaan yang tidak diajukan dan tidak menunjukkan masalah sebenarnya yang diderita pengguna.
Shadur
29

Saya pikir Anda memiliki ln -s'sumber' dan 'target' dengan cara yang salah


SALAH :

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


BAIK:

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


Anda akan berakhir dengan symlink di /home/USER/codefolder Anda menunjuk ke var/wwwyang salah.

Sebagai contoh, saya punya folder untuk situs sally di /home/webs/sallybydesign/

cd /var/www

Seharusnya tidak ada folder atau file yang bernama sallybydesigndalam /var/wwwkarena kita akan membuat satu.

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

untuk melihat file baru (tautan simbolik)

ls -l

Anda akan melihat file bernama sallybydesign, itu adalah symlink ke home/webs/sallybydesignfolder Anda dan jika Anda menjalankannya

ls sallybydesign/ 

Anda akan melihat file di home/webs/sallybydesignfolder Anda .

Jika demikian, Anda dapat mengarahkan file vhost Anda /var/www/sallybydesigndan itu akan secara otomatis mewarisi semua /var/wwwizin apache dan memecahkan banyak masalah.

Andy Mac
sumber
Apakah ada perubahan pada simbol yang menghubungkan beberapa pembaruan terakhir dengan Ubuntu? Sepertinya saya tidak bisa lagi melakukan symlinkning dan saya mendapatkan error 403 yang terkenal.
Daniel
@Daniel begitu juga saya
emrecnl
1
Izin tidak secara otomatis diwarisi secara default. Pastikan untuk chmod 0755 -Rdi sallybydesigndalam contoh di atas untuk memungkinkan webserver untuk membaca. Anda juga harus berada AllowOverride Alldi direktori default untuk / (biasanya di apache.conf).
Daniel
ls sally /, dapatkan Too many levels of symbolic links.
Adi Prasetyo