在 Ubuntu 18.04 crontab 中执行 PHP
Execute PHP in Ubuntu 18.04 crontab
我无法在 crontab
中执行 PHP 脚本
Ubuntu 18.04
PHP 7.3
数字海洋上的 Nginx 网络服务器
编辑:
sudo nano /etc/crontab
sudo /etc/init.d/cron restart
我已尝试使用 root 作为用户进行以下组合和其他变体,但无法将 php 脚本获取到 运行
* * * * * /usr/bin/php /home/forge/laravel/public/cron/account_balances.php
* * * * * php /home/forge/laravel/public/cron/account_balances.php
* * * * * forge /usr/bin/php /home/forge/laravel/public/cron/account_balances.php >> /dev/null 2>&1
* * * * * forge php /home/forge/laravel/public/cron/account_balances.php >> /dev/null 2>&1
* * * * * sudo -u www-data php /home/forge/laravel/public/cron/account_balances.php >> /dev/null 2>&1
脚本 运行 在浏览器中运行良好并更新了 mysql 数据库中的一些行,所以我知道 cron 是否正在执行它。我检查了日志,没有看到任何错误:
sudo cat /var/log/syslog | grep cron
我在某处读到这可能是一个权限问题 运行因为我使用的是 Nginx,所以正在执行 cron?
发现问题。
首先,我从命令行执行的 php 脚本没有正确的权限。由 运行
修复
find * -type d -print0 | xargs -0 chmod 0755 # for directories
find . -type f -print0 | xargs -0 chmod 0644 # for files
其次,我的 php 文件中有一个 require_once 路径错误。该脚本在浏览器中运行良好,但无法通过命令行运行。
更改自:
require_once ("../libs/php_sdk/config.php");
收件人:
require_once (__DIR__ . "/../libs/php_sdk/config.php");
我无法在 crontab
中执行 PHP 脚本Ubuntu 18.04
PHP 7.3
数字海洋上的 Nginx 网络服务器
编辑:
sudo nano /etc/crontab
sudo /etc/init.d/cron restart
我已尝试使用 root 作为用户进行以下组合和其他变体,但无法将 php 脚本获取到 运行
* * * * * /usr/bin/php /home/forge/laravel/public/cron/account_balances.php
* * * * * php /home/forge/laravel/public/cron/account_balances.php
* * * * * forge /usr/bin/php /home/forge/laravel/public/cron/account_balances.php >> /dev/null 2>&1
* * * * * forge php /home/forge/laravel/public/cron/account_balances.php >> /dev/null 2>&1
* * * * * sudo -u www-data php /home/forge/laravel/public/cron/account_balances.php >> /dev/null 2>&1
脚本 运行 在浏览器中运行良好并更新了 mysql 数据库中的一些行,所以我知道 cron 是否正在执行它。我检查了日志,没有看到任何错误:
sudo cat /var/log/syslog | grep cron
我在某处读到这可能是一个权限问题 运行因为我使用的是 Nginx,所以正在执行 cron?
发现问题。
首先,我从命令行执行的 php 脚本没有正确的权限。由 运行
修复find * -type d -print0 | xargs -0 chmod 0755 # for directories
find . -type f -print0 | xargs -0 chmod 0644 # for files
其次,我的 php 文件中有一个 require_once 路径错误。该脚本在浏览器中运行良好,但无法通过命令行运行。
更改自:
require_once ("../libs/php_sdk/config.php");
收件人:
require_once (__DIR__ . "/../libs/php_sdk/config.php");