我有一个使用file_get_contents()
它在浏览器中运行正常,但在作为cron作业运行时失败并出现以下错误:
警告:file_get_contents():URL 服务器中禁用了文件访问权限 配置 第22行的/path/to/the/phpfile.php
这就是我正在使用的:
/ usr / bin / php5 -q /path/to/the/phpfile.php
我已经在php.ini中设置了allow_url_fopen = true
,但这似乎没有任何效果。
尽管如此,一切都在浏览器中完美运行。如何解决这个问题?
答案 0 :(得分:2)
php --info | more
或者您可以使用--php-ini /path/to/ini
(执行man php
)指定要使用的ini文件。
答案 1 :(得分:1)
至少有一些Linux发行版有多个PHP配置(php.ini文件)。 例如,Debian测试有这两个:
/etc/php5/apache2/php.ini
/etc/php5/cli/php.ini
在上面的示例中,不同的PHP配置用于Web调用(通过apache)和命令行调用。
这可能是您的问题。
答案 2 :(得分:1)
如果要从远程系统加载文件,则应该使用curl。 file_get_contents不处理网络延迟,重定向或错误捕获。并且在服务器配置中显然是禁用的。
答案 3 :(得分:0)
您可能无意中在系统上拥有多个PHP和/或php.ini副本。你有PC的管理员权限吗?对php
进行全局搜索,看看会发生什么。
答案 4 :(得分:0)
而不是使用php -q在你的cron配置中使用php -cron。 它对我有用。