0

当我通过shell_exec()消息调用 PHP 脚本 ( process.php ) 时发现一个奇怪的错误 :

Fatal error: Uncaught exception 'Zend_Cache_Exception' with message 'The memcache extension must be loaded for using this backend !' in /Applications/XAMPP/xamppfiles/htdocs/shared_lib/ZendFramework/1.5.2-patched/Zend/Cache.php:208

但是,如果我在终端中调用它,我可以毫无错误地调用 process.php 。

伪代码:

控制.php

// some business logic ....
shell_exec("php process.php");
// some business logic ....

process.php

// some business logic ....
call Zend_Cache to retrieve data from memecache
// some business logic .... 
4

1 回答 1

1

您可以在(vhosts.conf 的)http.conf 中指定不同的 php.ini 文件。默认情况下,PHP 将使用路径中的那个(当您运行 hte 注释行时会发生这种情况),但在 apache 中,您可以告诉它加载不同的路径。

检查类似的行

PHPINIDir /etc/local/php

(PHPINIDir 是重要的一点!)在 httpd.conf/vhosts.conf 中,这将是您通过具有 memcached 的 apache 使用的文件。然后检查命令行使用的 php.ini 文件($ php -i | grep 'Configuration File'),看看是否不同。就是这样,使用“php -c XXX/php.ini”来告诉命令行使用与 apache 相同的 ini 文件。

于 2012-08-20T00:22:44.420 回答