FreeBSD 8.1 Apache 2.2 尝试从不存在的调试位置加载 PHP 5.3.2 模块

FreeBSD 8.1 Apache 2.2 尝试从不存在的调试位置加载 PHP 5.3.2 模块

我正在尝试在我的(已升级的)FreeBSD 8.1 机器上运行 Gallery2 安装。以前是 FreeBSD 6.2,Gallery2 可以在该机器上运行。不过希望我的问题与 Gallery2 关系不大。

我现在遇到的情况(除了其他一些事情,我希望这些事情是无关的)是,Apache(2.2.15)有时(当我(尝试)在 Gallery2 中导航时)尝试加载一个名为 的模块pcre.so。它似乎在 中寻找这个模块/usr/local/lib/php/20090626-debug。现在该路径确实不存在(不再存在?)。机器上没有(也就是说不应该有)任何 php 调试版本。

以下是来自的日志条目/var/log/httpd-error.log

Unknown(0) : Warning - PHP Startup: Unable to load dynamic library
        '/usr/local/lib/php/20090626-debug/pcre.so' - Cannot open
        "/usr/local/lib/php/20090626-debug/pcre.so"

我想知道这条路径是从哪里来的...例如有目录,/usr/local/lib/php/20090626/但里面也没有pcre.so。还有端口devel/php5-pcre 去掉了(显然是因为 pcre 现在在lang/php5?)。

我确实首先在调试模式下构建了 PHP(错误)。但与此同时,我删除并重新安装了 PHP(和所有扩展),甚至 Apache - 相同的日志条目仍然不断弹出。

还有第二种类型的日志条目我无法解释(/var/log/httpd-error.log再次解释):

<br />
<b>Warning</b>:  Directive 'magic_quotes_gpc' is deprecated in PHP 5.3
        and greater in <b>Unknown</b> on line <b>0</b><br />

但是我找不到任何引用/使用的内容magic_quotes_gpc(例如,它不在里面,/usr/local/etc/php.ini或者更准确地说,它在那里被注释掉了)。

有人可以提示一下为什么 Apache 会在已弃用/不存在的路径中寻找(已弃用的)模块吗?

答案1

尝试删除 prce,检查是否有效,如果不行,删除 php 目录,然后重建 php 5:

$ sudo apt-get remove php5-pcre
$ rm -rf /usr/local/include/php /usr/local/lib/php /usr/local/etc/php

答案2

扩展端口不会向主php.ini文件发送垃圾邮件,而是会进行修改,您可能必须从那里删除它(但这很奇怪,因为该文件不使用完整路径,只使用文件名;而且,这应该在卸载包时处理好,如果您还拥有它,/usr/local/etc/php/extensions.ini最好检查一下,在这种情况下)。pkg_info|fgrep phppkg-delete

答案3

重新安装devel/pcre似乎已经解决了问题。请参阅我的评论BloodPhilia 的答案

我不知道为什么这样做会有效。

相关内容