Main > Linux | PHP | Yii > ISPmanager PHP7 для скриптов запускаемых через крон

ISPmanager PHP7 для скриптов запускаемых через крон

28.06.2017 0 comments » Views: 3,785

ISPManager 5

Столкнулся со следующей проблемой: Использовал для нового проекта PHP7. Продакшн управляется последней версией ISPmanager, где по-умолчанию все еще используется старый PHP 5.4.16, а 7 версия выбирается при настройке домена. Т.к. для домена версия php настраивается при создании, то и "фронтенд" работает без проблем, однако проблема начинается при запуске консольных скриптов, т.к. по-умолчанию, в консоли, используется 5.4 ..

Итак, предположим, что домен создан с такой конфигурацией

Выбор версии php в ISPManager

Выбор версии php в ISPManager

Однако, если вы авторизуетесь по ssh и посмотрите версию php, то всего скорее увидите следующее:

Как видите используется php версии 5.4, поэтому скрипты с кодом использующим нововведения php 7, не будут работать.

Исправить, это можно так:

  • Идем в папку с версией php и смотрим где он расположен:

    В моем случае это #!/opt/php70/bin/php-cgi
  • Создаем скрипт для запуска php этой версии, php7.sh:

    Опцией -c указываем где искать файл php.ini
  • Делаем скрипт исполняемым:
  • Проверяем:

    Результат:

Теперь в кроне, достаточно указать наш баш скрипт, чтобы использовать php 7, примерно так:

С этим понятно, теперь давайте модифицируем скрипт так, чтобы запускать не php, а yii. Создаем ./yii.sh, там же где лежит файл ./yii с таким содержимым:

Добавляем ему права на запуск

Теперь, можем в кроне, выполнять консольные команды через php7, практически с тем же синтаксисом:

 

 

Author: | Rating: 4/5 | Tags:

Leave a Reply

Your email address will not be published. Required fields are marked *

Allowed HTML-tags: <a>, <code>, <i>, <em>, <strong>, <b>, <u>, <strike>