Các vấn đề của Apache sau khi nâng cấp lên Yosemite


8

Máy chủ web Mac của tôi sẽ không hoạt động sau khi nâng cấp lên Yosemite. Khi tôi gõ apachectlvào Terminal, tôi nhận được điều này:

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

Nếu tôi gõ sudo apachectl [re]startkhông có gì xảy ra, như thể nó đã bắt đầu và tôi gõ lại, nó báo nó đã chạy. Ngoài ra, tôi đã cài đặt ngăn Tùy chọn chia sẻ web ( http://clickontyler.com/web-shishing/ ) và khi tôi bật công tắc từ Tắt sang Bật, nó vẫn báo tắt, mặc dù công tắc ở vị trí Bật .

Các bạn muốn / cần xem những tập tin nào? Thực sự cần phải sửa lỗi này càng sớm càng tốt.

Câu trả lời:


6

Cũng xin lưu ý rằng trình cài đặt Yosemite ghi đè lên toàn bộ tệp /private/etc/apache2/httpd.conf bằng tệp cấu hình Apache 2.4 mặc định mới.

Ví dụ, nếu bất kỳ Listenchỉ thị nào được thêm vào, chúng sẽ biến mất và cần được thêm lại. Ví dụ:

Listen 127.0.0.1:81

Tôi đã tìm thấy cấu hình cũ của mình trong tệp sau, nhưng do sự khác biệt so với 2.2, nên có thể không được sao chép trực tiếp qua tệp http.conf:

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

Có một hướng dẫn nâng cấp tại: http://httpd.apache.org/docs/2.4/upgrad.html

Đảm bảo rằng mọi tệp cấu hình bổ sung được bao gồm trước đó vẫn được bao gồm, sau đó kiểm tra cấu hình bằng lệnh:

sudo apachectl configtest

Làm thế nào mà trả lời câu hỏi? Bạn không cần phải thay đổi mô-đun php nào bạn đang tải sau khi nâng cấp Apache ...
AlxVallejo

8

Sự cố xảy ra do Yosemite cài đặt phiên bản Apache (2.4) mới nhất trong khi các phiên bản Mac OS X trước đó sử dụng phiên bản Apache 2.2

Từ lỗi, có vẻ như bạn không sử dụng phiên bản PHP tiêu chuẩn do Apple cung cấp mà là một phiên bản khác được cung cấp bởi liip.ch. Xóa dấu # theo đề xuất của Nuttyx ở trên sẽ tải phiên bản php của Apple (5.5,14). Nếu bạn muốn tiếp tục chạy phiên bản được cung cấp bởi liip, bạn sẽ cần cài đặt lại để nó tải đúng trong Apache 2.4. Xem giải thích chi tiết tại đây: ( http://blog.liip.ch/archive/2014/06/11/php-osx-av Available-for-os-x-10-10-yosemite.html )

NB Nếu bạn đang sử dụng máy chủ ảo, có thể bạn sẽ cần thay đổi tệp cấu hình của mình một chút. Cụ thể, bạn sẽ cần thay đổi như sau:

Cấu hình 2.2:

Order allow,deny
Allow from all

Cấu hình 2.4:

Require all granted

4

Dường như bạn có thể khắc phục điều này bằng cách xóa phần #mở rộng của dòng sau trong /etc/apache2/httpd.conftệp:

LoadModule php5_module libexec/apache2/libphp5.so

1
Điều này đã làm điều đó cho tôi!
Matthieu Riegler

1

Chạy 'sudo apachectl' mà không có đối số cho thấy vấn đề trong các tệp conf. Trong trường hợp của tôi, nâng cấp php đã sửa nó.

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

Sau đó, Apache chạy lại nhưng tôi phải cấu hình lại các vhost.


0

Trong khi câu hỏi trên đã được trả lời, có một khả năng khác của lỗi tương tự như:

/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

Điều này có thể xảy ra nếu bạn đã tạo một liên kết tượng trưng đang được gọi trong tên ở trên và nó không được tìm thấy. Để giải quyết, hãy tạo một liên kết tượng trưng cung cấp đường dẫn tuyệt đối cho tệp thực tế và tương tự cho tên tệp liên kết tượng trưng được cung cấp.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.