Как я могу заставить версию PHP для командной строки? - PullRequest
12 голосов
/ 14 октября 2011

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

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

Так что в настоящее время я не могу настроить задания cron для запуска моего кода как php5. Есть идеи?

Ответы [ 6 ]

18 голосов
/ 03 марта 2016

В соответствии с 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)

11 голосов
/ 14 октября 2011

Если оба установлены, все, что вам нужно сделать, это запустить скрипт, используя соответствующий бинарный файл 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"

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

4 голосов
/ 14 октября 2011

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

$ script.php

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

#!/usr/bin/php
<?php

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

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

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

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

1 голос
/ 04 апреля 2015

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

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

1 голос
/ 14 октября 2011

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

0 голосов
/ 19 февраля 2012

Я, наконец, получил это работает.Проблема была в несколько раз.

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

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

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

...