Homebrew PHP 7.1 (macOS Sierra) Синтаксическая ошибка Apache

Поэтому я следил за этим руководством, которое помогает настроить Apache 2.4 с несколькими версиями PHP. Все шло достаточно гладко, и у меня работали все версии PHP, кроме 7.1. При попытке запустить сервер Apache для получения phpinfo версии 7.1 я получил следующее сообщение об ошибке:

httpd: Syntax error on line 178 of 
/usr/local/etc/apache2/2.4/httpd.conf: 
Cannot load /usr/local/opt/php71/libexec/apache2/libphp7.so into server: 
dlopen(/usr/local/opt/php71/libexec/apache2/libphp7.so, 10): image not found

Это код, который существует в строке 178:

LoadModule php7_module  /usr/local/opt/php71/libexec/apache2/libphp7.so

я пытался бежать

brew reinstall php71 --with-httpd24

и перезапустил сервер Apache. Все еще получаю такое же сообщение об ошибке. Есть идеи, что пошло не так? Я ценю любые ответы! Большое спасибо!


person Benji Durden    schedule 08.07.2017    source источник
comment
Вы убедились, что файл /libexec/apache2/libphp7.so уже существует?   -  person wonder95    schedule 10.10.2017
comment
Недавно Homebrew изменил схему именования версий PHP (следуя общей схеме именования, которую они ввели в прошлом году для более старых версий программ). Используйте brew --prefix php71 (или [email protected], если php71 не работает), чтобы узнать, где искать libphp7.so.   -  person axiac    schedule 30.03.2018


Ответы (6)


У меня такая же проблема.

Для меня доморощенный имеет другую структуру папок в /usr/local/opt, где папки больше похожи на /usr/local/opt/[email protected]

Так что мне нужно было найти, где жил libphp7.so и существовал ли он вообще.

Бег find /usr -name "libphp7.so"

Вернулся с:

/usr/libexec/apache2/libphp7.so и /usr/local/Cellar/[email protected]/7.1.15/lib/httpd/modules/libphp7.so

Оба работают вместо /usr/local/opt/php71/libexec/apache2/libphp7.so для меня, и я обновлю, если потребуется в будущем.

Поэтому я обновил httpd.conf, чтобы использовать

LoadModule php7_module /usr/local/Cellar/[email protected]/7.1.15/lib/httpd/modules/libphp7.so

Затем я перезапустил apache с sudo apachectl -k restart, и все в порядке.

person Harry B    schedule 30.03.2018
comment
Также запустите команду brew info php. В разделе предупреждения найдите местоположение LoadModule и вставьте его в httpd.conf. - person back2back; 24.05.2021

Я получаю эту ошибку с brew install php. затем apachectl -t для проверки синтаксиса

httpd: Syntax error on line 180 of /private/etc/apache2/httpd.conf: Cannot load /usr/local/Cellar/php/7.3.2/lib/httpd/modules/libphp7.so into server: dlopen(/usr/local/Cellar/php/7.3.2/lib/httpd/modules/libphp7.so, 10): Symbol not found: _sqlite3_enable_load_extension\n  Referenced from: /usr/local/Cellar/php/7.3.2/lib/httpd/modules/libphp7.so\n  Expected in: /usr/lib/libsqlite3.dylib\n in /usr/local/Cellar/php/7.3.2/lib/httpd/modules/libphp7.so

Почему-то??? Я нашел libphp7.so здесь

LoadModule php7_module /usr/libexec/apache2/libphp7.so

Подключил и работает. Однако мне не ясно, почему первый терпит неудачу.

person Harry McGovern    schedule 03.03.2019
comment
Активированный вами php является версией PHP по умолчанию, которая поставляется с ОС, в случае Mojave это 7.1.33. - person Larzan; 25.05.2020

Homebrew поручил добавить это в мой файл httpd.conf:

LoadModule php7_module /usr/local/opt/[email protected]/lib/httpd/modules/libphp7.so

Я попытался остановить и перезапустить только для того, чтобы получить ту же ошибку. После нескольких обновлений с разными параметрами этот, наконец, сработал для меня.

LoadModule php7_module /usr/libexec/apache2/libphp7.so

person junipear    schedule 09.06.2020

У меня была такая же проблема, но с php 7.2.

Запуск brew linkage php показал, что есть некоторые неработающие зависимости.

Так что запуск brew update && brew upgrade разрешил это для меня.

person user15143683    schedule 04.02.2021
comment
Это сработало для меня, когда обновление Big Sur 11.3 сильно понерфило мой M1 Mac. - person Matt H; 29.04.2021

в usr/local/opt была папка(псевдоним) только php

`Just duplicate the php Alias-Folder and rename it to [email protected]`

после этого sudo apache грациозно я закончил

person user3199225    schedule 28.10.2020

У меня было обновление PHP, путь к файлу был изменен. Я изменил путь к модулю в httpd.conf.

До:

LoadModule php7_module /usr/local/opt/[email protected]/lib/httpd/modules/libphp7.so

После:

LoadModule php7_module /usr/local/Cellar/php/7.4.12/lib/httpd/modules/libphp7.so

person Alprod Grm    schedule 14.11.2020