У меня есть сервер под управлением centos 6, я недавно обновил php на сервере до версии 5.5 и заметил, что некоторые скрипты в структуре laravel, которые я использую, ломаются. я получаю эту ошибку
Parse error: syntax error, unexpected 'yield' (T_YIELD), expecting '(' in /var/www/vhosts/jpischolarship.com/httpdocs/laravel/helpers.php on line 563
Проведя небольшое исследование, я обнаружил, что используемый мной фреймворк имеет метод под названием yield, который теперь является зарезервированным ключевым словом в php 5.5.
Как мне понизить текущую версию php до предыдущей? Я пытался "yum downgrade php
"не повезло. Я получаю следующий результат
Loaded plugins: fastestmirror, priorities
Setting up Downgrade Process
Loading mirror speeds from cached hostfile
epel/metalink | 13 kB 00:00
* base: s2plmirror02.prod.sdl2.secureserver.net
* epel: dl.fedoraproject.org
* extras: s2plmirror02.prod.sdl2.secureserver.net
* updates: s2plmirror02.prod.sdl2.secureserver.net
base | 3.7 kB 00:00
c5-testing | 3.0 kB 00:00
extras | 3.5 kB 00:00
updates | 3.5 kB 00:00
Resolving Dependencies
There are unfinished transactions remaining. You might consider running yum-comp lete-transaction first to finish them.
The program yum-complete-transaction is found in the yum-utils package.
--> Running transaction check
---> Package php.x86_64 0:5.3.3-22.el6 will be a downgrade
--> Processing Dependency: php-common(x86-64) = 5.3.3-22.el6 for package: php-5. 3.3-22.el6.x86_64
--> Processing Dependency: php-cli(x86-64) = 5.3.3-22.el6 for package: php-5.3.3 -22.el6.x86_64
---> Package php.x86_64 0:5.5.0-0.25.beta3.el6.remi will be erased
--> Finished Dependency Resolution
Error: Package: php-5.3.3-22.el6.x86_64 (base)
Requires: php-common(x86-64) = 5.3.3-22.el6
Installed: php-common-5.5.0-0.25.beta3.el6.remi.x86_64 (@remi-test)
php-common(x86-64) = 5.5.0-0.25.beta3.el6.remi
Available: php-common-5.3.3-22.el6.x86_64 (base)
php-common(x86-64) = 5.3.3-22.el6
Error: Package: php-5.3.3-22.el6.x86_64 (base)
Requires: php-cli(x86-64) = 5.3.3-22.el6
Installed: php-cli-5.5.0-0.25.beta3.el6.remi.x86_64 (@remi-test)
php-cli(x86-64) = 5.5.0-0.25.beta3.el6.remi
Available: php-cli-5.3.3-22.el6.x86_64 (base)
php-cli(x86-64) = 5.3.3-22.el6
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest
Другой способ для CentOS с php из атомарного репо. поскольку на атомарном сервере нет старого 5.3, вам нужно другое репо. Я использовал http://webtatic.com.
установить репо:
rpm -Uvh http://mirror.webtatic.com/yum/centos/5/latest.rpm
установить gpg-key:
rpm --import http://repo.webtatic.com/yum/RPM-GPG-KEY-webtatic-andy
редактировать атомное репо:
vi /etc/yum.repos.d/atomic.repo
добавить исключение php для атомарного:
[atomic]
exclude=php,php-common,php-*
редактировать веб-тактическое репо:
vi /etc/yum.repos.d/webtatic.repo
изменить настройки репо:
[webtactic]
enabled=1
теперь понизьте php:
yum downgrade php, php-*
работал у меня.
Вам нужно запустить:
"sudo yum downgrade php php-common php-cli"