我试图使用一个PHP脚本的敏感信息,所以我使用包含托管密码上面的webroot。
这个脚本可以很好地通过浏览器运行,但是当我把它作为一个crob作业运行时,它会生成关于include的错误消息。
open_basedir设置是:/var/www/vhosts/xxx/:/tmp/——想知道这是否相关?
感谢任何关于如何解决这个问题或变通方法的建议。
PHP Warning: include(../includes.php): failed to open stream: No such file or directory in /var/www/vhosts/xxx.com/httpdocs/linkedin_status.php on line 6
PHP Warning: include(../includes.php): failed to open stream: No such file or directory in /var/www/vhosts/xxx.com/httpdocs/linkedin_status.php on line 6
PHP Warning: include(): Failed opening '../includes.php' for inclusion (include_path='.:') in /var/www/vhosts/xxx.com/httpdocs/linkedin_status.php on line 6
PHP Notice: Use of undefined constant API_KEY - assumed 'API_KEY' in /var/www/vhosts/xxx.com/httpdocs/linkedin_status.php on line 88
PHP Notice: Use of undefined constant SCOPE - assumed 'SCOPE' in /var/www/vhosts/xxx.com/httpdocs/linkedin_status.php on line 89
PHP Notice: Use of undefined constant REDIRECT_URI - assumed 'REDIRECT_URI' in /var/www/vhosts/xxx.com/httpdocs/linkedin_status.php on line 91
这对我来说总是有效的…
require_once("/full/path/to/your/file/includes.php");
您可能遇到的情况是,Cronjob使用了不同的php.ini,因此使用了不同的设置。为了确认这一点,您可以创建一个php脚本,将phpinfo();
结果写入一个文件。在输出中,您将看到正在使用哪个php.ini。
你可以这样做:
- 在执行cronjob时指定要使用哪个php.ini。
- 通过wget命令运行cronjob,该命令通过web服务器(如浏览器)实际执行脚本。Wget是一个命令提示符工具(不是PHP!),它从互联网调用url并将其写入屏幕或文件。