- Как установить акселлератор APC на CentOS?
- Install APC (Alternative PHP Cache) in CentOS 5/6/7 and Fedora 20/21
- 1. Install Dependency Packages for APC
- 2. Install APC using PECL (PHP Extension Community Library)
- 2a. [Alternative]
- 3. Enable APC PHP Extension
- 4. Restart Apache Service for APC
- 5. Verify APC Installation
- 6. Enable PHP APC administration
- APC в PHP: Понятие, установка, использование APC
- Сегодня мы узнаем
- Что такое акселератор APC?
- Установка APC
- wget http://rpm.scwlab.com/el/php/yum.conf -O /etc/yum.repos.d/stalwart.repo
- yum install php-pecl-apc
- apt-get install apache2-threaded-dev php5-dev php5-pear make gcc g++
- pecl install apc
- Использование APC в PHP
- Заключение
- How To Tutorials
- How to install APC in centos for PHP better performance ( opcode)
- APC for PHP better performance:
- Installing APC:
- Configuring APC:
- Restart httpd server:
Как установить акселлератор APC на CentOS?
Более или менее крупные проекты содержат объемный PHP код, выполнение которого занимает заметное время. При этом одни и те же алгоритмы выполняются множественно, что с точки зрения использования аппаратных ресурсов выглядит не совсем рационально. Для этих целей были придуманы так называемые акселераторы PHP – это специальное расширение, которое служит для увеличения производительности интерпретатора PHP, при обработке скриптов, за счет кэширования их скомпилированного байт-кода.
Существуют множество расширений, выполняющие роль акселератора PHP, в данной заметке мы попробуем установить одно из популярных расширений — APC, на Linux CentOS с веб-сервером Apache.
APC (Alternative PHP Cache) – бесплатное расширение с открытым исходным кодом, созданное для кэширования и оптимизации работы исходных кодов PHP.
Для установки мы воспользуемся репозиторием Remi:
# yum --enablerepo=remi install php-pecl-apc
После успешной инсталляции, необходимо задать параметры для акселератора, в файле /etc/php.d/apc.ini. Откроем конфигурационный файл в редакторе vi:
Выставляем следующие параметры:
# кэширование apc.enabled=1 # значение кол-ва сегментов кэша в памяти apc.shm_segments=1 # размер сегмента apc.shm_size=256M # время жизни кэша apc.ttl=3600 # максимальных объем файлов apc.max_file_size=1M # проверять изменения файла (при обращении к нему) apc.stat=1
Данные параметры приведены для примера. Обратите внимание на то, что APC нужно конфигурировать, опираясь на аппаратные ресурсы своего сервера. Неправильная конфигурация может привести к нестабильной работе APC.
Можно мониторить состояние кэша APC воспользовавшись утилитой apc.php, которая прилагается к дистрибутиву. Его достаточно скачать и закинуть в публичную директорию сервера.
Когда имеет смысл ставить акселератор APC?
Если сервер испытывает значительные нагрузки, одной из причин которых является исполнение php-кода скриптов, то в этом случае есть смысл задуматься об инсталляции акселератора на свой сервер.
VK FB TW Whatsapp Telegram Email
Install APC (Alternative PHP Cache) in CentOS 5/6/7 and Fedora 20/21
APC (Alternative PHP Cache) is a free and open source tool to cache PHP codes.
1. Install Dependency Packages for APC
yum install php-pear php-devel httpd-devel pcre-devel gcc make -y
2. Install APC using PECL (PHP Extension Community Library)
Press “Enter” for the following options
Enable internal debugging in APC [no] : Enable per request file info about files used from the APC cache [no] : Enable spin locks (EXPERIMENTAL) [no] : Enable memory protection (EXPERIMENTAL) [no] : Enable pthread mutexes (default) [yes] : Enable pthread read/write locks (EXPERIMENTAL) [no] :
2a. [Alternative]
If the above command fails, you can use the following method to install APC as well.
3. Enable APC PHP Extension
echo "extension=apc.so" > /etc/php.d/apc.ini
4. Restart Apache Service for APC
sudo service httpd restart
5. Verify APC Installation
Create a file named phpinfo.php in Apache web root directory. For example our Apache web root directory is /var/www
And add the following code to the php file
[Optional] If you do not have nano installedOpen the following url in your web browser
http://yourdomain.com/phpinfo.php
6. Enable PHP APC administration
Copy the following file to any web directory that you want. For example, in this case we will copy it to the web root directory.
cp /usr/share/pear/apc.php /var/www/html/
Open the file apc.phpÃÂ
In nano editor, use “Ctrl-w” to search for the username and password field to modify.
defaults('ADMIN_USERNAME','apc'); // Admin Username
defaults('ADMIN_PASSWORD','password'); // Admin Password - CHANGE THIS TO ENABLE.
Open the following link in your web browser.
You should see your APC stats and that’s it!
APC в PHP: Понятие, установка, использование APC
APC – это аббревиатура от Alternative PHP Caching. Русским текстом – это альтернативный PHP кэшер. Для чего он используется? Как и другие популярные кэшеры, такие как XCache и eAccelerator, он используется для увеличения скорости работы PHP скриптов. Если вы имеете собственный сервер, и вас волнуют вопросы быстродействия PHP скриптов, то APC может стать решением вашей проблемы. В сегодняшней статье мы более подробно узнаем о APC, научимся его устанавливать и тестировать, использовать APC кеширование при написании PHP скриптов.
Сегодня мы узнаем
Что такое акселератор APC?
Акселератор APC (Alternative PHP Cache) — бесплатный и открытый opcode кэшер для PHP. Он был задуман, как бесплатный, открытый и стабильный фреймворк для кэширования и оптимизации исходного кода PHP. APC находится на стадии своего развития. На данный момент поддерживает PHP 4 и PHP 5, включая 5.3. Предположительно будет включен в стандартное ядро PHP шестой версии.
Каким образом достигается ускорение работы PHP?
Когда идет задержка загрузки вашего сайта, возникает вопрос – Почему? Дело в том, что при выполнении стандартного обращения к PHP скрипту, каждый раз он компилируется заново. То есть, одна и та же работа делается несколько раз. Если это маленький проект, замедления в работе могут быть незначительными, даже невидимыми. Но если у вас большой проект (сайт), то вы замечали, что при обращении идет задержка загрузки страницы, несмотря на то, что сайт хорошо оптимизирован, в плане сжатия html и сжатия css. Для наглядности, посмотрим, как выполняется стандартный запрос без использования PHP акселераторов:
При этом идут выполнения компиляции кода при каждом запросе. Это отнимает много время на обработку запроса, потому и тормозит. Для обхода этого и придумали акселераторы, представителем которого является APC. Они кэшируют скомпилированный код на диске, после обращения к которому, он выводит результат. Таким образом увеличивается скорость работы PHP. APC может работать в двух режимах, которые настраиваются в файле /etc/php.d/apc.ini, переменная apc.stat. Переменная может принимать значения 1 и 0 (apc.stat=0 или apc.stat=1). При использование режима apc.stat=1 несколько замедляется работа скриптов так, как идет проверка на модификацию файла, но это позволяет избежать проблем, когда код изменен, а выдача результата остается прежней. Поэтому советую поставить значение переменной 1.
После установки акселератора APC, схема выполнения запроса будет следующей:
Установка APC
APC очень простой в установке. Его можно устанавливать как на Debian/Ubuntu, так и на другие дистрибутивы.
Установка APC на CentOS, RHEL, Fedora:
Будем устанавливать через PECL. Сначала подключаем .repo, который содержит актуальный APC. Смотрите пример ниже:
wget http://rpm.scwlab.com/el/php/yum.conf -O /etc/yum.repos.d/stalwart.repo
yum install php-pecl-apc
Теперь, измените настройки файла /etc/php.d/apc.ini на свой вкус и сделайте рестарт сервера.
Установка APC на Debian, Ubuntu
apt-get install apache2-threaded-dev php5-dev php5-pear make gcc g++
pecl install apc
После загрузки, откройте файл по адресу /etc/php5/apache2/php.ini, добавьте параметр extension=apc.so, и перезапустите сервер.
Как видите, установить APC на Debian или Ubuntu, достаточно просто, нужно набрать в консоли команду sudo aptitude install php-apc. Также можно установить это расширение через synaptic. Если у вас другой дистрибутив, то вы можете установить пакет APC из PECL. Для этого выполните в консоле следующую команду sudo pecl install apc.
Проверка наличия пакета APC
Если в файле настроек php.ini, присутствует строка загрузки пакета extension=apc.so. Или создан файл apc.ini с идентичной строкой, в папке конфигурации расширений PHP. У каждого дистрибутива, он находится по своему адресу. Для Debian, это /etc/php5/apache2/conf.d/.
Если вы проверили и убедились, что все хорошо, перезапустите сервер. Теперь проверим информацию о самом пакете APC. Для этого найдите папку в которой было установлено расширение. В папке вы найдете файл по имени apc.php. Этот файл, также присутствует в архиве установки. Скопируйте его в любую директорию из сайтов вашего сервера. Например, что-бы он был доступен по адресу http://sitear.ru/apc.php. Если пакет был установлен успешно, то при загрузке этого файла, вы увидите следующую таблицу информации о текущем APC пакете.
Использование APC в PHP
Использовать расширение APC при написании PHP кода, очень просто и удобно. Сейчас вы сами убедитесь в этом.
Для начала, мы напишем класс, для работы с памятью через APC систему кэширования. Создайте файл и поместите туда код по следующему адресу:
classes/apc.caching.php
bEnabled = extension_loaded('apc'); > // получаем данные с памяти function getData($sKey) < $bRes = false; $vData = apc_fetch($sKey, $bRes); return ($bRes) ? $vData :null; >// сохраняем данные в память function setData($sKey, $vData) < return apc_store($sKey, $vData, $this->iTtl); > // удаляем данные с памяти function delData($sKey) < $bRes = false; apc_fetch($sKey, $bRes); return ($bRes) ? apc_delete($sKey) : true; >> ?>
В классе описано, что делает каждая из функций. Теперь создадим тестовый файл.
'table', 'color' => 'brown', 'size' => array( 'x' => 200, 'y' => 120, 'z' => 150, ), 'strength' => 10, ); require_once('classes/apc.caching.php'); $oCache = new CacheAPC(); echo 'Данные:'; // Посмотрим что мы имеем print_r($aData); echo ''; if ($oCache->bEnabled) < // Если APC доступен $oCache->setData('my_object', $aData); // Сохраняем данные в памяти $oCache->setData('our_class_object', $oCache); // Сохраняем объект класса в памяти echo 'По теории, мы сохранили данные в памяти, нажмите здесь для проверки, действительно ли все там.'; > else < echo 'Пакет APC не установлен, установите, а потом будете тестировать!'; >?>
В этом файле мы сохранили 2 объекта в память: массив и объект класса. Теперь создадим второй файл.
В данном скрипте, мы только читаем информацию из памяти. Как вы видите, вся информация отлично считывается с памяти. Давайте посмотрим последний пример.
bEnabled) < // Если APC доступен $oCache->delData('my_object'); // Извлечение данных из памяти $oCache->delData('our_class_object'); // Извлечение данных из памяти $aMemData = $oCache->getData('my_object'); // пытаемся получить данные обратно $aMemData2 = $oCache->getData('our_class_object'); echo 'Данные из памяти:'; // Проверим, что у нас хранится в памяти print_r($aMemData); echo ''; echo 'Данные из памяти объекта CacheAPC class:
'; print_r($aMemData2); echo ''; echo 'Как видите все данные извлечены из памяти. Ура!'; > else < echo 'Пакет APC не установлен, установите, а потом будете тестировать!'; >?>
Заключение
Спасибо за ваше внимание! Надеюсь вам было интересно почитать об использовании APC в PHP. Если вы имеете другие представления об использовании APC при написании PHP скриптов, напишите об этом в комментариях.
How To Tutorials
How to install APC in centos for PHP better performance ( opcode)
APC for PHP better performance:
APC is a op-code caching for PHP. Once PHP code is run, APC caches the complied PHP code so for next time, time for compiling PHP will be reduce and gives faster performance. APC caches files in memory so performance of PHP code improves significantly.
Installing APC:
Make sure PHP is installed first 🙂 . we need to install few pre-requist for PHP.
$ yum install php-pear php-devel httpd-devel pcre-devel gcc make $ pecl install apcConfiguring APC:
Open APC config file and make sure you have atlest following configuration:
Enable APC for php.
extension=apc.so apc.enabled=1The number of seconds a cache entry is allowed to idle in a slot before APC dumps the cache.
apc.ttl=72000 apc.user_ttl=72000 apc.gc_ttl=3600Size of memory for apc ( 1024 M)
Enable apc stats.
Enable APC for command line php operations.
Allow 2 seconds after a file is created before it is cached. This will prevent premature PHP pages to get cached.
apc.file_update_protection=2Maximum size of single file that apc can store.
Maximum number of files APC can store ( rotation).
Maximum number of users data entries that APC can store.
apc.user_entries_hint=20000You can put your configuration in php.ini file but i prefer to have separate file like above for configuration. Values mentioned above are for demonstration purpose, different values for APC can be set which depends on number of PHP pages, size of memory in server, number of page hits e.t.c
Restart httpd server:
APC installation comes with apc.php file, which can be use to monitor APC performance. This file can be found inside APC package OR can be download from http://pecl.php.net/package/APC ( unzip and look for apc.php file).
Once apc.php is downloaded copy it to your domain so that you can assess it.
Now from browser, you can go to http://domain.com/apc.php. I prefer to wait for a day to see the APC performance so we can have clear idea how well our configuration did.
Sample output of APC:
Here, we clearly see that APC is not performing very well as we have 44% misses. To optimize this we can reduce the memory and also we can increase max_file_size and also TTL time so that more can be cached in APC. Normally when missed rate is more than 10% , its better to reconfigure the settings of APC.
Well tuned APC will look like below: