愤怒的小菜

小菜的成长博客

PHP CLI模式下运行YAF框架

在做一项目需要在CLI模式下执行YAF框架,结果各种悲剧发生了.


拷贝一份phpi.ini提CLI使用, cp php.ini cli_php.ini (extension_dir 路径在 cat /usr/local/php5/bin/php-config 中查找)

cli_php.ini

extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/"

extension = "json.so"

extension = "memcache.so"

extension = "imagick.so"

extension = "yaf.so"

extension = "yar.so"

extension = "mongo.so"

extension = "httpsqs.so"

extension = "redis.so"


使用-c指定php.ini路径

php -c /usr/local/php/etc/cli_php.ini clisapi.php


报错

[root@api dev1]# php -c /usr/local/php/etc/cli_php.ini clisapi.php request_uir="/Index/Cli/demo2"

PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/yar.so' - /usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/yar.so: undefined symbol: php_json_encode in Unknown on line

解决方法:

yar.so 加载之前必须加载 json.so ,而json.so是在/etc/php.d/json.ini中加载,这样会导致json.so在memcached.so之后加载;可以删除/etc /php.d/json.ini文件,而在php.ini中直接添加extensino=json.so来解决


评论(1)

© 愤怒的小菜 | Powered by LOFTER