PHP没有正确重新编译。
我在Centos 7上使用php-fpm在Nginx上安装了PHP 7.2。我正在使用./configure,make clean,make,make test和make install重新编译带有更多选项的php。
除了更新的php之外,一切运行良好且不会抛出任何错误 编译没有反映在phpinfo();表。如果你看到了 "构建日期" 它没有改变。重新编译后,"配置命令" 也没有更新。
为什么php不能重新编译,"构建日期" 没有更新,而"配置命令" 也没有反映我的变化?
我重新启动了nginx,重新启动了php-fpm,但仍然没有变化。我可以编辑php.ini文件也没有问题,他们会更新,但我重新编译并添加更多选项(--with-openssl)后,PHP本身不会更新。我甚至重新启动了服务器。 PHP文件很好。
有人可以帮忙吗?
答案 0 :(得分:0)
我在大约半天后才弄清楚。
新的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