ทำไมฉันถึงได้รับ Apache2 Ubuntu Default Page แทนที่จะเป็นหน้า index.html ของฉันเอง?


8

ฉันมีคอมพิวเตอร์ Ubuntu 14.10 ที่ใช้สำหรับการทดสอบเว็บไซต์ในท้องถิ่นมันไม่ได้ให้บริการอินเทอร์เน็ต ในนั้นฉันมีเจ็ดเว็บไซต์ที่ติดตั้ง อย่างไรก็ตามเมื่อฉันเข้าถึงสองในเจ็ดฉันจะได้รับApache2 Ubuntu Default Pageหน้าดัชนีของตัวเองแทน

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

ฉันมีตัวเลือกอะไรบ้างในการวินิจฉัยปัญหานี้ ฉันสามารถบังคับให้บันทึกข้อผิดพลาด verbose เพิ่มเติมได้หรือไม่ มีบันทึกอื่นที่ฉันสามารถอ้างอิงได้หรือไม่?

นี่คือตัวอย่างของ.confไฟล์สำหรับหนึ่งในไซต์ที่ชำรุด:

<VirtualHost *:80>
   ServerName www.local_example.com
   ServerAlias local_example.com
   ServerAdmin address@example.com

   DocumentRoot /var/www/Websites/example.com
   <Directory /var/www/Websites/example.com/>
       Options Indexes FollowSymLinks MultiViews
       # pcw AllowOverride None
       AllowOverride All
       Order allow,deny
       allow from all
       # This directive allows us to have apache2's default start page
       # in /apache2-default/, but still have / go to the right place
       # Commented out for Ubuntu
       #RedirectMatch ^/$ /apache2-default/
   </Directory>

   ErrorLog /home/example/Apache_Logs/local_example.com_error.log

   # Possible values include: debug, info, notice, warn, error, crit,
   # alert, emerg.
   LogLevel warn

   CustomLog /home/example/Apache_Logs/local_example.com_access.log combined
   ServerSignature On

</VirtualHost>

2
คุณสร้างโฮสต์เสมือนได้อย่างไร คุณสร้างพวกเขาโดยการเพิ่มไฟล์ไป/etc/apache2/sites-availableหรือไม่? ถ้าเป็นเช่นนั้นคุณเปิดใช้งานด้วยsudo a2ensite <your_site_name>หรือไม่ ไฟล์บันทึกข้อผิดพลาด apache เริ่มต้นมีสิ่งใดอยู่หรือไม่ และคุณมี ServerAlias ​​หรือ ServerName ที่กำหนดค่าไว้ในไฟล์โฮสต์เสมือนของคุณหรือไม่ หากคุณปิดการใช้งานเว็บไซต์เริ่มต้นsudo a2dissite 000-default(คุณสามารถเปิดใช้งานอีกครั้งด้วยsudo a2ensite 000-default) มันใช้งานได้หรือไม่ นอกจากนี้อาจเป็นไปได้ว่าคุณลืมรีสตาร์ท apache หรือไม่
Dan

@ แดนขอบคุณสำหรับการตอบสนอง sites-availableฉันสร้างเว็บไซต์ด้วยการเพิ่ม บันทึกข้อผิดพลาดเริ่มต้นไม่มีอะไรในนั้น ฉันกำหนดไว้ServerAliasในไฟล์โฮสต์ ฉันปิดการใช้งาน000-defaultเว็บไซต์ แต่นั่นไม่ได้เปลี่ยนแปลงอะไร ฉันรีสตาร์ทและโหลด apache ซ้ำหลายครั้ง
ถามคำถาม

เมื่อคุณปิดการใช้งานเว็บไซต์เริ่มต้นและเริ่ม apache ใหม่มันยังคงแสดงหน้า index.html เริ่มต้นหรือมันแสดงหนึ่งจากโฮสต์เสมือนที่แตกต่างกันหรือไม่ คุณสามารถโพสต์เนื้อหาของหนึ่งในไฟล์ vhost ที่ทำงานผิดปกติได้หรือไม่? สิ่งนี้อาจช่วยให้เราช่วยเหลือได้ง่ายขึ้น
Dan

@ แดนขอขอบคุณสำหรับการตอบกลับ เมื่อฉันทำการเปลี่ยนแปลงตามที่คุณแนะนำตามที่ฉันได้กล่าวถึงไม่มีอะไรเปลี่ยนแปลงหมายความว่ามันแสดงหน้าดัชนีเริ่มต้นเหมือนกันทุกประการ ฉันได้เพิ่ม.confไฟล์ไปยังคำถามของฉัน
ถามคำถาม

คำตอบ:


8

ลองทำสิ่งต่อไปนี้

เปิดใช้งานบันทึก verbose

sudo nano /etc/apache2/apache2.conf

ค้นหาตัวแปร LogLevel และอัปเดตจากการเตือนค่าเริ่มต้นเป็นข้อมูลหรือดีบัก การแก้ปัญหาจะสร้างผลลัพธ์ที่ยิ่งใหญ่ที่สุด

# LogLevel: Control the number of messages logged to the error_log.
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
# 
LogLevel debug

รีสตาร์ท Apache

sudo service apache2 restart

Apache มีเครื่องมือตรวจสอบไวยากรณ์น้อย ๆ

apache2ctl -t

การตรวจสอบข้อกำหนดโฮสต์เสมือน

apache2ctl -S

ขอบคุณสำหรับข้อเสนอแนะนี้. ฉันตั้งค่าระดับการบันทึกเป็นดีบั๊กและฉันยังไม่ได้รับรายการใดในไฟล์บันทึกข้อผิดพลาด บันทึกการเข้าถึงแสดงขึ้นทุกครั้งที่ฉันเปิดเว็บไซต์ แต่ไม่มีอะไรอื่น
ถามคำถาม

6

สำหรับฉันหนึ่งในคำแนะนำจาก @Dan ก็แก้ไขได้

sudo a2dissite 000-default.conf
service apache2 reload

เห็นได้ชัดว่าการกำหนดค่าไซต์เริ่มต้นกำลังแทนที่การกำหนดค่า vhost ของฉัน


ในเซิร์ฟเวอร์อื่นมันทำงานแตกต่างกันและ index.php ถูกอ่านแทน index.html สถานการณ์ลับ ๆ ล่อใจมาก
Margus Pala

2

หลังจากการติดตั้ง index.html มีลำดับความสำคัญสูงกว่านั่นคือสาเหตุที่คุณยังคงเห็นหน้าเริ่มต้นของ Ubuntu ให้ตรวจสอบโฟลเดอร์นี้ var / www / html / เปลี่ยนชื่อหรือลบหน้านี้ออกง่าย ๆ


1

เปิดใช้งานปัญหาคือสิทธิ์

เมื่อคุณเก็บเว็บไซต์ในนอกไดเรกทอรี/var/wwwและเชื่อมต่อด้วย symlink แล้วไดเรกทอรีแหล่งที่มาและไดเรกทอรีแม่755ต้องมีสิทธิ์

ด้วยเหตุผลที่ไม่ทราบสาเหตุทั้งสองเว็บไซต์ที่ทำงานผิดปกตินั้นมีสิทธิ์ที่แตกต่างกันและทำงานchmod -R 755ในไดเรกทอรีเว็บไซต์และไดเรกทอรีหลักแก้ปัญหาได้


คุณไม่ควรใช้chmod -R 755ในไดเรกทอรีเพราะไฟล์ทั้งหมดที่อยู่ในนั้นจะได้รับการระบุว่าเป็น "ปฏิบัติการ" ...
อเล็กซิส Wilke

@AlexisWilke คำสั่งที่ดีกว่าสำหรับการตั้งค่าการอนุญาตที่ถูกต้องคืออะไร
ถาม

ไม่มีวิธีง่ายๆที่จะเปลี่ยนการอนุญาตของไดเรกทอรีทั้งหมดและไม่ใช่มาตรฐาน ... คุณสามารถใช้งานfindได้ บางสิ่งเช่นนี้: find top-dir-name -type d -exec chmod 755 {} \;.
Alexis Wilke
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.