Недавно я вовсю пользовался eAccelerator, но как оказалось у него проблемы с Joomla 3, а проще говоря, в некоторых случаях его использование вместе с Joomla 3 приводит к 500 ошибке. Я стал искать альтернативу кэшированию на сервере, так как некоторые сайты моих клиентов были именно на третьей джумле. Просмотрев информацию в википедии, я остановился на Zend OPcache, так как он по выполняемому функционалу близок к eAccelerator.
Кроме этого, на сервер уставлен APC для кэша пользовательских данных. Совместно они работают очень даже неплохо.
Сейчас я хочу вам рассказать, как установить «опкеш» на Debian 7 и Centos 6
Как мы понимаем, мы имеем уже настроенный сервер с php, MySQL и apache хотя бы. Если не имеем, можем заказать у меня по небольшим ценам.
Для работы с сервером воспользуемся программами WinSCP и PuTTY.
Начнем мы с Дебиан, который мне понравился уже шикарным стандартными репозиторием.
Перейдем во временную папку cd /tmp
Поставим пакеты разработчика apt-get install build-essential php5-dev
Чтобы установить именно последнюю версию кэша используем wget http://pecl.php.net/get/ZendOpcache
Для того чтобы разархивировать файл используем tar xvfz ZendOpcache
Теперь переходим в разархивированную папку
— (тут ваша версия расширения, имя папки с ней совпадает, то есть просто посмотрите, какая папка была разархивирована)cd /tmp/zendopcache-7.0.3
Теперь устанавливаем Zend OPcache командами:
phpize
./configure
make
make install
Спасибо разработчикам, что побеспокоились об удобстве установки для нас. После make можно протестировать установку make test, чтобы узнать возможные проблемы с эти расширением на вашем сервере.
Теперь добавим Zend OPcache в загрузку и настроим некоторые параметры.
Сперва выполним
find / -name opcache.so
У Debian 7 он тут /usr/lib/php5/20100525/opcache.so
В zend_extension надо писать этот путь.
Создаем в блокноте файл opcache.ini и пишем в нем:
zend_extension=/usr/lib/php5/20100525/opcache.so
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=8000
opcache.revalidate_freq=0
opcache.fast_shutdown=1
opcache.enable_cli=1
Сохраняем этот файлик и загружаем его в
/etc/php5/conf.d.
Идем в /etc и правим sysctl.conf, добавляя в него kernel.shmmax = 134217728 (для 128мб памяти выделяемых системой для кэша, вариации количества памяти зависят от памяти вашего сервера) и применяем командой sysctl —p.
Перезапускаем apache
или сервер /etc/init.d/apache2 restart
reboot
Вводим php —v и видим что-то такое:
PHP X.X.X (built: дата сборки)
Copyright (c) 1997-201X The PHP Group
Zend Engine vX.X.X, Copyright (c) 1998-201X Zend Technologies
with Zend OPcache vX.X.X, Copyright (c) 1999-201X, by Zend Technologies
Если есть строчка с Zend OPcache, то вы поставили его на Debian.
Теперь поговорим про Centos. Для Centos 6 процедура установки выглядит так:
В первую очередь перейдем в папку временную папку cd /tmp и поставим те же пакеты разработки yum install php—devel gcc для php 5.3 и yum —enablerepo=remi,remi—php54 install php—devel gcc для php 5.4.
После этого мы скачаем wget http://pecl.php.net/get/ZendOpcache и распакуем tar xvfz ZendOpcache и перейдем в распакованную папку cd /tmp/zendopcache—7.0.3
Установка выглядит так:
phpize
./configure
make
make install
после установки грузим наш файлик opcache.ini в /etc/php.d, ну а путь к запускаемому расширению должен выглядеть так /usr/lib64/php/modules/opcache.so для Centos 6 x64 или мы можем его найти командой find / —name opcache.so, то есть сам файл настроек выглядит примерно так:
zend_extension=/usr/lib64/php/modules/opcache.so
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=8000
opcache.revalidate_freq=0
opcache.fast_shutdown=1
opcache.enable_cli=1
О значениях параметров я писал выше в части про Debian.
Не забываем править в /etc файл sysctl.conf вставив в него в конец kernel.shmmax = 134217728 (для 128мб памяти) и применить sysctl —p или для OpenVZ sysctl —e —p (в общем, если выбило ошибки).
Перезапускаем apache для Centos service httpd restart или перезагружаем сервер reboot.
Командой php —v убеждаемся, что все работает, она должна вывести примерно то же, что и в Debian.
В php 5.5 Zend OPcache включен по умолчанию.
Спасибо!!!!!!!!!!!!! все четко встало!!!