我上周配置了一个Web服务器,它工作正常。
今天我请求它的主页,我看到时区错误,因为它应该配置到我的php.ini文件中。
我在我的网络服务器上试了phpinfo();
,它给了我:
Configuration File (php.ini) Path /opt/rrh/php/lib
但是没有加载php.ini文件。
我调查一下,php文件存在且拥有非常大的权限:
ls -la /opt/rrh/php/lib
-rwxrwxrwx 1 apache root 68448 Nov 22 10:10 php.ini
我尝试parse_ini_file("/opt/rrh/php/lib/php.ini"));
,它不会返回任何错误...
当然,我重启了我的服务器十几次。
我可以做些什么来解决我的问题?
我的系统:
libphp5.so
apache module 答案 0 :(得分:14)
要强制重新加载php.ini,你应该重启apache。
从命令行尝试sudo service apache2 restart
。
或sudo /etc/init.d/apache2 restart
答案 1 :(得分:9)
您还可以使用service apache2 reload
或apachectl -k graceful
正常重启apache服务器。
正如apache doc所说:
USR1或优雅信号会导致父进程通知 孩子在他们当前的要求后退出(或立即退出 如果他们没有提供任何服务)。父母重读了它 配置文件并重新打开其日志文件。每个孩子都会死去 父母将其替换为来自新一代的孩子 配置,立即开始提供新请求。
答案 2 :(得分:7)
TL; DR;如果重新启动apache或nginx后仍然遇到问题,请尝试重新启动php-fpm
服务。
这里的答案并不总是满足强制重新加载php.ini文件的要求。在很多情况下,我采取这些步骤无需更新即可获得回报,只是在重新启动php-fpm服务之后才找到了我需要的解决方案。因此,即使您知道文件已更新,如果重新启动apache并不会触发php.ini更新,也请尝试重新启动php-fpm。
要重新启动服务:
注意:如果不是root,请在sudo之前添加
直接使用SysV Init脚本:
/etc/init.d/php-fpm restart # typical
/etc/init.d/php5-fpm restart # debian-style
/etc/init.d/php7.0-fpm restart # debian-style PHP 7
使用服务包装器脚本
service php-fpm restart # typical
service php5-fpm restart # debian-style
service php7.0-fpm restart. # debian-style PHP 7
使用Upstart(例如ubuntu):
restart php7.0-fpm # typical (ubuntu is debian-based) PHP 7
restart php5-fpm # typical (ubuntu is debian-based)
restart php-fpm # uncommon
使用systemd(较新的服务器):
systemctl restart php-fpm.service # typical
systemctl restart php5-fpm.service # uncommon
systemctl restart php7.0-fpm.service # uncommon PHP 7
或系统上的任何等效物。
以上内容直接取自this server fault answer