作为cron作业和网站php的一部分,PHP脚本有区别吗?

时间:2013-05-03 18:49:46

标签: php apache cron

我在网站上有很多进程,我现在发现我需要每天午夜运行。我正在尝试使用cron作业来设置它,但我很困惑这是如何工作的。

问题是: php进程如何运行到网站上正常运行方式有什么不同?是否有需要满足的格式,或者在一种情况下可以/不能在另一种情况下运行的代码?这与我正在处理的特定代码无关。这是我还没写的工作,但我似乎找不到这个问题的答案。

1 个答案:

答案 0 :(得分:0)

是的,在大多数典型的PHP设置中实际上存在差异。通常,对于通过Apache运行的PHP来获取网站/ Web服务,您可以使用完全独立的PHP安装,并使用自己的php.ini配置。 PHP通常作为网站的用户运行(httpd,www-data等,具体取决于您的操作系统版本)

对于通过cron运行的脚本,您通常使用具有完全独立配置的PHP CLI。 CLI通常在自动填充的超全局(即$ _SERVER)中可用的内容方面存在显着差异,并且通常不具有会话的概念或传播会话的能力。 PHP CLI将以任何用户运行它(或在cron中指定)运行。与通过Apache运行目录和文件权限相比,这可能会产生影响。

在某些PHP函数中,两者之间也存在不同的行为,所以很明显,您应该专门针对在CLI中运行来测试代码。

PHP手册中的这个链接解释了一些其他差异:http://www.php.net/manual/en/features.commandline.differences.php