При обновлении вебсервера на операционной системе CentOS возникла ошибка, уже писали о ней в комментариях к статье «Установка web-сервера (Nginx+php-fpm+MySQL) на CentOS»
В системе ядро:
[root@CentOS-62-64-minimal ~]# uname -a Linux CentOS-62-64-minimal 2.6.32-279.5.2.el6.x86_64 #1 SMP Fri Aug 24 01:07:11 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux
версия:
[root@CentOS-62-64-minimal ~]# cat /etc/redhat-release CentOS release 6.3 (Final)
репозитории:
[root@CentOS-62-64-minimal ~]# yum repolist Loaded plugins: fastestmirror, priorities Loading mirror speeds from cached hostfile * base: centos.mirror.linuxwerk.com * epel: mirror.kiewel-online.ch * extras: centos.mirror.linuxwerk.com * remi: fr2.rpmfind.net * updates: centos.mirror.linuxwerk.com 199 packages excluded due to repository priority protections repo id repo name status base CentOS-6 - Base 6,222+124 cr CentOS-6 - CR 0 epel Extra Packages for Enterprise Linux 6 - x86_64 8,301 extras CentOS-6 - Extras 10+7 nginx nginx repo 33 remi Les RPM de remi pour Enterprise Linux 6 - x86_64 897 updates CentOS-6 - Updates 1,002+68 repolist: 16,465 [root@CentOS-62-64-minimal ~]#
При установке, обновлении появляется ошибка:
Error: Package: 1:php-eaccelerator-0.9.6.1-17.el6.remi.x86_64 (@remi) Requires: php-common(x86-64) = 5.3.16 Removing: php-common-5.3.16-3.el6.remi.x86_64 (@remi) php-common(x86-64) = 5.3.16-3.el6.remi Updated By: php-common-5.4.10-1.el6.remi.x86_64 (remi) php-common(x86-64) = 5.4.10-1.el6.remi Available: php-common-5.4.9-1.el6.remi.x86_64 (remi) php-common(x86-64) = 5.4.9-1.el6.remi You could try using --skip-broken to work around the problem You could try running: rpm -Va --nofiles --nodigest
получается, что eaccelerator-0.9.6.1 не поддерживает PHP 5.4
Решение проблемы php-common, php-eaccelerator
У меня сложилось такое ощущение, что проект eAccelerator умер и его больше никто не поддерживает. Правда в интернете пишут, что с июля 2012 проектом занимается Hans Rackers на GitHub. Я выделю два пути решения проблемы:
- Переходим на аналог XCache или APC (Alternative PHP Cache) — об этом, если надо, напишу в отдельном посте
- Собираем eaccelerator из исходников — на этом варианте и остановимся
Сперва удаляем пакет php-eaccelerator
yum erase php-eaccelerator -y
Обновляемся
yum update
переходим на сайт eaccelerator.net или GitHub, скачиваем исходники последней версии и собираем
cd /tmp wget -O eaccelerator.tar.gz https://nodeload.github.com/eaccelerator/eaccelerator/legacy.tar.gz/master tar -xzf eaccelerator.tar.gz cd eacc* phpize ./configure make && make install
Теперь необходимо добавить eAccelerator чтобы он подгружался, но для начала проверим не сохранилась ли запись с прошлого пакета
cat /etc/php.ini | grep eAccelerator
как видим пусто
проверяем в /etc/php.d/ есть ли файл настроек eaccelerator.ini
ls /etc/php.d/ | grep eaccelerator.ini
тоже пусто
добавляем конфигурационный файл eaccelerator.ini:
vi /etc/php.d/eaccelerator.ini
содержимое файла
extension="eaccelerator.so" eaccelerator.shm_size="16" eaccelerator.cache_dir="/tmp/eaccelerator" eaccelerator.enable="1" eaccelerator.optimizer="1" eaccelerator.check_mtime="1" eaccelerator.debug="0" eaccelerator.filter="" eaccelerator.shm_ttl="0" eaccelerator.shm_prune_period="0" eaccelerator.shm_only="0"
Создаем директорию для хранения файлов eAccelerator:
mkdir /tmp/eaccelerator chmod 0777 /tmp/eaccelerator
Проверяем
php -v
все !
Возможные ошибки при сборке исходников
1. При запуске ./configure появляется ошибка
-bash: ./configure: No such file or directory
phpize
2. При выполнении команды phpize возникает ошибка:
Can’t find PHP headers in /usr/include/php
The php-devel package is required for use of this command.
решение:
yum install php-devel
3. При попытки собрать пакет не выполняется команда make
-bash: make: command not found
yum install php-devel make gcc gcc-c++ -y
теперь точно ВСЁ !!!
Ссылка для вкуривания: https://github.com/eaccelerator/eaccelerator
При попытке собрать пакет не выполняется команда make, пишет : make: *** No targets specified and no makefile found. Stop.
Прошу прощения, все заработало.
При решении проблемы 2 команда
yum install php-devel
могла завешиться ошибкой, связанной с неактуальной версией у
установленных
зависимых пакетов.Попробуйте использовать команду:
yum --enablerepo=remi install php-devel