Masalah Apache setelah memutakhirkan ke Yosemite

8

Server web Mac saya tidak akan berfungsi setelah memutakhirkan ke Yosemite. Ketika saya mengetik di apachectlTerminal, saya mendapatkan ini:

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

Jika saya mengetik sudo apachectl [re]starttidak ada yang terjadi, seolah-olah itu dimulai dan saya ketik lagi, dikatakan sudah berjalan. Juga, saya memiliki panel Preferensi Berbagi Web diinstal ( http://clickontyler.com/web-sharing/ ) dan ketika saya menjentikkan saklar dari Off ke On, ia masih mengatakan itu mati, meskipun saklar berada pada posisi On. .

File apa yang kalian ingin / perlu lihat? Benar-benar perlu untuk memperbaiki ASAP ini.

Tom Oakley
sumber

Jawaban:

6

Harap perhatikan juga bahwa pemasang Yosemite menimpa seluruh file /private/etc/apache2/httpd.conf dengan file konfigurasi Apache 2.4 default yang baru.

Misalnya, jika ada Listenarahan yang ditambahkan, mereka akan menghilang dan perlu ditambahkan lagi. Misalnya:

Listen 127.0.0.1:81

Saya menemukan konfigurasi lama saya di file berikut, tetapi karena perbedaan dari 2.2, mungkin tidak boleh disalin langsung ke file http.conf:

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

Ada panduan peningkatan di: http://httpd.apache.org/docs/2.4/upgrading.html

Pastikan bahwa semua file konfigurasi tambahan yang disertakan sebelumnya masih termasuk, dan kemudian uji konfigurasi dengan perintah:

sudo apachectl configtest
Otto G
sumber
Bagaimana itu menjawab pertanyaan? Anda tidak perlu mengubah modul php apa yang Anda muat setelah memutakhirkan Apache ...
AlxVallejo
8

Masalahnya terjadi karena Yosemite menginstal versi terbaru dari Apache (2.4) sedangkan versi Mac OS X sebelumnya menggunakan Apache versi 2.2

Dari kesalahan, tampaknya Anda tidak menggunakan versi standar PHP yang disediakan oleh Apple tetapi versi yang berbeda disediakan oleh liip.ch. Menghapus tanda # seperti yang disarankan oleh Nuttyx di atas akan memuat versi Apple php (5.5.14). Jika Anda ingin terus menjalankan versi yang disediakan oleh liip, Anda harus menginstalnya kembali agar dapat dimuat dengan benar di Apache 2.4. Lihat penjelasan terperinci di sini: ( http://blog.liip.ch/archive/2014/06/11/php-osx-available-for-os-x-10-10-yosemite.html )

NB Jika Anda menggunakan host virtual, Anda mungkin perlu mengubah file konfigurasi Anda. Khususnya Anda perlu mengubah yang berikut:

2.2 konfigurasi:

Order allow,deny
Allow from all

2.4 konfigurasi:

Require all granted
John Dalton
sumber
4

Tampaknya Anda dapat memperbaikinya dengan menghapus yang #di beggining dari baris berikut di /etc/apache2/httpd.confberkas:

LoadModule php5_module libexec/apache2/libphp5.so
NuTTyX
sumber
1
Ini berhasil untukku!
Matthieu Riegler
1

Menjalankan 'sudo apachectl' tanpa argumen menunjukkan masalah dalam file conf. Dalam kasus saya, memutakhirkan php memang memperbaikinya.

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

Setelah itu, Apache berjalan lagi tetapi saya harus mengkonfigurasi ulang vhosts.

raoulsson
sumber
0

Sementara pertanyaan di atas telah dijawab, ada kemungkinan lain dari kesalahan yang sama seperti:

/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

Ini bisa terjadi jika Anda telah membuat tautan simbolis yang dirujuk dalam nama di atas dan itu tidak ditemukan. Untuk menyelesaikan membuat tautan simbolik yang menyediakan jalur absolut untuk file aktual dan sama untuk nama file symlink yang disediakan.

Onik
sumber