我在网站上有很多进程,我现在发现我需要每天午夜运行。我正在尝试使用cron作业来设置它,但我很困惑这是如何工作的。
问题是: php进程如何运行到网站上正常运行方式有什么不同?是否有需要满足的格式,或者在一种情况下可以/不能在另一种情况下运行的代码?这与我正在处理的特定代码无关。这是我还没写的工作,但我似乎找不到这个问题的答案。
答案 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