【问题标题】:Cronjob causing 500 internal server errorCronjob 导致 500 内部服务器错误
【发布时间】:2014-11-02 21:40:44
【问题描述】:

我正在我的服务器上运行 CMS 的演示。在此演示中,潜在客户可以试用 CMS 的后端。这就是为什么我创建了一个 php 脚本来删除整个 CMS 文件夹并将备份复制回其中。这样,每次运行脚本时,演示站点都会重新加载。

不过,我正在弄清楚如何通过 cron 作业来做到这一点。 我使用的命令如下(我运行的是 CentOS)。

0 * * * * php /home/USER/public_html/replaceCMS.php

这会替换文件夹中的所有文件,但也会导致 500 内部服务器错误。 当我使用浏览器运行脚本时,问题没有出现。

我还尝试将带有覆盖的 .zip 解压缩到演示文件夹中。使用 cPanel 的文件管理器执行此操作,一切顺利。使用 unzip -o 命令执行此操作会导致相同的错误。

你们有谁知道怎么来的吗?

【问题讨论】:

  • 您是否以有权访问 /home/USER 文件夹的用户身份运行 cron 作业?你也确定命令行 php 工作正常吗?
  • 我正在以 root 用户身份运行 cronjob。命令行 php 正在运行。

标签: php cron internal-server-error


【解决方案1】:

当作业以 root 用户身份运行时,文件可能会归 root 所有,这与您的 Web 服务器不是同一个用户。因此,当您通过浏览器调用脚本时,它会在网络服务器的用户上下文中运行,而不是以 root 身份运行。

您可以通过在命令行上运行 ls -l 来验证这一点,并查看当您使用 cronjob 运行它与使用浏览器访问页面时的所有者是什么。

【讨论】:

    猜你喜欢
    • 2013-08-11
    • 2012-03-29
    • 2014-04-14
    • 1970-01-01
    • 1970-01-01
    • 2015-11-23
    • 2011-01-22
    • 1970-01-01
    • 2011-12-23
    相关资源
    最近更新 更多