จะวางเว็บไซต์ท้องถิ่นของฉันเริ่มต้นด้วย apache2 รุ่น 2.4.7 ได้ที่ไหน


50

ฉันเพิ่งติดตั้ง Ubuntu 14.04 จากนั้นฉันติดตั้งlamp-serverและวางเว็บเพจของฉันใน/var/wwwไดเรกทอรี แต่เมื่อฉันเปิด localhost ในเบราว์เซอร์ไม่มีอะไรเลย ฉันคิดว่าเกิดขึ้นเพราะ Zend อัปเดต Apache

ไม่ว่าด้วยเหตุผลใดฉันต้องการทราบว่าจะเก็บไฟล์ php ไว้ที่ไหนเพื่อให้สามารถเข้าถึงได้จากเบราว์เซอร์ของฉัน


แม้ว่าจะไม่ได้คำตอบสำหรับคำถามของ OP คำตอบต่อไปนี้อาจช่วยให้ผู้เข้าชมบางคนที่สะดุดลงคำถามนี้ในขณะที่พยายามที่จะแก้ไขปัญหาที่เกี่ยวข้องกับ: askubuntu.com/a/525120/1183
Augustin

คำตอบ:


76

apache2 รุ่นที่เผยแพร่เมื่อเปิดตัว Ubuntu 14.04 คือ 2.4.7 และเริ่มด้วยรุ่นนี้ดูเหมือนว่าด้วยเหตุผลด้านความปลอดภัยไดเรกทอรีรากใหม่สำหรับเซิร์ฟเวอร์คือ:

/var/www/html

ดังนั้นจากนี้ไปคุณจะต้องวางไฟล์สำหรับเว็บไซต์ (ในพื้นที่) ของคุณ คุณไม่ควรมีปัญหานี้อีกในการอัพเดทในอนาคต


อย่างไรก็ตามหากคุณต้องการเปลี่ยนไดเรกทอรีนี้เป็นอีกไดเรกทอรีหนึ่งคุณต้องแก้ไข (เป็น root) บรรทัดต่อไปนี้จาก/etc/apache2/sites-available/000-default.confไฟล์ ( sudo nano /etc/apache2/sites-available/000-default.conf):

DocumentRoot /var/www/html

ไปยัง

DocumentRoot /path/to/another/directory

หลังจากนี้เพื่อให้การเปลี่ยนแปลงใหม่มีผลคุณต้องรีสตาร์ทเซิร์ฟเวอร์ apache โดยใช้คำสั่งต่อไปนี้:

sudo service apache2 restart

10
น่าสนใจฉันพยายามค้นหาเหตุผลที่อยู่เบื้องหลังการเคลื่อนไหวนี้ หากใครสนใจฉันพบรายงานข้อผิดพลาดใน Debian ที่อธิบายมัน
ด่าน

4
ฉันได้รับข้อผิดพลาดที่ต้องห้ามหลังจากการเปลี่ยนแปลงนี้
Darshana

1
@Darshana การกำหนดค่าเริ่มต้นใน apache2.4 ไม่อนุญาตให้มีการเข้าถึง Apache /var/www/htmlอะไรนอก การวางเว็บไซต์ของคุณไว้ที่อื่นนอกเหนือจากในไดเรกทอรีนั้น (หรือไดเรกทอรีย่อย) จะทำให้คุณมีข้อผิดพลาด 403 คุณต้องเพิ่ม<Directory /path/to/your/site>คำสั่งที่จะ configs vhost ของคุณด้วยrequireคำสั่งในนั้น
Dan

สิ่งนี้ไม่ได้ผลสำหรับฉัน
user124384

กันที่นี่ .. ตอนนี้มันทำให้ฉัน Error 403 ต้องห้าม! ฉันควรจะแก้ปัญหาอย่างไร (ในวิธีที่ง่ายกว่าและไม่มีเสียงรบกวนโปรด)
abhishah901

27

แทนที่จะปรับเปลี่ยน/etc/apache2/sites-available/000-default.confกลับเป็นเวอร์ชั่นเก่าฉันชอบที่จะไม่ทำการแก้ไขไฟล์แพคเกจเริ่มต้น

เหตุผลนี้คือจะไม่หยุดพักระหว่างการอัปเกรดครั้งถัดไปอีกครั้งซึ่งอาจรีเซ็ต000-default.confไฟล์
นอกจากนี้การปรับเปลี่ยนดังกล่าวไม่ได้ทำเพียงแค่จะรบกวนเราปรับเปลี่ยนได้ทำด้วยเหตุผลที่ดีเช่นนี้รายงานข้อผิดพลาดใน Debian อธิบาย

เว็บเซิร์ฟเวอร์ของเรา [sic] ตั้งค่ารูทของเอกสารเริ่มต้นเป็น / var / www ในขณะที่ผู้ดูแลระบบของไซต์มักจะใช้ /var/www/example.com สิ่งนี้มีผลกระทบด้านความปลอดภัยหากผู้เยี่ยมชมเข้าถึงรูทเอกสารเริ่มต้นโดยการข้าม / / นั่นเป็นปัญหาหากข้อมูลที่สำคัญอยู่นอกรูทเอกสารที่ควร (เช่นพิจารณาไฟล์ /var/www/example-com-db.conf สมมุติ)

วิธีการแก้ปัญหาที่ดีกว่าจะย้ายไฟล์จากเว็บไซต์ไป/var/www/var/www/html/

# 1. move all files excluding the `html` directory
sudo mv /var/www/[!html]* /var/www/html
# 2. Move the hidden files as well which are skipped in previous command
sudo mv /var/www/.[!.]?* /var/www/html/

อีกวิธีหนึ่งที่เป็นไปได้คือการสร้าง Virtual Host อื่นและปิดการใช้งานเริ่มต้นด้วยคำสั่ง sudo a2dissite 000-default

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