我正在尝试在我的(已升级的)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 php
pkg-delete
答案3
重新安装devel/pcre
似乎已经解决了问题。请参阅我的评论BloodPhilia 的答案。
我不知道为什么这样做会有效。