为了跑个yaf的crontab,执行时报错:
PHP Fatal error: Class 'Yaf_Application' not found
由于yaf的命令行模式下加载的php.ini跟website模式下是不同的,需要检查该php.ini有无加载yaf。
执行
查看有无yaf,如果没有就添加上。ubuntu下cli php.ini路径是/etc/php5/cli
加上
注意:
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
的错误
如果有,用
看看是不是开启了
开启了就没问题了。
另外,命令行模式的入口路径建议跟website分开。例如website用./public/ cli用./cli
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

本文解决了一个关于Yaf框架在cron任务中出现的PHP Fatal Error问题,主要原因是命令行模式下未正确配置yaf扩展。通过修改php.ini文件并确保yaf扩展已加载,最终成功解决了问题。
4021

被折叠的 条评论
为什么被折叠?



