PHP ไม่ทำงานใน Apache2 หลังจากอัพเกรดระบบ


14

เพิ่งอัพเกรดระบบของฉันจาก Karmic เป็น Lucid สิ่งนี้เกี่ยวข้องกับ Apache และ PHP ที่กำลังได้รับการอัปเดตฉันเชื่อว่า

ตอนนี้เซิร์ฟเวอร์ของฉันไม่สามารถจัดการไฟล์ PHP ได้การนำทางไปยังไฟล์เหล่านี้ทำให้เกิดการดาวน์โหลดมากกว่าการแยกวิเคราะห์

โมดูล PHP ยังคงโหลดใน Apache mods ที่เปิดใช้งานและฉันมี AddType application/x-httpd-php .phpใน httpd.conf ของฉัน

ไม่มีข้อความที่มีความหมายในการเข้าถึง Apache หรือบันทึกข้อผิดพลาดดังนั้นฉันจึงนิ่งงัน

ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชม ขอบคุณ

คำตอบ:


17

/var/log/apache2/error.log ควรแสดงบรรทัดดังนี้ถ้าโหลด PHP สำเร็จแล้ว:

[อังคาร 30 ส.ค. , 12:53:36 2011] [ประกาศ] Apache / 2.2.14 (Ubuntu) PHP / 5.3.2-1ubuntu4.9 พร้อมการติดตั้ง Suhosin-Patch - กลับมาทำงานตามปกติ

ให้ความสนใจกับวันที่ถ้ามันเป็นอะไรบางอย่างจากปี 2009 คุณได้กำหนดค่าบางอย่างผิดพลาด

AddType ไม่มีประโยชน์คุณต้องใช้:

<FilesMatch "\.php$">
    SetHandler application/x-httpd-php
</FilesMatch>

ดูเพิ่มเติมคำแนะนำการติดตั้งบน php.net สำหรับ Apache 2.x

คุณไม่จำเป็นต้องเพิ่มมันด้วยตนเองแพ็คเกจlibapache2-mod-php5ติดตั้ง/etc/apache2/mods-available/php5.confที่มี:

<IfModule mod_php5.c>
    <FilesMatch "\.ph(p3?|tml)$">
        SetHandler application/x-httpd-php
    </FilesMatch>
    <FilesMatch "\.phps$">
        SetHandler application/x-httpd-php-source
    </FilesMatch>
    # To re-enable php in user directories comment the following lines
    # (from <IfModule ...> to </IfModule>.) Do NOT set it to On as it
    # prevents .htaccess files from disabling it.
    <IfModule mod_userdir.c>
        <Directory /home/*/public_html>
            php_admin_value engine Off
        </Directory>
    </IfModule>
</IfModule>

เนื่องจากเป็น conffile จึงเป็นไปได้ที่จะไม่ติดตั้งพร้อมกับการอัพเกรด หากต้องการแก้ไขให้ล้างข้อมูลแล้วติดตั้งอีกครั้ง:

sudo apt-get purge libapache2-mod-php5
sudo apt-get install libapache2-mod-php5

ในการเปิดใช้งาน PHP คุณต้องเรียกใช้:

sudo a2enmod php5

รีสตาร์ทเว็บเซิร์ฟเวอร์หลังจาก:

sudo /etc/init.d/apache2 restart

สิ่งอื่น ๆ ที่ต้องทำ:

  • /etc/apache2ตรวจสอบการตั้งค่าความขัดแย้งใน
  • คุณได้สร้าง Apache จากแหล่งที่มา?
  • รันsudo apache2ctl configtestเพื่อตรวจสอบการกำหนดค่าของคุณเพื่อหาข้อผิดพลาดทางไวยากรณ์
  • เปิดhttp: // localhost / server-infoเพื่อตรวจสอบการกำหนดค่าและโมดูลที่โหลด statusโมดูลต้องโหลดที่ หากคุณใช้เซิร์ฟเวอร์ระยะไกลคุณจะต้องเพิ่มตัวคุณเองในAllow fromรายการ/etc/apache2/mods-enabled/status.confและรีสตาร์ทเซิร์ฟเวอร์หลังจากนั้น

สุกใส AFK ตอนนี้ แต่จะทดสอบในคืนนี้ ขอบคุณ
Jivings

ถูกล้างและติดตั้งใหม่โมดูลถูกโหลดใน mods-enabled แต่ฉันยังคงมีปัญหาเดียวกัน ... ฉันไม่พบสิ่งใดที่จะขัดแย้งกันและมีไฟล์ conf อยู่ใน apache.conf แน่นอน คุณมีความคิดอื่น ๆ อีกไหม? ขอบคุณ
Jivings

@Jivings: มีการเพิ่มความคิดในการแก้ไขข้อผิดพลาดบางอย่าง
Lekensteyn

ยังไม่สามารถเข้าใจได้ อย่างไรก็ตามฉันได้ค้นพบบางสิ่งที่อยากรู้เพิ่มเติม ดูเหมือนว่า PHP จะทำงานได้ดีสำหรับหนึ่งในโฮสต์เสมือนที่ตั้งค่าไว้ แต่สิ่งที่ทำก็คือกำหนด documentRoot ที่ / var / www เป็นไปได้อย่างไร!
Jivings

1
คุณยังจะต้องล้างแคชของเบราว์เซอร์และเริ่มใหม่อีกครั้ง
Francesco

3

หลังจากที่ไม่มีสิ่งใดได้ผลและ Apache ก็เริ่มสับสนมากในที่สุดฉันก็เพิ่งกำจัดแพ็คเกจ Apache ทั้งหมดและติดตั้งใหม่

ดูเหมือนว่าจะทำงานได้ดีในขณะนี้ใครจะรู้ว่ามีอะไรผิดปกติกับมัน ....

แก้ไข

ฉันพบสิ่งผิดปกติเมื่อฉันตั้งค่าการตั้งค่า Apache อีกครั้ง [รายการบล็อกนี้] [1] อธิบาย

ปรากฎว่าแม้ว่าโมดูล userdir ไม่ได้ใช้งานอยู่ไฟล์ส่วนที่เหลือของไซต์จะอยู่ในโฟลเดอร์ ~ / public_html ของฉันและ php ก็ถูกปิดการใช้งานสำหรับทุกสิ่งในนั้น

ฉันเดาว่านี่น่าจะเป็นส่วนเสริมล่าสุดของโมดูล php ซึ่งไม่ปรากฏในการตั้งค่า Karmic ของฉัน


1
ที่ควรเกี่ยวข้องกับปัญหาการกำหนดค่า ในการอัพเกรด, ไฟล์ในไม่มี/etcจะถูกคัดลอก AFAIK (อย่างน้อยคนที่มีปัญหากับ/etc/init.d/apache2ไม่ได้ถูกสร้างขึ้นบนติดตั้งเฉพาะในการล้าง + ติดตั้ง)
Lekensteyn

แปลกที่มันทำงานก่อนที่ระบบของฉันจะอัพเกรด ...
Jivings

น่าจะเปลี่ยนคุณสมบัติแล้ว คุณไม่สามารถคาดหวังได้ว่าทุกการอัพเกรดจะเคารพการตั้งค่าเก่า การปรับเปลี่ยนบางอย่างจะสมเหตุสมผลสำหรับคนส่วนใหญ่ แต่ไม่ใช่สำหรับคนอื่น
Lekensteyn

จริง ขอขอบคุณที่ช่วยให้ฉันได้รับด้านล่างของมันอยู่แล้วชื่นชมมาก :)
Jivings

1

php5.confแฟ้มใน/etc/apache2/mods-enabledมีไม่กี่บรรทัดที่ด้านล่างที่ให้ PHP จากการดำเนินการภายในของไดเรกทอรีของผู้ใช้จึงขึ้นอยู่กับการกำหนดค่าของคุณนี้อาจจะเป็นปัญหาของคุณ คุณสามารถคอมเม้นท์ไลน์เหล่านี้และโหลด apache2

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