2012-02-27 83 views
0

我通过Parallels Plesk Panel(控制面板)的crontab,输入以下命令来运行PHP文件每小时一次:PHP的Cron问题 - 使用的Plesk:动态库,open_basedir的

php httpdocs/cron/script.php 

而且我得到以下2错误信息(一次一个小时,我的电子邮件):

PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/http.so' - 
/usr/lib/php/modules/http.so: cannot open shared object file: No such file or directory in 
Unknown on line 0 
PHP Warning: require_once(): open_basedir restriction in effect. 
File(../include/functions.php) is not within the allowed path(s): 
(/var/www/vhosts/basedomain.com:/tmp) in /var/www/vhosts/example.com/httpdocs/cron/script.php 
on line 2 
PHP Warning: require_once(../include/functions.php): failed to open stream: Operation not 
permitted in /var/www/vhosts/example.com/httpdocs/cron/script.php on line 2 
PHP Fatal error: require_once(): Failed opening required '../include/functions.php' 
(include_path='.:') in /var/www/vhosts/example.com/httpdocs/cron/script.php on line 2 

注:2号线有require_once(../include/functions.php);

我意识到这是2点不同的问题。我试着分别解决每个问题,他们都还在我身边。任何帮助,将不胜感激。谢谢

回答

1

当你运行PHP这样的,在Plesk中特异性和Apache特定的地方,如vhost.conf配置集不适用。

由于您的脚本已经在httpdocs中,为什么不使用wget/curl通过HTTP调用脚本?类似于/usr/bin/curl http://yoursite.com/cron/script.php 2>&1。可能要考虑一些额外的验证(IP限制,htpasswd验证),以确保随机访问者(脚本小子)不能运行它。

+0

嗨,我复制时犯了一个错误,它不在同一个域内:有baseomain.com,然后有example.com;另外,我不确定您的建议是针对crontab还是包含在脚本中? – 2012-02-27 06:14:57

+0

@LucyWeatherford:这个建议是针对crontab的。但是现在你已经改变了这个问题,我首先要确保脚本在浏览器中打开时能够正常工作,然后才能将它添加到crontab中。 – DCoder 2012-02-27 06:31:07

+0

它在浏览器中运行良好,我已经检查过它 – 2012-02-27 06:32:29

1

请检查下面,也许它会帮助你。
http://www.geeklog.net/forum/viewtopic.php?showtopic=28107

+0

谢谢,我试着做他们昨天在那里写的东西,在其他地方也找到了说明。我现在再试一次,但它似乎没有去任何地方或解决它。我试过代码\ Dcoder给了我,但它解决了第二个问题。 yay .. – 2012-02-27 06:43:22

+0

@LucyWeatherford好露西很好,欢呼享受 – Milap 2012-02-27 06:45:44