ปัญหา Apache หลังจากอัปเกรดเป็น Yosemite


8

เว็บเซิร์ฟเวอร์ Mac ของฉันไม่ทำงานหลังจากอัปเกรดเป็น Yosemite เมื่อฉันพิมพ์apachectlเทอร์มินัลฉันจะได้รับสิ่งนี้:

httpd: Syntax error on line 527 of /private/etc/apache2/httpd.conf: Syntax error on line 8 of /private/etc/apache2/other/+php-osx.conf: Cannot load /usr/local/php5/libphp5.so into server: dlopen(/usr/local/php5/libphp5.so, 10): Symbol not found: _unixd_config\n  Referenced from: /usr/local/php5/libphp5.so\n  Expected in: /usr/sbin/httpd\n in /usr/local/php5/libphp5.so

ถ้าฉันพิมพ์sudo apachectl [re]startไม่มีอะไรเกิดขึ้นราวกับว่ามันเริ่มต้นขึ้นและฉันพิมพ์อีกครั้งมันก็บอกว่ามันกำลังทำงานอยู่ นอกจากนี้ฉันยังติดตั้งบานหน้าต่าง Web Sharing Preference ( http://clickontyler.com/web-sharing/ ) และเมื่อฉันตวัดสวิตช์จากปิดเป็นเปิดก็ยังบอกว่าปิดอยู่แม้ว่าสวิตช์จะอยู่ที่ตำแหน่งเปิด .

พวกคุณต้องการไฟล์ / ต้องการดูไฟล์อะไร จำเป็นต้องแก้ไข ASAP นี้จริงๆ

คำตอบ:


6

โปรดทราบว่าตัวติดตั้ง Yosemite จะเขียนทับไฟล์ /private/etc/apache2/httpd.conf ทั้งหมดด้วยไฟล์กำหนดค่าเริ่มต้น Apache 2.4

ตัวอย่างเช่นหากListenมีการเพิ่มคำสั่งพวกเขาจะหายไปและจำเป็นต้องเพิ่มอีกครั้ง เช่น:

Listen 127.0.0.1:81

ฉันพบการกำหนดค่าเก่าของฉันในไฟล์ต่อไปนี้ แต่เนื่องจากความแตกต่างจาก 2.2 จึงไม่ควรคัดลอกโดยตรงผ่านไฟล์ http.conf:

/private/etc/apache2/httpd.conf~previous

มีคำแนะนำในการอัปเกรดที่: http://httpd.apache.org/docs/2.4/upgrading.html

ตรวจสอบให้แน่ใจว่าไฟล์การตั้งค่าพิเศษที่รวมก่อนหน้านี้ยังคงรวมอยู่แล้วทดสอบการกำหนดค่าด้วยคำสั่ง:

sudo apachectl configtest

นั่นจะตอบคำถามได้อย่างไร คุณไม่จำเป็นต้องเปลี่ยนโมดูล php ที่คุณกำลังโหลดหลังจากอัพเกรด Apache ...
AlxVallejo

8

ปัญหาเกิดขึ้นเนื่องจาก Yosemite ติดตั้ง Apache รุ่นล่าสุด (2.4) ในขณะที่ Mac OS X รุ่นก่อนหน้าใช้ Apache เวอร์ชัน 2.2

จากข้อผิดพลาดปรากฏว่าคุณไม่ได้ใช้ PHP เวอร์ชันมาตรฐานที่จัดทำโดย Apple แต่เป็นรุ่นอื่นที่จัดทำโดย liip.ch การลบเครื่องหมาย # ตามที่ Nuttyx แนะนำไว้ข้างต้นจะโหลด php เวอร์ชันแอปเปิ้ล (5.5.14) หากคุณต้องการรันเวอร์ชันที่จัดทำโดย liip ต่อไปคุณจะต้องติดตั้งใหม่เพื่อให้โหลดได้อย่างถูกต้องใน Apache 2.4 ดูคำอธิบายโดยละเอียดได้ที่นี่: ( http://blog.liip.ch/archive/2014/06/11/php-osx-available-for-os-x-10-10-yosemite.html )

หมายเหตุถ้าคุณใช้โฮสต์เสมือนคุณอาจต้องเปลี่ยนไฟล์กำหนดค่าของคุณบ้าง โดยเฉพาะอย่างยิ่งคุณจะต้องเปลี่ยนสิ่งต่อไปนี้:

2.2 การกำหนดค่า:

Order allow,deny
Allow from all

2.4 การกำหนดค่า:

Require all granted

4

ดูเหมือนว่าคุณจะสามารถแก้ไขปัญหานี้โดยการลบ#จุดเริ่มต้นของบรรทัดต่อไปนี้ใน/etc/apache2/httpd.confไฟล์:

LoadModule php5_module libexec/apache2/libphp5.so

1
มันทำเพื่อฉัน!
Matthieu Riegler

1

การเรียกใช้ 'sudo apachectl' โดยไม่มีอาร์กิวเมนต์จะแสดงปัญหาในไฟล์ conf ในกรณีของฉันอัพเกรด php ได้ทำการแก้ไข

curl -s http://php-osx.liip.ch/install.sh | bash -s 5.6

หลังจากนั้น Apache ทำงานอีกครั้ง แต่ฉันต้องกำหนดค่าโฮสต์ใหม่


0

ในขณะที่ตอบคำถามข้างต้นมีความเป็นไปได้ของข้อผิดพลาดเดียวกันเช่น:

/private/etc/apache2/httpd.conf: Cannot load /usr/libexec/apache2/mod_XYZ.so into server: dlopen(/usr/libexec/apache2/mod_XYZ.so, 10): image not found

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

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