Ошибка при обновлении (php-common, php-eaccelerator)

При обновлении вебсервера на операционной системе 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. Я выделю два пути решения проблемы:

  1. Переходим на аналог XCache или APC (Alternative PHP Cache) — об этом, если надо, напишу в отдельном посте
  2. Собираем 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

Остались или есть ещё вопросы? Задавайте!
(не забудьте указать ссылку на этот пост)




3 комментария

  1. Леха Russian Federation Google Chrome Windows :

    При попытке собрать пакет не выполняется команда make, пишет : make: *** No targets specified and no makefile found.  Stop.

    Thumb up 0 Thumb down 0

  2. Леха Russian Federation Google Chrome Windows :

    Прошу прощения, все заработало.

    Thumb up 0 Thumb down 0

  3. terur Russian Federation Mozilla Firefox Linux :

     

     

    При решении проблемы 2 команда yum install php-devel могла завешиться ошибкой, связанной с неактуальной версией у<code>установленныхзависимых пакетов.Попробуйте использовать команду: yum --enablerepo=remi install php-devel

    Thumb up 0 Thumb down 0

Оставить комментарий

Установка, настройка, мониторинг и администрирование linux, unix, windows систем