启动在服务器上运行的程序

时间:2014-05-02 09:26:49

标签: php

我正在尝试创建一个在我的服务器上一直运行的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上的循环

1 个答案:

答案 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文件,其设置与普通的''配置文件略有不同。