PHP через PECL, оно не подтягивается в mod_php?
Стоит Mac OS Big Sur последней версии, процессор M1 (архитектура arm64).
PHP скомпилен под arm64, libphp7.so (mod_php) — тоже под arm64.
pecl отработал без ошибок и даже поставил в php.ini строчку с подключением модуля, в командной строке модуль спокойно находится. Но сервер до сих пор не видит. Делал и рестарты, и принудительные стоп и старт апача, но все по-прежнему.
phpinfo показывает, что загружается нужный php.ini, но почему-то модуля в phpinfo нет 😞
Версия PHP: 7.4.18
Стоит также отметить, что это проблема загрузки динамических библиотек в целом. С PHP в комплекте шел opcache, который тоже динамический... и phpinfo даже показывает, что подгружает его конфиг с отдельного ini-конфига... но в модулях его тоже не видно.
Если вдруг кому интересно решение проблемы, то оказывается с некоторых пор Apple подписывает все системные программы в /usr/bin с помощью своего сертификата. С точки зрения безопасности эти программы не могут загружать неподписанные библиотеки. Таким образом, в момент загрузки расширения проверяется подпись расширения... если подписи нет или не проходит валидацию через стандартные механизмы codesign, то расширение просто не загружается. Эта ошибка сваливается в Apache log, который за системные ошибки отвечает. Далее все спокойно работает дальше. В PHP CLI все работало, так как я его собирал сам и не подписывал никакими сертификатами разработчика. Соответственно, подключаемые расширения также не проверялись на подпись. Отсюда вывод: решением проблемы будет либо подпись всех библиотек сертификатом разработчика, либо установить apache собственными силами отдельно от системного.
Brew install php@7.4 && brew link php@7.4 и не занимайтесь велосипедостроением со сборкой из исходников на маке. У вас же не генту.
решил повыделываться и обосрался, он же не про это говорит
Прошу не судить по своему опыту. Это всего лишь подсказка что делать. Пхп расширения ставятся так же. Брю сам все скомпилит и поставит. Им же можно поставить апач и все прекрасно само взлетит без танцев с бубном. А свой токсичный стиль общения стоит оставить где-то там, где вы забыли и своё умение видеть чуть дальше собственного носа.
Обсуждают сегодня