#php #laravel
#php #laravel
Вопрос:
У меня очень раздражающая проблема. У меня есть 2 версии PHP на macOS Catalina, и что бы я ни делал, я, похоже, не могу избавиться от старой версии (php 7.3.x). Я не могу ничего изменить в / usr / bin / на моем Mac, хотя я пользователь с правами администратора.
2 версии PHP являются:
$ /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 версии 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
Если вы сталкивались с этим раньше или знаете, как это исправить, пожалуйста, помогите!
Комментарии:
1. Не могли бы вы, пожалуйста, проверить свои настройки для
schedule:run
cronjob и посмотреть, настроен ли он на использование/usr/local/bin/php
вместо/usr/bin/php
? Лично я всегда использую виртуальную машину, такую как Docker, поэтому у меня есть полный контроль над моей средой разработки. Если что-то в моей ОС изменится, у меня не будет проблем с зависимостями, версиями и т.д.2. @GlennM с
* * * * * cd /scheduler_crons amp;amp; /usr/local/bin/php artisan schedule:run
это работает нормально, но мне нужно обновить / usr / bin / php. вот о чем этот вопрос….. Мне нужно, чтобы этот crontab также работал:* * * * * cd /scheduler_crons amp;amp; php artisan schedule:run
, чего он не делает из-за неправильной версии php
Ответ №1:
Вы установили их через homebrew?
Если это так, попробуйте связать php7.4
Сначала посмотрите, какой php работает в данный момент.
brew services list
Затем остановитесь и отключите эту версию с
brew services stop {PHP}
brew unlink {PHP}
Затем свяжите правильную версию
brew link --force --overwrite php@7.4
brew services start php@7.4
Не могли бы вы попробовать это?
Если это не работает, не могли бы вы загрузить скриншот вашего «списка служб brew»
Комментарии:
1. Я только что попробовал эти шаги, и это не помогло. Проблема не в основной версии php, установленной с brew, которая всегда показывала 7.4.9. Проблема в том, что версия, используемая cron, — это / usr / bin / php, которая является версией 7.3 — это версия, от которой мне нужно избавиться. Также смотрите:
$ brew services list Name Status User Plist mysql started kp123 /Users/kp123/Library/LaunchAgents/homebrew.mxcl.mysql.plist php started kp123 /Users/kp123/Library/LaunchAgents/homebrew.mxcl.php.plist