PHP警告:PHP启动:无法加载dynamic库

我试图通过cron运行我的脚本,但它不工作…

*/1 * * * * /usr/local/bin/php -f /usr/local/www/maintain.php > /usr/local/www/php.log 

所以我决定尝试从putty的命令行运行这个脚本,如下所示:

 /usr/local/bin/php -f /usr/local/www/maintain.php > /usr/local/www/php.log 

然后我收到以下警告/错误消息:

 # /usr/local/bin/php /usr/local/www/maintain.php > /usr/local/www/php.log PHP Warning: PHP Startup: Unable to load dynamic library '/usr/local/lib/php/20090626/libpcre.so' - Cannot open "/usr/local/lib/php/20090626/libpcre.so" in Unknown on line 0 

但是这个脚本运行的很好,当我通过www像http://my-url.com/maintain.php运行它。

我正在使用FreeBSD的Lighttpd运行PHP 5。 我的问题在哪里?

运行这个命令(将/ usr / bin / phpreplace为PHP二进制文件的path,在本例中为/ usr / local / bin / php):

 # ldd /usr/bin/php linux-gate.so.1 => (0x00932000) libcrypt.so.1 => /lib/libcrypt.so.1 (0x00f16000) libedit.so.0 => /usr/lib/libedit.so.0 (0x008dd000) libncurses.so.5 => /lib/libncurses.so.5 (0x00791000) libgmp.so.3 => /usr/lib/sse2/libgmp.so.3 (0x00de8000) ... 

它允许您精确地看到二进制文件依赖的共享库。 一段时间后,我遇到了一些encryptionPHP库的问题。 来自PHP的错误没有提供有关为什么脚本没有运行的有用信息,直到我运行这个命令,可以看到什么是缺less的。 当你看到的错误抱怨一个特定的图书馆,有一个很好的机会,图书馆依赖于另一个,哪个PHP没有告诉你在错误。 LDD给你这个重要的缺失信息。

注意我在这里运行CentOS Linux。 对于BSD,ldd命令可能被称为别的(我从来没有使用过BSD,所以不能评论)。

/usr/local/lib/libpcre.so是C库。

你自己或从端口编译PHP?

它看起来像是用自定义的PCRE库编译的,因为通常php应该包含pcre支持。