PHP не перекомпилируется должным образом.
У меня PHP 7.2 установлен на Nginx с использованием php-fpm на Centos 7. Я перекомпилирую php с большим количеством опций, используя ./configure, make clean, make, make test и make install.
Все работает хорошо и никаких ошибок не выдается, кроме обновленного php
компиляция не отражается на phpinfo (); Таблица. Если вы видите
«Дата постройки» это не меняется. «Настроить команду» также не обновляется после перекомпиляции.
Почему php не может быть перекомпилирован и «Дата постройки» не обновляется, а «Настроить команду» также не отражает мои изменения?
Я перезапустил nginx, перезапустил php-fpm и до сих пор без изменений. Я могу без проблем редактировать файл php.ini, и они обновляются, но сам php не обновляется после перекомпиляции и добавления дополнительных опций (—with-openssl). Я даже перезапустил сервер. PHP файлы обслуживаются нормально.
Кто-нибудь может помочь?
Я только что понял это примерно через полдня.
Причина, по которой новая перекомпиляция php не была распознана, была в том, что мне нужно было вручную скопировать новую обновленную программу php-fpm в каталог / usr / local / bin, например так:
cp sapi/fpm/php-fpm /usr/local/bin
И это исправило это. Таким образом, php WAS перекомпилировался корректно, но система этого не увидела, поскольку php-fpm не был скопирован вручную в каталог, из которого nginx извлекает php-fpm. Файл должен быть перезаписан, когда php-fpm выключен.
Бонусный совет
Это моя команда для перезагрузки php, php-fpm и nginx после перекомпиляции:
# gracefully stop the php-fpm process
pkill -15 php-fpm
# copy the new recompiled php-fpm to the executable directory
cp -f sapi/fpm/php-fpm /usr/local/bin
# start php-fpm
/usr/local/bin/php-fpm
# signal nginx to reload
nginx -s reload
Все в одной строке:
pkill -15 php-fpm && cp -f sapi/fpm/php-fpm /usr/local/bin && /usr/local/bin/php-fpm && nginx -s reload
Других решений пока нет …