Назад | Перейти на главную страницу

Перенастройка PHP 5.6 для работы в MacOS 10.13 High Sierra

Мне нужно запустить PHP 5.6 на Mac, который нужно было обновить до 10.13. Итак, я переустановил 5.6, проверил его местоположение и добавил в httpd.conf:

LoadModule php5_module libexec/apache2/libphp5.so

... и убедился, что строка для PHP 7 все еще закомментирована. После перезапуска Apache, Apache запускается нормально, не выдает ошибок и работает, но без PHP! Поэтому в качестве теста я закомментировал строку PHP 5 и раскомментировал строку PHP 7:

LoadModule php7_module libexec/apache2/libphp7.so

... перезапустил Apache, и снова все работает нормально, но PHP все еще нет! Поэтому я запросил двоичный файл httpd, чтобы убедиться, что редактирую правильный httpd.conf, и я прав. Ни одна из версий PHP не будет работать, и при этом ни одна из них не вызовет ошибку в Apache при запуске. (Когда я говорю, что Apache работает, а PHP - нет, я имею в виду, что браузер отображает:

<?php phpinfo(); ?>

... без рендеринга. Помогите? У меня закончились идеи, как запустить PHP 5.6.

Использование PHP5.6 с HighSierra

Разрешить сборку общего модуля Apache Handler. Убедитесь, что у вас установлена ​​последняя версия PHP56 и включена опция http (при необходимости установите / обновите / переустановите)

$brew upgrade php56 --with-httpd

Связывание модуля в файле конфигурации Apache2 Добавьте следующий оператор в файл конфигурации apache2 /etc/apache2/httpd.conf

LoadModule php5_module /usr/local/Cellar/php56/5.6.32_8/libexec/apache2/libphp5.so

или для более новой версии 5.6.36_1 и выше (кредит @avidenic)

LoadModule php5_module /usr/local/Cellar/php@5.6/5.6.36_1/lib/httpd/modules/libphp5.so

Добавление файла конфигурации PHP5

Сделайте копию из php7.conf

$ cd /etc/apache2/other ; sudo cp php7.conf php5.conf

В php5.conf замените php7_module на php5_module

Перезагрузите сервер Apache

$ sudo /usr/sbin/apachectl restart

Мне пришлось переустановить xcode и php56 с поддержкой apache, чтобы он снова заработал.

xcode-select --install
brew reinstall php56 --with-httpd

libphp5.so больше не предоставляется ОС, но он есть в файловой системе, потому что мы только что его установили. Таким образом, вам также нужно изменить файл конфигурации apache, включив php5:

LoadModule php5_module /usr/local/opt/php56/libexec/apache2/libphp5.so

Я не знаю, знаете ли вы это, но High Sierra поставляется с собственной версией php, попробуйте запустить этот код:

для i в $ (brew list | grep php); сделать brew uninstall $ i; сделано

это сработало для меня, так как у меня была такая же проблема, затем я заметил, что High Sierra пыталась загрузить свою версию, а не запускала мою.