【发布时间】:2020-08-31 05:39:34
【问题描述】:
我有一个非常烦人的问题。我在 MacOS Catalina 上有 2 个版本的 PHP,无论我做什么,我似乎都无法摆脱旧的(php 7.3.x)版本。即使我是管理员用户,我也无法更改 Mac 上 /usr/bin/ 中的任何内容。
PHP 的 2 个版本是:
$ /usr/bin/php -v
PHP 7.3.11 (cli) (built: Apr 17 2020 19:14:14) ( NTS )
$ /usr/local/bin/php -v
PHP 7.4.9 (cli) (built: Aug 7 2020 19:23:06) ( NTS )
即使 which php 和 php -v 使用 7.4:
$ which php
/usr/local/bin/php
$ php -v
PHP 7.4.9 (cli) (built: Aug 7 2020 19:23:06) ( NTS )
问题是,当我的 cron 作业运行时,它使用 /usr/bin/php(版本 7.3.x),使我的 cron 作业失败(结果是一些 Laravel 包代码 - 特别是 Mailcoach - 不兼容php 7.3.* 和需要 php v 7.4 或更高版本。
这就是我的 PATH 变量的样子:
$ echo $PATH
/usr/local/bin/php:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:./vendor/bin:/usr/local/sbin:/Users/kunalpunjabi/.composer/vendor/bin:/usr/local/mysql/bin:/usr/local/bin/mysql
如果您以前遇到过这种情况或知道如何解决,请帮忙!
【问题讨论】:
-
您能否检查一下
schedule:runcronjob 的设置,看看它是否设置为使用/usr/local/bin/php而不是/usr/bin/php?就个人而言,我总是使用像 Docker 这样的虚拟机,所以我可以完全控制我的开发环境。如果我的操作系统发生任何变化,我不会遇到依赖关系、版本等问题。 -
@GlennM 和
* * * * * cd /scheduler_crons && /usr/local/bin/php artisan schedule:run可以正常工作,但我需要升级 /usr/bin/php。这就是这个问题的意义......我需要这个 crontab 也可以工作:* * * * * cd /scheduler_crons && php artisan schedule:run,它不是因为 php 版本不正确