Ошибка синтаксиса PHP в файле при вызове из Cron Tab

отредактированный

Как я уже догадался, это проблема версии php:

Из командной строки:

php -v
...
PHP 5.2.17 (cli) (built: Mar  1 2012 16:36:14)
Copyright (c) 1997-2010 The PHP Group
...

phpinfo на веб-странице:

Версия PHP 5.4.20

Насколько я знаю, я не смогу изменить конфигурацию версии командной строки, как это происходит на общем сервере (Dreamhost, если он помогает кому-то лучше реагировать).

Мне действительно нужно использовать мои php 5.3 зависимые библиотеки, репликация некоторых процессов с нуля заняла бы у меня много дней работы, и я должен разработать это за 2 недели.

Кто-нибудь знает какой-нибудь трюк для запуска более высокой версии php, чем определено для командной строки?

У меня проблема с Cron Job.

В моем проекте почти каждая страница содержит файл, содержащий
следующие строки кода:

....
$called_class = get_called_class();
$this->error_code = 0;
$this->error_string = "";

if ( is_array($parametros) || is_object($parametros) ){
foreach ( $parametros as $key => $value ) {
if (!$called_class::isValidKey ( $key ) && !$called_class::isExternalKey( $key ) )
continue;
$this->$key = $value;
}
}
...

И никогда не показывал мне ошибок.

Но когда я настроил Cron Job для запуска скрипта, включающего тот же файл,
он отправляет мне следующее сообщение на мою электронную почту:

Ошибка разбора: синтаксическая ошибка, неожиданный T_PAAMAYIM_NEKUDOTAYIM в
/xxx/xxx/xxx/modelo.php в строке 22

Что относится к этой строке:

if (!$called_class::isValidKey ( $key ) && !$called_class::isExternalKey( $key ) )

Я предполагаю, что версия php, используемая в командной строке, отличается от
один из сервисов, который показывает страницу, или что там еще
называется.

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

0

Решение

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

cd path/to/script/directory && php script.php
1

Другие решения

Хорошо … кажется, что это так легко, что мне немного стыдно.

изменил команду:

/ USR / местные / бен / PHP

за

/ USR / местные / php54 / bin / PHP

Это для моего сервера мечты, но может быть аналогичным на других общих серверах.
Спасибо за ответ.

1

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector