当前位置: 首页 > 知识库问答 >
问题:

amh不支持php -q命令时如何运行cron任务?

怀浩大
2024-05-13

不支持php -q命令
php版本是7.4,安装whmcs需要设置corn

php -q /home/wwwroot/lnmp01/domain/xxx/web/crons/cron.php

实际命令;

amh amcrontab run_php lnmp01 php-7.4 /home/wwwroot/lnmp01/domain/xxx/web/crons/cron.php

报错如下:
[Error] -q is not exist.(PF404)

amh不支持php -q命令,如何解决这个问题?

共有2个答案

谭景明
2024-05-13

面板上操作考虑安全,是只能添加amh的命令,其它命令可以用面板上的执行sh方式也可以。
上面报错-q这个参数错误,要删除-q,正常按面板上提示使用amh命令是没有-q字符的。

吕英才
2024-05-13

在 amh(通常指的是 AMH Panel,一个用于管理 Web 服务器的面板软件)中,如果你发现它不支持 php -q 这样的命令,那么你需要按照 AMH Panel 的文档和命令规范来执行 PHP 脚本。

你提到的命令 amh amcrontab run_php lnmp01 php-7.4 /home/wwwroot/lnmp01/domain/xxx/web/crons/cron.php 看起来是 AMH Panel 特有的方式来设置 cron 任务来运行 PHP 脚本。既然你收到错误信息 [Error] -q is not exist.(PF404),那么你应该移除 -q 选项,因为 AMH Panel 显然不识别这个选项。

在 AMH Panel 中设置 cron 任务来运行 PHP 脚本的正确方式通常是:

amh amcrontab add <任务名> <分钟> <小时> <日> <月> <周> <命令>

其中 <命令> 是用来运行你的 PHP 脚本的。对于 PHP 7.4,你的命令可能看起来像这样:

amh amcrontab add mycronjob 0 * * * * /usr/local/php74/bin/php /home/wwwroot/lnmp01/domain/xxx/web/crons/cron.php

在这个命令中:

  • mycronjob 是你给这个 cron 任务起的名字。
  • 0 * * * * 是 cron 表达式,它表示这个任务将在每小时的第 0 分钟运行。
  • /usr/local/php74/bin/php 是 PHP 7.4 的可执行文件路径,你需要替换成你服务器上 PHP 7.4 的实际路径。
  • /home/wwwroot/lnmp01/domain/xxx/web/crons/cron.php 是你想要运行的 PHP 脚本的路径。

请确保 PHP 的路径是正确的,并且这个路径上的 PHP 版本是你想要运行的版本(在这个例子中是 PHP 7.4)。

一旦你运行了 amh amcrontab add 命令来添加你的 cron 任务,AMH Panel 将会为你管理这个任务的定时执行。你不需要(也不应该)尝试使用 php -q 这样的命令,因为这不是 AMH Panel 支持的语法。

如果你不确定 PHP 的确切路径,你可以使用 whereis php7.4find / -name php7.4 这样的命令来查找它。同时,请确保你的 PHP 脚本 cron.php 有适当的执行权限,这样 cron 任务才能成功运行它。

 类似资料:
  • 但当我在命令行上运行该命令时,它会抛出以下错误: 我可以成功地运行其他的adb命令,我不知道aapt命令有什么问题。另外,我正在Windows7环境下进行开发。

  • 我正在使用以下代码片段创建一个chrome浏览器- 我在使用Chrome运行测试时遇到了一个错误。该错误显示在启动浏览器的地址栏下方: 您正在使用不受支持的命令行标志--忽略证书错误。稳定和安全将受到影响。 有没有简单的方法让这个消息消失?理想情况下,我想用ruby代码本身来做。

  • 我有一个结构如下的项目: Maven-as-submodule-只是一个分级项目;graph-gen是gradle项目中的Maven模块(不是子模块) 我的目标是从gradle任务运行command:。所以我写了一些: null 任务runMvnInterfaceGenerator(类型:Exec){dependsOn“copy graphstoGenerator”workingDir“./gra

  • 在我的项目中,我有几个任务在我的建筑。我希望这些任务在运行时是独立的。我需要从命令行运行一个任务。但是命令“gradle taskA”将同时运行taskA和taskB,这是我不想要的。如何阻止正在运行的任务?。 这是我正在做的一个例子。

  • Electron支持的命令行开关. 您可以在app 模块的ready事件生效之前,使用app.commandLine.appendSwitch将它们附加到您的应用程序的主要脚本中: const { app } = require('electron') app.commandLine.appendSwitch('remote-debugging-port', '8315') app.command

  • 问题内容: 想要通过ExecutorService的 invokeAll(..)方法运行可运行任务的集合。但这目前尚不支持( 仅支持Callable任务的集合 ) 有什么具体原因吗?做类似事情的替代方法是什么。 问题答案: 只需将可运行对象转换为可调用对象: