ไดเร็กทอรี Symlink / var / www


17

ฉันพยายามสร้าง symlink:

/ var / www -> / home / USER / รหัส /

ต่อไปนี้/programming/9104337/create-a-symbolic-link-of-directory-in-ubuntuฉันป้อนคำสั่งต่อไปนี้:

sudo ln -s / var / www / home / USER / รหัส

อย่างไรก็ตามผลลัพธ์ไม่ใช่สิ่งที่ฉันคาดหวัง ลิงก์ของฉันถูกเก็บไว้ในไดเรกทอรี / www แทนที่จะเชื่อมโยงไดเรกทอรี www เอง ฉันใช้ apache เป็นเว็บเซิร์ฟเวอร์ในพื้นที่สำหรับกรณีของฉันฉันต้องเข้าถึงรหัสของฉันเป็น

localhost / รหัส / โครงการ

ในขณะที่ฉันต้องการมีบางสิ่งบางอย่างเช่น

localhost / โครงการ

codeไดเรกทอรีก็ควรจะทำหน้าที่เป็นไดเรกทอรีที่ฉันเก็บโครงการทั้งหมดของฉัน

มีอะไรฉันหายไป?


1
คุณลบwwwไดเรกทอรีหรือไม่ มันจะสร้าง symlink ภายใน www ถ้า www มีอยู่ ควรสร้าง symlink ชื่อ www ถ้าไม่มี www
Mendhak

ไม่มีwwwอะไรเหมือนเดิม Symlink ในwwwสารบบไม่ตรงตามวัตถุประสงค์ที่ฉันกล่าวถึง
user236603

คุณไม่สามารถมีสองรายการที่มีชื่อเดียวกัน (ไดเรกทอรีและ symlink ในกรณีของคุณ) ในไดเรกทอรีเดียวกัน คุณหมายความว่าอย่างไรเมื่อคุณพูด /var/www/file.txt คุณต้องตัดสินใจ ...
Rmano

คุณควรอ่านความคิดเห็นของ @ Shah อีกครั้ง ... คุณต้องลบwwwแล้วสร้าง symlink
GabrielF

คำตอบ:


3

ลบ (หรือย้ายเพื่อความปลอดภัย) wwwไดเรกทอรีก่อนที่คุณจะสร้าง symlink

ดังนั้นคุณควรจะมีแต่ไม่ควรมี/var /var/wwwจากนั้นและจะมีการสร้าง symlink ที่เรียกwwwว่าชี้ไปยังโฟลเดอร์ localhost / code / project ของคุณ


1
คำตอบที่ยอมรับนี้ผิดครั้งแรกที่คุณพูดว่า "ลบ" หรือ "ย้าย" ในขณะที่เรากำลังพูดถึงคำสั่งดังนั้นคุณควรใส่คำสั่งเชลล์ตามลำดับเช่นกัน ประการที่สองเขามีแหล่งที่มาและปลายทางผิดในคำสั่ง ln!
sarah.ferguson

1
-1 สำหรับการตอบคำถามที่ไม่ได้ถามและไม่ชี้ให้เห็นถึงปัญหาที่แท้จริงของผู้ใช้
Shadur

29

ฉันคิดว่าคุณมีln -s'แหล่งที่มา' และ 'กำหนดเป้าหมาย' ในทางที่ผิด


ผิด :

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


ขวา:

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


คุณจะจบลงด้วย symlink ใน/home/USER/codeโฟลเดอร์ของคุณชี้ไปvar/wwwที่ผิด

ตัวอย่างเช่นฉันมีโฟลเดอร์สำหรับไซต์ของแซลลี่ใน /home/webs/sallybydesign/

cd /var/www

ไม่ควรมีโฟลเดอร์หรือแฟ้มที่เรียกว่าsallybydesignใน/var/wwwเพราะเรากำลังจะทำให้หนึ่ง

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

เพื่อดูไฟล์ใหม่ (ลิงก์สัญลักษณ์)

ls -l

คุณจะเห็นไฟล์ชื่อsallybydesignมันเป็น symlink ไปยังhome/webs/sallybydesignโฟลเดอร์ของคุณและถ้าคุณเรียกใช้

ls sallybydesign/ 

คุณจะเห็นไฟล์ในhome/webs/sallybydesignโฟลเดอร์ของคุณ

ถ้าเป็นเช่นนั้นคุณสามารถชี้ไฟล์ vhost ของคุณไปที่/var/www/sallybydesignและมันจะสืบทอด/var/wwwสิทธิ์apache ทั้งหมดโดยอัตโนมัติและแก้ไขปัญหาการโหลด


มีบางอย่างเปลี่ยนไปในการเชื่อมโยงสัญลักษณ์ของการอัพเดตคู่ล่าสุดกับ Ubuntu หรือไม่ ฉันดูเหมือนจะไม่สามารถทำการเชื่อมโยงอีกต่อไปและฉันได้รับข้อผิดพลาด 403 ที่มีชื่อเสียง
แดเนียล


1
สิทธิ์จะไม่ได้รับการสืบทอดโดยอัตโนมัติตามค่าเริ่มต้น ตรวจสอบให้แน่ใจว่าchmod 0755 -Rเปิดsallybydesignในตัวอย่างด้านบนเพื่อให้เว็บเซิร์ฟเวอร์อ่าน นอกจากนี้คุณต้องAllowOverride Allอยู่ในไดเรกทอรีเริ่มต้นสำหรับ / (โดยปกติคือ apache.conf)
Daniel

LS แซลลี่ / Too many levels of symbolic linksได้
Adi Prasetyo
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.