ThinkPHP命令行运行报错PHP Warning: require(./thinkphp/console.php)

是这样子的,我是打算用supervisor作为进程管理 ,然后创建了一个进程

[program:sms]
command=/www/server/php/70/bin/php /www/wwwroot/serv.xxx.com/think bstalkSms;被监控进程
autostart=true ;随着supervisord的启动而启动
user=www ;用户
autorestart=true ;自动启动
startsecs=1 ;程序重启时候停留在runing状态的秒数
startretries=10 ;启动失败时的最多重试次数
stderr_logfile=/www/wwwlogs/super/beanstalk.err.log ; 错误日志文件
stdout_logfile=/www/wwwlogs/super/beanstalk.out.log ; 输出日志文件

发现有报错

sms                              BACKOFF   Exited too quickly (process log may have details)

查看日志

HP Warning:  require(./thinkphp/console.php): failed to open stream: Permission denied in /www/wwwroot/serv.xxx.com/think on line 17
PHP Fatal error:  require(): Failed opening required './thinkphp/console.php' (include_path='.:/www/server/php/70/lib/php') in /www/wwwroot/serv.xxxx.com/think on line 17

然后我手动在linux执行(root用户)

php /www/wwwroot/serv.xxx.com/think bstalkSms:start

同样报错:

HP Warning:  require(./thinkphp/console.php): failed to open stream: Permission denied in /www/wwwroot/serv.xxx.com/think on line 17
PHP Fatal error:  require(): Failed opening required './thinkphp/console.php' (include_path='.:/www/server/php/70/lib/php') in /www/wwwroot/serv.xxxx.com/think on line 17

切换到www执行就不报错了
问题是supervisor报错解决不了就没法用了

阅读 8k
1 个回答

报错的意思是没有./thinkphp/console.php这个文件的权限,你需要更改一下这个文件的拥有者或者直接粗暴的改文件权限

直接改文件权限

chmod 777 ./thinkphp/console.php

改文件拥有者

chown root:root ./thinkphp/console.php
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏