我正在尝试创建一个在我的服务器上一直运行的php文件,如果我的收件箱中有更改,则每秒检查一次。
为此,我编写了一个while循环,就像我展示的那样:
/folder1/page/test.php:
session_start();
while (true){
set_time_limit(0);
date_default_timezone_set('Europe/Madrid');
require_once ('./folder1/path.php');
require_once ( CLASSES . 'Builder.php');
$UIModules = Builder::getUIModules();
$current_items = $UIModules->getfile();
sleep(1);
}
所以在SSH中,当我显示/usr/bin/php5.4 /kunden/homepages/31/d466491669/htdocs/folder1/page/test.php
时,我用php5.4启动我的文件。
它给了我这个错误:“没有指定输入文件”。我试图通过添加带有这3行的.htaccess文件来解决它,但仍然存在同样的问题:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
在开始时提出的问题之后,我还想询问是否可以在我的root上调用cron.php,如下所示:
while (true){
set_time_limit(0);
if (strpos( __DIR__ ,'d466491669') == true)
require_once ('./folder1/page/test.inc.php');
else
require_once (__DIR__ . './page/test.inc.php');
}
所以我可以删除test.php上的循环
答案 0 :(得分:0)
当您运行PHP作为CLI(命令行界面)时,它与通过浏览器运行apache / nginex / others_web_server完全不同
你可以通过phpinfo();
在两个calles上看到它。
这里是一些解释的链接http://www.php.net/manual/en/features.commandline.php
另外如果你想通过cron运行php,那么记住它将在每次cron运行时运行 - 所以如果你设置cron job每2分钟执行一次。每两分钟,您的test.php文件将由php5.4 -f test.php
运行。并且你想要添加一些故障保护 - 比如锁定文件或任何知道cron作业的最后一个副本是否仍在工作 - 如果是 - exit
,如果不是 - 然后工作。
信息:php cli完全忽略了.htaccess。它仅在通过apache或其他服务器应用程序发出请求时使用,而不是命令行界面。即使更好这个界面也有自己的php.ini
文件,其设置与普通的''配置文件略有不同。