ฉันได้ติดตั้ง Apache, PHP และ MySQL บน Ubuntu 10.10 desktop edition แล้วและมันก็ใช้ได้ดี
ยกเว้นว่าฉันไม่มีเงื่อนงำที่จะค้นหาไฟล์บันทึก Apache หรือ PHP
ฉันได้ติดตั้ง Apache, PHP และ MySQL บน Ubuntu 10.10 desktop edition แล้วและมันก็ใช้ได้ดี
ยกเว้นว่าฉันไม่มีเงื่อนงำที่จะค้นหาไฟล์บันทึก Apache หรือ PHP
คำตอบ:
/var/log/apache2/error.log
โดยค่าเริ่มต้น
สามารถกำหนดค่า/etc/php5/apache2/php.ini
นี้ได้
error.log.*
ไฟล์ทั้งหมด
ตรวจสอบการตั้งค่าเหล่านี้ในphp.ini
:
error_reporting = E_ALL | E_STRICT
(ตามที่แนะนำสำหรับการพัฒนาใน php.ini)error_log = /var/log/php_errors.log
จากนั้นสร้างไฟล์บันทึกด้วยตนเอง
touch /var/log/php_errors.log
chown www-data: /var/log/php_errors.log
chmod +rw /var/log/php_errors.log
ตอนนี้คุณสามารถดูข้อผิดพลาด PHP ด้วยวิธีนี้
tail /var/log/php_errors.log
นี่เป็นวิธีแก้ปัญหาที่เหมาะสมสำหรับฉัน
chmod 640 /var/log/php_errors.log
คุณยังสามารถกำหนดไฟล์บันทึกข้อผิดพลาดเฉพาะสำหรับแต่ละ VirtualHost ใน Apache หากคุณมี VirtualHost ที่กำหนดไว้/etc/apache2/sites-available/
และเปิดใช้งานใน/etc/apache2/sites-enabled
(เปิดใช้งานด้วยsudo a2ensite [your-virtualhost-definition-file]
) คุณสามารถเปลี่ยนบันทึกข้อผิดพลาดโดยเพิ่มบรรทัดต่อไปนี้ภายใน VirtualHost config ของคุณ:
ErrorLog ${APACHE_LOG_DIR}/[your-vhost]-error.log
ซึ่งอาจเป็นประโยชน์หากคุณมี vhost จำนวนมากและต้องการแยกที่ซึ่งรายงานข้อผิดพลาด
นอกจากนี้คุณสามารถดูบันทึกข้อผิดพลาดของคุณสดโดยการออกคำสั่งต่อไปนี้ (ปรับให้เข้ากับไฟล์บันทึกของคุณเองหากแตกต่างจากค่าเริ่มต้น):
sudo tail -f /var/log/apache2/error.log
สิ่งนี้มีประโยชน์อย่างยิ่งเมื่อทำการดีบักสด
error_log = syslog
ใน php.ini
หาก Apache ติดตั้งด้วย Webmin / Virtualmin จะมีโฟลเดอร์แยกต่างหากสำหรับแต่ละ VirtualHost
มันคือ
~/logs
โฟลเดอร์สำหรับผู้ใช้ VirtualHost แต่ละคน
นี่คือสองไฟล์:
~/logs/access_log
และ
~/logs/error_log
ดังนั้นพวกเขาเป็น
/home/onedomain/logs/access_log
/home/onedomain/logs/error_log
/home/anotherdomain/logs/access_log
/home/anotherdomain/logs/error_log
...
เป็นต้น
ในการดูไฟล์บันทึกสำหรับการเข้าสู่ระบบโดเมนเฉพาะในฐานะผู้ใช้ VirtualHost ของชื่อโฮสต์นั้นและเรียกใช้
tail -f ~/logs/error_log