- Php акселератор apc windows
- 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
- Заключение
- Ускорение Apache/PHP с помощью APC
- Andrey
Php акселератор apc windows
Тот, кто делает сайты на Joomla!, знает на личном опыте, что стоит установить на этот движок несколько компонентов и модулей, как сайт начинает заметно медленней работать. Конечно же, можно включить в админке кеширование, но и это не особо ускоряет работу сайта.
Давайте разберёмся, почему это происходит и как исправить такую ситуацию в лучшую сторону. Joomla!, как и большинство других движков, написана на скриптовом языке программирования PHP. Это значит, что на PHP написаны сценарии (скрипты), в которых описаны последовательности операций для получения какого-либо результата. В нашем случае там прописано, что и как должно работать на сайте. Рассмотрим подробнее, как это работает.
Пользователь заходит на Ваш сайт — в этот момент на сервер из его браузера идёт запрос к странице, которую он запросил. Сервер принимает этот запрос и, если в коде страницы есть PHP код, передаёт этот код в интерпретатор PHP. Задача интерпретатора — принять PHP код и обработать его. Проще говоря, выполнить те последовательности действий, которые описаны в PHP коде. После обработки кода интерпретатор отдаёт результат серверу, а сервер отдаёт этот результат браузеру посетителя в виде HTML кода. При этом каждый раз перед тем, как интерпретатор сможет выполнить PHP скрипт, происходит компиляция этого PHP скрипта в байткод, который и обрабатывается. При этом компиляция кода отнимает некоторое количество ресурсов сервера, а если сайт состоит из большого количества PHP скриптов (в нашем случае это Joomla!), то это создаёт ощутимую нагрузку на сервер.
Напрашивается вывод, что выгоднее было бы сохранять байткод в оперативный памяти. И действительно, для снижения нагрузки от постоянной компиляции одного и того же кода применяют акселераторы PHP. Все они работают по одному принципу: сохраняют в оперативной памяти (либо на диске) уже скомпилированный код. Применение акселератора позволяет ускорить выполнение PHP в несколько раз, а значит, и скорость загрузки страниц сайта тоже возрастёт.
Я покажу установку и базовую настройку одного из таких ускорителей, а именно APC. Кстати я даже где-то читал, что этот акселератор советуют разработчики Joomla! Итак, установим APC на домашний сервер. Для этого выполним в консоли команду
По умолчанию для кеша в настройках APC выделено достаточно памяти, но при необходимости можно увеличить это значение. Для этого отредактируем конфигурационный файл:
И добавим в него строку
Это количество выделенной под кеш памяти в мегабайтах. После сохранения изменений необходимо перезапустить apache:
Теперь давайте проверим работу акселератора. В APC есть полезная опция, позволяющая визуально наблюдать в браузере использование кеша этим акселератором и видеть все его настройки. Для этого нужно закачать в корень сайта файл apc.php (этот файл можно найти в папке, в которой находится apc после установки, либо скачать по ссылке ниже) и обратиться к нему, дописав в браузере к домену сайта имя файла http://ваш-домен.ru/apc.php.
Вы увидите полную информацию об использовании кеша в наглядном виде (так же, как на этом скриншоте).
Это позволяет отлаживать режимы работы акселератора, подстраивать его под свой проект. После установки на сервер акселератора в Joomla! можно использовать APC в качестве обработчика кеширования. Для этого в общих настройках выберите Alternative PHP Cache.
Не рекомендую включать акселератор для обработчика сессий, иначе невозможно будет редактировать материалы и в админку тоже уже не попадёте. Хотя настроек у APC очень много, но думаю, для первого знакомства с ним достаточно этой информации. В дальнейшем расскажу о более тонкой настройке.
Только зарегистрированные пользователи могут оставлять комментарии.
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
В классе описано, что делает каждая из функций. Теперь создадим тестовый файл.
index.php
‘; if ($oCache->bEnabled) < // Если APC доступен $oCache->setData(‘my_object’, $aData); // Сохраняем данные в памяти $oCache->setData(‘our_class_object’, $oCache); // Сохраняем объект класса в памяти echo ‘По теории, мы сохранили данные в памяти, нажмите здесь для проверки, действительно ли все там.’; > else < echo 'Пакет APC не установлен, установите, а потом будете тестировать!'; >?>
В этом файле мы сохранили 2 объекта в память: массив и объект класса. Теперь создадим второй файл.
index2.php
‘; echo ‘Данные из памяти объекта CacheAPC class: ‘; echo ‘Как видите все данные доступны, теперь давайте извлечем их из памяти, для этого идем сюда…’; > else < echo 'Пакет APC не установлен, установите, а потом будете тестировать!'; >?>
В данном скрипте, мы только читаем информацию из памяти. Как вы видите, вся информация отлично считывается с памяти. Давайте посмотрим последний пример.
index3.php
‘; echo ‘Данные из памяти объекта CacheAPC class: ‘; echo ‘Как видите все данные извлечены из памяти. Ура!’; > else < echo 'Пакет APC не установлен, установите, а потом будете тестировать!'; >?>
Заключение
Спасибо за ваше внимание! Надеюсь вам было интересно почитать об использовании APC в PHP. Если вы имеете другие представления об использовании APC при написании PHP скриптов, напишите об этом в комментариях.
Ускорение Apache/PHP с помощью APC
Andrey
пишу код за еду
Кэширование — накопление данных в доступном хранилище, с целью их быстрого извлечения по мере надобности. Кэширование ускоряет процесса обработки информации.
APC (Альтернативный PHP кэш) это оптимизированный PHP кэш. Он хранит PHP страницы в оперативной памяти (RAM) и сокращает активность использования жесткого диска. Это делает реальную разницу в производительности HLX:CE, и вы можете достичь 50% увеличения пропускной способности системы и ваш процессор будет занят на 50% меньше.
Это руководство предназначено для установки APC на Windows и Linux серверах. Инструкция была протестирована на Windows XP x64 (XAMPP) и Ubuntu 8.04 LTS x64 сервер, также должны быть подходящими любые другие современные версии Windows и Linux в качестве сервера.
Сначала перед установкой APC, давайте узнаем информацию об установленном у нас PHP5. Для этого мы создадим файл info.php в корневой директории веб-папки сервера C:\xampp\htdocs в windows или /var/www в linux, или там где находиться ваша веб-папка, файл должен содержать следующие строки:
Далее перейдите по адресу (заменив mystats.com на ваш) http://mystats.com/info.php и вы должны увидеть что PHP 5.2.4 установлен.
вы должны посмотреть что APC нигде не упоминается на этой странице.
Установка APC Windows
Сохраните в папке расширений PHP, которая C:\XAMPP\PHP\Ext по умолчанию. Примечание: Убедитесь, что вы выбрали правильное расширение для вашей версии PHP.
Включить расширение APC в C:\XAMPP\PHP\php.ini файл, отредактировав файл php.ini и добавив следующие строки в раздел расширений:
перезагрузите веб-сервер и снова откройте info.php в браузере http://mystats.com/info.php
Скачайте корректную бинарную версию под windows для версии PHP которая у вас установлена с http://downloads.php.net/pierre/ . Сохраните файл в папку раширений PHP extensions, которая в XAMPP по умолчанию c:\xampp\php\ext. Примечание: убедитесь, что вы выбрали правильное расширение для вашей версии PHP.
Включите APC расширение в файле c:\xampp\php\php.ini , редактируйте php.ini файл, а именно добавьте следующую строку в секции extensions:
Перезапустите ваш веб-сервер, и снова откройте info.php в браузере http://mystats.com/info.php
Теперь вы должны увидеть APC указанным на странице, что означает, что он успешно интегрирован и работает так, как надо.
Установка APC Linux
APC может быть установлен в Linux с помощью PECL. PECL поставляется вместе с php-pear пакетом, сейчас мы установим его:
Кроме того мы должны установить некоторые APC зависимости, чтобы PECL мог собрать APC:
Теперь когда установлены все зависимости мы можем приступить к установке APC следующим образом:
когда вы увидите:
подтвердите нажатием Enter.
Теперь когда APC установлен, мы создаём файл конфигурации /etc/php5/conf.d/apc.ini. Мы должны по крайней мере добавить строку extension=apc.so там; все остальные параметры конфигурации являются не обязательными. Вы можете найти список всех доступных параметров конфигурации по ссылке http://de2.php.net/manual/en/book.apc.php .
через CTRL+X или CTRL-O сохраните и выйдите из редактора nano.
Вот и всё. Перезапустите Apache и всё готово:
Теперь откройте файл info.php еще раз в вашем браузере http://mystats.com/info.php
Теперь вы должны увидеть APC указанным на странице, что означает, что он успешно интегрирован и работает так, как надо.
Оптимизация APC настроек
Чтобы проверить объем памяти, доступной для использования APC, запустите Editor и создайте текстовый файл с именем apcmeminfo.php. Скопируйте и вставьте следующие строки в этот файл:
в этом случаем мы видим объём доступной оперативной памяти, что составляет примерно 32Mb. (33.554.344 b / 1.000.000 = 33,55 MB)