使用命令行linux运行PHP代码时出错

cxfofazt  于 2023-02-03  发布在  PHP
关注(0)|答案(2)|浏览(162)

我的系统是:Ubuntu 20.04 PHP 7.4开发工具
我有一个php文件,在/var/www/www.example.com路径中包含以下内容:hamrah.com/create.php path :

<?php
$output = shell_exec('bash flutter create test');
echo "<pre>$output</pre>";

我在终端和中运行此命令并且此命令正确执行(为我创建flutter项目)

cd /var/www/hamrah.com && php /var/www/hamrah.com/create.php

但是!
但是,当我将此命令放入Crontab时,命令无法正确执行,并给出错误
在Crontab中:

* * * * * cd /var/www/hamrah.com && php /var/www/hamrah.com/create.php

注意:如果我在php文件中放入shell_exec(' bash ls')而不是shell_exec('bash flutter creat test'),它将运行良好,并且一些命令(如flutter create命令)将不会执行。

    • 错误:**bash:flutter:没有这样的文件或目录
bqjvbblv

bqjvbblv1#

你可以测试

<?php
$output = shell_exec('bash /opt/flutter/bin/flutter create test');
echo "<pre>$output</pre>";
mwg9r5ms

mwg9r5ms2#

Cron不读取用户的环境变量,PATH的默认值为/usr/bin:/bin,通常你的flutter SDK不会位于这两个文件夹中,所以你需要明确指定flutter SDK的位置,将这一行添加到crontab中。

PATH=/usr/bin:/bin:/path-to-flutter-sdk-bin

如果你不知道flutter在哪里,使用下面的命令。

which flutter

相关问题