отредактированный
Как я уже догадался, это проблема версии 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
работа, но я бы хотел этого избежать.
Вероятно, проблема вызвана запуском скрипта в неправильном рабочем каталоге, попробуйте изменить команду crontab на:
cd path/to/script/directory && php script.php
Хорошо … кажется, что это так легко, что мне немного стыдно.
изменил команду:
/ USR / местные / бен / PHP
за
/ USR / местные / php54 / bin / PHP
Это для моего сервера мечты, но может быть аналогичным на других общих серверах.
Спасибо за ответ.