Как заставить 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