2016-11-17 4 views
1

У меня проблема, когда я пытаюсь переключить свой проект с dev enviroment на prod, проект - это репозиторий git, который я нажимаю на свой сервер, теперь мне нужно переключиться на производство, и я пытаюсь запустить php init на сервере, но все время я получаю ту же ошибку:Ошибка инициализации Yii2 на PHP7

Parse error: syntax error, unexpected T_FUNCTION in /my/root/path/init on line 70 

где/мой/корень/путь/есть базовый путь, где я толкаю код.

У кого-то есть идея об этой ошибке?

+0

Показать код по строке 70 – Bizley

+0

К сожалению, это код: 'array_walk ($ skipFiles, function (& $ value) use ($ env, $ root) {$ value =" $ root/$ value ";}); 'как я видел в соответствии с документацией PHP – MarBer

+0

Что такое версия PHP на целевом сервере? – Bizley

ответ

2

Исходя из моего предыдущего ответа и комментариев:

Try

array_walk($skipFiles, function(&$value, $key, $data) { 
    $value = $data[1] . '/' . $value; 
}, [$env, $root]); 

@Marber: Return the same error, a similar solution is function resolveBug($value) { $value = "$root/$value"; } array_walk($skipFiles, resolveBug($value)); and this resolve the bug but the procedure generate anothe error on line 81: Parse error: syntax error, unexpected '['... and the code is $callbacks = ['setCookieValidationKey', 'setWritable', 'setExecutable', 'createSymlink'];

Я предполагаю, что есть PHP 7 на стороне CGI и CLI является PHP < 5.3 и поэтому консольные команды не работают.

Проверьте консоль PHP версии, запустив

php -v 

в консоли.

+0

Вернуть ту же ошибку, аналогичное решение - 'function resolveBug ($ value) {' '$ value =" $ root/$ value ";' '}' 'array_walk ($ skipFiles, resolveBug ($ value)); и это устраняет ошибку, но процедура генерирует ошибку anothe в строке 81: «Ошибка синтаксиса: ошибка синтаксиса, неожиданность» ['... 'и код' $ callbacks = [' setCookieValidationKey ',' setWritable ',' setExecutable ',' createSymlink ']; ' – MarBer

+0

@MarBer Я обновил свой ответ – Bizley

+0

Спасибо за ответ, теперь я знаю проблему, я создаю на сервере приложение с CGI PHP 7.0, но когда я запускаю' php init' Я думаю, что выполнение обрабатывается php 5.2.17, версия, возвращаемая 'php -v'. Спасибо за поддержку! – MarBer

Смежные вопросы