PHP 4在Apache重启后不会接受PHP.ini的更改

8
我们有一个非常老的PHP应用程序,需要PHP 4才能运行。我们正在停用旧服务器,因此我在新服务器上构建了PHP 4(Ubuntu 13.04 32位)。当我执行./configure时,我确保使用--with-config-file-path=/etc/php4/php.ini选项。我尝试启用错误日志记录,但我的php.ini更改似乎没有生效。 是的,该文件存在,并且由Apache用户拥有。
nick@server:/etc/php4$ ls
php.ini

是的,我重新启动了Apache。是的,它也显示在phpinfo()中:

Configuration File (php.ini) Path   /etc/php4/php.ini

--with-config-file-path只在编译时生效,因此如果要进行更改,需要重新编译。或者它是否与较新版本的PHP相同?

例如,在php.ini中关闭了display_errors,但phpinfo()显示:

display_errors  On

请注意,此服务器的本地和主值都显示为On
另外,很抱歉我一直在使用PHP 4。
这是我的php.iniphpinfo截图,以证明我没有说谎。

4
我准备点击编辑按钮来修正你的“4”错别字。 - Joe Frambach
2
创建一个包含phpinfo();的页面...这将告诉您Web服务器正在使用哪个ini php。确保您正在编辑正确的文件。 - Orangepill
2
我已经做过了...?路径在问题中,而且我执行了 ls 命令来向您展示它的存在,并且我一直在编辑正确的文件。 - nwalke
1
我的猜测是php.ini文件的所有者是“root”,而您的Web服务器无法访问它,因此只使用默认配置。 - Prisoner
1
我不知道这个问题的答案,但我想说我很佩服你成功地将php4编译并运行在最新的操作系统上。你可能需要在问题中添加操作系统信息;不确定它是否相关,但这可能会有所帮助。 - Spudley
显示剩余12条评论
1个回答

2

--with-config-file-path需要一个目录,而不是一个文件名。因此,使用您的配置,PHP将寻找/etc/php4/php.ini/php.ini

背景: 采用路径的原因是实际上PHP按顺序查找不同的文件:首先是特定于SAPI的文件php-$SAPI.ini,然后是通用的php.ini。这允许在CLI上使用不同的配置,其中初始启动时间更重要,并且需要其他缓存设置(apc等)。


啊,那就说得通了。现在重新编译! - nwalke

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接