【问题标题】:How to set cron job for php script in ubuntu如何在ubuntu中为php脚本设置cron作业
【发布时间】:2016-10-21 15:45:11
【问题描述】:

我想在我的 ubuntu 机器中每 2 分钟为 php 脚本设置一个 cronjob,为此我找到了以下链接以供参考,但我收到以下错误,我不知道如何解决此错误。

设置 cronjob 的参考链接

https://askubuntu.com/questions/177971/how-can-i-set-up-a-php-script-to-run-via-cron

第一个错误: 当我使用命令行运行 php 脚本时出现此错误 致命错误:在第 2 行的 /opt/lampp/htdocs/ezypayzy/cronjob.php 中调用未定义的函数 mysql_connect()。但是当我在浏览器上运行此脚本时,它工作正常。我不知道如何解决这个问题。

php 脚本命令:php /opt/lampp/htdocs/ezypayzy/cronjob.php

第二个错误: 当我在终端上运行 cronjob 命令时,它会显示此错误

bash: */2: No such file or directory

Cronjob 命令:*/2 * * * * /usr/local/bin/php /opt/lampp/htdocs/ezypayzy/cronjob.php

【问题讨论】:

  • */2 * * * * 仅用于 crontab。您可以从命令行运行:/usr/local/bin/php /opt/lampp/htdocs/ezypayzy/cronjob.php
  • 至于第一个错误,好像你没有安装php mysql 模块。 help.ubuntu.com/community/ApacheMySQLPHP
  • 对于第一个错误,当我在浏览器上点击 php 脚本时,它给了我正确的输出,没有收到任何错误,但在 cammand 上,它只给出 mysql 错误,当我运行此命令 /usr/local 时出现第二个错误/bin/php /opt/lampp/htdocs/ezypayzy/cronjob.php 它给了我这个错误bash:/usr/local/bin/php:没有这样的文件或目录。
  • 然后你的 php 安装在其他地方。尝试输入which php 以找出位置。然后将 /usr/local/bin/php 替换为该命令告诉您的内容。

标签: php linux bash ubuntu cron


【解决方案1】:

如果您正在执行相同的文件并通过 shell 和浏览器获得不同的输出,则很可能您安装了不同版本的 PHP。这就是为什么你得到undefined function mysql_connect() 的原因,因为你引用php 5.5.0+ 来运行你的cronjob。

解决方法是先检查php的安装位置。

$ whereis php

然后尝试使用php -v/usr/local/bin/php -v检查版本

如果一切正常,并且您有php 5.5.0 或更高版本,您可以简单地删除mysql_ 函数并改用mysqli/PDO。

最后,你的路径应该是这样的。

*/2 * * * * /usr/local/bin/php  /path/to/cronjob.php

【讨论】:

  • 嗨,运行此命令后 php -v 它在命令行上显示此类警告 PHP 警告:PHP 启动:无法加载动态库 '/usr/lib/php5/20121212/msql.so ' 而我的 php 版本是 PHP 5.5.9
  • 另一个呢? /usr/local/bin/php -v?无论如何,您的问题是,自5.5.0 以来,mysql 已被弃用,因此您没有mysql,并且无法安装它。您唯一的选择是使用mysqli 或PDO。因此,无论您在cronjob.php 中拥有什么,都应该将其更改为使用 mysql 以外的其他内容。或者简而言之,删除那里的所有mysql_* 函数。
  • 首先在我的机器 /usr/bin/php -v 这个命令运行成功然后我从 cronjob.php 中删除了所有 mysql 函数但是之后当我尝试运行 php脚本 php /opt/lampp/htdocs/ezypayzy/cronjob.php 它给出了这个错误 致命错误:第 8 行的 /opt/lampp/htdocs/ezypayzy/cronjob.php 中找不到类 'mysqli'
  • 当然你会得到那个错误。 php里面的所有东西都是扩展,甚至会话都是默认启用的扩展,所以你需要安装或启用mysqli。你最初是如何安装 php 的?你使用 remicollet、webtatic 还是从源代码编译?
最近更新 更多