yaf在命令行模式下出现PHP Fatal error: Class 'Yaf_Application' not found的解决办法

为了跑个yaf的crontab,执行时报错:
PHP Fatal error:  Class 'Yaf_Application' not found

由于yaf的命令行模式下加载的php.ini跟website模式下是不同的,需要检查该php.ini有无加载yaf。
执行
php -m


查看有无yaf,如果没有就添加上。ubuntu下cli php.ini路径是/etc/php5/cli
加上
[yaf]
yaf.environ = dev
yaf.library = NULL
yaf.cache_config = 0
yaf.name_suffix = 1
yaf.name_separator = ""
yaf.forward_limit = 5
yaf.use_namespace = 0
yaf.use_spl_autoload = 0
extension=yaf.so

注意:
extension=yaf.so
后面不要带空格,否则会报找不到
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php5/xxx/yaf.so ' - /usr/lib/php5/xxx/yaf.so : cannot open shared object file: No such file or directory in Unknown on line 0

的错误

如果有,用
php -i | grep yaf 

看看是不是开启了


yaf
yaf support => enabled
Supports => http://pecl.php.net/package/yaf
yaf.action_prefer => Off => Off
yaf.cache_config => Off => Off
yaf.environ => dev => dev
yaf.forward_limit => 5 => 5
yaf.library => no value => no value
yaf.lowcase_path => Off => Off
yaf.name_separator => no value => no value
yaf.name_suffix => On => On
yaf.st_compatible => Off => Off
yaf.use_namespace => Off => Off
yaf.use_spl_autoload => Off => Off


开启了就没问题了。

另外,命令行模式的入口路径建议跟website分开。例如website用./public/ cli用./cli

猜你喜欢

转载自lhdst-163-com.iteye.com/blog/2337379