Jas*_*ers 3 php cron command-line-interface safe-mode plesk
我正在使用Kohana框架(3.0.9),它生成每日日志.我希望邮寄日志文件,如果在CRON运行脚本的前一天发送了一个日志文件,但经过几天的尝试,我无法弄清楚如何在PHP CLI模式中推迟safe_mode.
当我在网上运行我的脚本时,没有问题.但我想在我的Plesk 9.5.2服务器上运行脚本作为CRON任务(或以root用户身份在命令行上运行)我收到以下错误:
ErrorException [2]:dir():安全模式限制生效.其uid为10001的脚本不允许访问uid 48~APPATATH/classes/controller/ajax.php所拥有的/var/www/vhosts/mydomain.com/subdomains/mysubdomain/httpdocs/application/logs/2011/01 [ 181]
我已经在我的Plesk控制面板中关闭了SAFE MODE,它适用于Web请求,但不能在命令行或作为CRON任务.
我正在使用以下代码来测试它是否正常工作:
$d = dir(APPPATH.'logs/2011/01/');
echo "Handle: " . $d->handle . "\n";
echo "Path: " . $d->path . "\n";
while (false !== ($entry = $d->read())) {
echo $entry."\n";
}
$d->close();
Run Code Online (Sandbox Code Playgroud)
我可以读取目录APPPATH.'logs /',以及目录APPPATH.'logs/2011',但是每月用日常日志文件表示的目录总是会出错.
ck_*_*ck_ 15
现在你可以从UI安排php脚本执行,如下所示:
如果您仍然需要通过命令行执行脚本,请注意Plesk的PHP二进制文件放在:
# 7.0
/opt/plesk/php/7.0/bin/php
# 5.6
/opt/plesk/php/5.6/bin/php
# 5.5
/opt/plesk/php/5.5/bin/php
# and so on
Run Code Online (Sandbox Code Playgroud)
原始答案:
我知道这已经有几个月了,但对于下一个在使用Plesk和cron和PHP时遇到问题的人来说,这就是答案.
虽然Plesk确实将cron作为ROOT运行,但它默认运行PHP并且安全模式为ON,这意味着当您在Plesk中设置需要PHP的cron时,它将具有您无法从shell或Web体验到的限制.
所以你要做的是使用CLI /etc/php.ini选项覆盖,如下所示:
/usr/bin/php -q -d safe_mode=Off /var/www/vhosts/path-to-your-php-file.php
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5376 次 |
最近记录: |