Как заставить PHP-версию для командной строки?

Я размещен с 1and1.com, и у меня есть настройки для обработки файлов с помощью php5 с помощью .htaccess.

Но это работает только в apache, а не в командной строке, которая по умолчанию соответствует серверу php4 по умолчанию.

В настоящее время я не могу настроить задания cron для запуска моего кода как php5. Любые идеи?

Ответ 1

Если оба установлены, все, что вам нужно сделать, это запустить script, используя соответствующий PHP файл.

Итак, например:

 // Runs using the PHP binary located at /usr/bin/php
 * * * * * root /usr/bin/php -n "/path/to/script.php"

или

 // Runs using the PHP binary located at /var/php5
 * * * * * root /var/php5 -n "/path/to/script.php"

Все, что вам нужно знать, это полный путь к файловой системе для двоичных файлов CLI PHP и вызов соответствующего кода для запуска вашего кода.

Ответ 2

В соответствии с https://community.1and1.com/using-php-composer-at-1and1/ создайте .profile в своем корневом проекте и добавьте строку:

alias php='/usr/bin/php5.5-cli'

Меня устраивает. Выйдите из системы и снова войдите в систему SSH и выполните:

php -v

Результат:

PHP 5.5.32 (cli) (построено: 15 февраля 2016 16:13:44)

Ответ 3

Если вы можете выполнять скрипты PHP непосредственно в оболочке, например:

$ script.php

вы можете указать двоичный файл, который будет выполнять script в первой строке:

#!/usr/bin/php
<?php

Эта строка называется shebang. Строка может отличаться в вашей системе, вам нужно знать полный путь к файловой системе двоичного кода PHP CLI, который вы хотите использовать для этого script.

Если вы запустите этот файл в оболочке, будет использоваться указанный двоичный код. То же самое для cron.

Если вы выполните этот файл через ваш веб-сервер, PHP будет отключать эту строку молча.

Смотрите также: Особенности: Использование PHP из командной строки

Ответ 4

должно быть два каталога PHP, и один из них должен быть по умолчанию. попробуйте найти путь php5 от корня вашего сервера и использовать полный путь при выполнении задания cron.

Ответ 5

Это еще один подход к принудительному использованию PHP из командной строки на 1 и 1.

Войдите в систему с помощью ssh на своем сервере и создайте новый файл с именем .profile там вы напишете следующую строку alias php='/usr/local/bin/php5' Войдите в систему с помощью ssh и проверьте версию php с помощью php -v, вы должны увидеть версия теперь 5.

Ответ 6

Наконец-то я получил эту работу. Проблема была несколько раз.

Во-первых, используемый PHP был в /etc/bin вместо версии MAMP. Я смог изменить это и использовать версию MAMP.

Во-вторых, чтобы использовать php через CLI, вы должны обязательно использовать полный путь к php, а не только сам php. То есть используйте /MAMP/bin/php/php 5.3.x/php в вызове exec(). Сейчас это работает для меня.

Вы можете проверить мой GIST здесь... https://gist.github.com/1861487