Apc на хостинге что это

APC – это система кэширования кодов PHP, которая позволяет ускорить сайт. PHP – это динамический серверный язык сценариев, который нужно анализировать, компилировать и запускать на сервере при каждом запросе страницы. Однако во многих случаях запросы повторяются, а потому облачному серверу приходится повторно обрабатывать каждый из них.

В этом случае на помощь приходит APC, или Alternative PHP Cache. Этот инструмент сохраняет код PHP в операционной памяти и при необходимости извлекает его. В сущности, он обходит обработку и компиляцию кода, что позволяет свести к минимуму нагрузку на сервер.

Данное руководство продемонстрирует установку и настройку APC.

Примечание: Для выполнения руководства нужен предварительно настроенный сервер Ubuntu 12.04 с привилегиями root, а также стек LAMP.

Прежде чем устанавливать кэшер APC, нужно установить некоторые его зависимости. Для этого используйте следующую команду:

sudo apt-get install php-pear php5-dev make libpcre3-dev

Затем можно установить APC при помощи команды pecl:

При этом появится ряд вопросов; рекомендуется просто нажать Enter, чтобы установить стандартные настройки.

В завершение установки нужно отредактировать файл php.ini:

sudo nano /etc/php5/apache2/php.ini

добавив в конец следующую строку:

Сохраните и закройте файл, а затем перезапустите Apache:

sudo service apache2 restart

Чтобы узнать, включён ли APC, откройте info-страницу PHP. Если таковой нет, создайте пустой php-файл в папке /var/www:

И внесите в него такой код:

Сохраните и закройте файл, а затем откройте браузер. На экране появится вся информация о текущей установке PHP. Если APC включён, страница сообщит об этом. В целом, оставлять этот файл не рекомендуется, так как он может предоставить доступ к конфиденциальным данным посторонним пользователям. Удалите его после выполнения проверки.

После установки кэшер APC запускается с настройками по умолчанию. В его конфигурациях есть две очень важные настройки. Итак, откройте файл php.ini:

sudo nano /etc/php5/apache2/php.ini

Под ранее добавленной строкой, которая включает APC, внесите следующую строку:

Это выделит 64MB оперативной памяти для кэширования APC. В зависимости от требований или ограничений виртуального выделенного сервера это значение может изменяться.

Ниже нужно добавить ещё одну строку:

Настройка apc.stat проверяет скрипт при каждом запросе, чтобы проверить его на изменения. Если он был изменён, она повторно скомпилирует его и кэширует новую версию. Это стандартное поведение APC. Значение 0 в этой строке скажет APC не проверять скрипт на наличие изменений. Это улучшает производительность, но есть и обратная сторона: если в скрипте PHP появились изменения, они не будут внесены до перезапуска облачного сервера. Поэтому устанавливать значение 0 рекомендуется только на сайтах, которые находятся на стадии производства.

Теперь, когда кэшер APC установлен и запущен, можно проверить его состояние и производительность. Найдите файл apc.php в папке /usr/share/php/ и переместите его в папку, доступную для браузера – к примеру, в www:

cp /usr/share/php/apc.php /var/www

Откройте этот файл в браузере:

На экране появится статистика APC. Обратите внимание: APC располагает достаточным объёмом памяти для хранения своих данных.

Кроме того, хорошим показателем работы APC является то, что Hits rate значительно выше, чем Misses rate; в противном случае нужно выполнить дополнительную настройку кэшера.

Акселератор APC очень прост в установке и использовании. Чтобы повысить производительность сайта, установите Memcache или Varnish.

APC – это аббревиатура от Alternative PHP Caching. Русским текстом – это альтернативный PHP кэшер. Для чего он используется? Как и другие популярные кэшеры, такие как XCache и eAccelerator, он используется для увеличения скорости работы PHP скриптов. Если вы имеете собственный сервер, и вас волнуют вопросы быстродействия PHP скриптов, то APC может стать решением вашей проблемы. В сегодняшней статье мы более подробно узнаем о APC, научимся его устанавливать и тестировать, использовать APC кеширование при написании PHP скриптов.

Акселератор 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 очень простой в установке. Его можно устанавливать как на Debian/Ubuntu, так и на другие дистрибутивы.

Установка APC на CentOS, RHEL, Fedora:

Будем устанавливать через PECL. Сначала подключаем .repo, который содержит актуальный APC. Смотрите пример ниже:

Теперь, измените настройки файла /etc/php.d/apc.ini на свой вкус и сделайте рестарт сервера.

Установка APC на Debian, Ubuntu

После загрузки, откройте файл по адресу /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 систему кэширования. Создайте файл и поместите туда код по следующему адресу:

classes/apc.caching.php

В классе описано, что делает каждая из функций. Теперь создадим тестовый файл.

‘; if ($oCache->bEnabled) < // Если APC доступен $oCache->setData(‘my_object’, $aData); // Сохраняем данные в памяти $oCache->setData(‘our_class_object’, $oCache); // Сохраняем объект класса в памяти echo ‘По теории, мы сохранили данные в памяти, нажмите здесь для проверки, действительно ли все там.’; > else < echo 'Пакет APC не установлен, установите, а потом будете тестировать!'; >?>

В этом файле мы сохранили 2 объекта в память: массив и объект класса. Теперь создадим второй файл.

‘; echo ‘Данные из памяти объекта CacheAPC class: ‘; echo ‘Как видите все данные доступны, теперь давайте извлечем их из памяти, для этого идем сюда…’; > else < echo 'Пакет APC не установлен, установите, а потом будете тестировать!'; >?>

В данном скрипте, мы только читаем информацию из памяти. Как вы видите, вся информация отлично считывается с памяти. Давайте посмотрим последний пример.

‘; echo ‘Данные из памяти объекта CacheAPC class: ‘; echo ‘Как видите все данные извлечены из памяти. Ура!’; > else < echo 'Пакет APC не установлен, установите, а потом будете тестировать!'; >?>

Спасибо за ваше внимание! Надеюсь вам было интересно почитать об использовании APC в PHP. Если вы имеете другие представления об использовании APC при написании PHP скриптов, напишите об этом в комментариях.

При подготовки статьи использованы следующие источники:

http://vseohostinge.ru/uroki-sovety/manualy-po-2domainsru/registrator-2domains-znakomstvo-s-panelyu-upravleniya

http://pupi-boy.ru/domen-hosting/perenos-domena-ru-k-drugomu-registratoru.html

http://wordpressmania.ru/kak-prikrepit-domen-v-2domains-k-hostingu-beget/

http://richhost.biz/kak-privyazat-domen-k-hostingu.html

http://www.reg.ru/support/hosting-i-servery/sajty-i-domeny/kak-nastroit-dns/kak-privyazat-domen-k-hostingu

http://webformyself.com/kak-privyazat-domen-k-xostingu/

http://wrart.ru/vidy-zarabotka/3-mesyatsa-besplatnogo-hostinga-ot-mchost.html

http://seoslim.ru/host/xosting-3-mesyaca-besplatno.html

http://ideafox.ru/pro-blog/3-month-hosting.html

http://wrart.ru/vidy-zarabotka/3-mesyatsa-besplatnogo-hostinga-ot-mchost.html

http://online-elite.ru/zarabotok-online/saytostroyeniye/razmestit-neskolko-saitov

http://www.garagebiz.ru/view/skolko_sajtov_mozhno_razmestit_na_odnom_hostinge/seo

http://online-elite.ru/zarabotok-online/saytostroyeniye/razmestit-neskolko-saitov

http://lessons-business.ru/dva-domena-na-odnom-khostinge.html

http://ru.hostings.info/hostings/rating/testovyj-period-hosting

http://start-luck.ru/sozdanie-sayta/khostingov-s-testovym-periodom.html

http://denezhnye-ruchejki.ru/301-redirekt-na-hostinge-offerhost/

http://fb.ru/article/242507/kak-nastroit-redirekt-cherez-htaccess-pravilnaya-nastroy-kak-redirekta-v-joomla-i-drugih-cms

http://www.myarena.ru/

http://ourservers.ru/

http://www.hostinger.ru/rukovodstva/kak-ispravit-oshibku-403-forbidden-error

http://komp.guru/oshibki/kak-ispravit-oshibku-403-kotoraya-zapreshhaet-dostup-k-sajtu.html

http://www.hostinger.ru/rukovodstva/kak-ispravit-oshibku-403-forbidden-error

http://sdelaicomp.ru/nastrojka-sistemy/403-forbidden-chto-eto-i-kak-ispravit.html

http://www.reg.ru/support/hosting-i-servery/sajty-i-domeny/moy-sayt-ne-rabotaet/oshibka-403

http://toster.ru/q/477262

http://www.hostinger.ru/rukovodstva/413-request-entity-too-large/

http://ruphp.com/entity-too-large-413.html

http://socpravo.ru/xosting-za-kopejki-50-rublej-v-mesyac-dlya-sajta-vizitki/

http://ru.hostings.info/hostings/rating/deshevyj-hosting

http://www.gameserverkings.com/games/7-days-to-die-server-hosting/

http://www.gtxgaming.co.uk/7-days-die-server-hosting/

http://www.gtxgaming.co.uk/7-days-die-server-hosting/

http://www.gameserverkings.com/games/7-days-to-die-server-hosting/

http://www.reg.ru/support/domains/dns_servery_i_nastroika_zony/Nastroika-zony/kak-dobavit-zapis-a-poddomen

http://www.reg.ru/support/domains/dns_servery_i_nastroika_zony/Nastroika-zony/nastroika-resursnyh-zapisei-dlya-domena

http://timeweb.com/ru/help/pages/viewpage.action?pageId=4358480

http://romanchueshov.ru/bez-rubriki/kak-privyazat-domen-k-hostingu-timeweb.html

http://lifehacki.ru/oshibka-access-denied-for-user-rootlocalhost-using-password-yes-i-no/

http://qaru.site/questions/218155/1045-access-denied-for-user-rootlocalhost-using-password-yes

http://www.1gb.ua/wiki/index.php?title=%D0%94%D0%BE%D1%81%D1%82%D1%83%D0%BF_%D0%BA_%D0%91%D0%94_mySQL_%D0%B8%D0%B7_Microsoft_Access

http://webformyself.com/kak-sozdat-bazu-dannyx-na-xostinge/

http://helpx.adobe.com/ru/muse/using/uploading-site-third-party-hosting.html

http://rusmuse.ru/archives/1453

http://helpx.adobe.com/ru/muse/using/uploading-site-third-party-hosting.html

http://rusmuse.ru/archives/1453

http://helpx.adobe.com/ru/muse/using/uploading-site-third-party-hosting.html

http://rusmuse.ru/archives/1453

http://helpx.adobe.com/ru/muse/using/uploading-site-third-party-hosting.html

http://rusmuse.ru/archives/1453

http://helpx.adobe.com/ru/muse/using/uploading-site-third-party-hosting.html

http://rusmuse.ru/archives/1453

http://rusmuse.ru/archives/1453

http://creatura.club/lessons/hosting/kak-poluchit-besplatnyy-hosting-i-domen-dlya-adobe-muse-r57/

http://helpx.adobe.com/ru/muse/using/uploading-site-third-party-hosting.html

http://rusmuse.ru/archives/1453

http://rusmuse.ru/archives/1453

http://helpx.adobe.com/ru/muse/using/uploading-site-third-party-hosting.html

http://helpx.adobe.com/ru/muse/using/uploading-site-third-party-hosting.html

http://muwilab.ru/vozmojno-li-sajt-na-muse-perenesti-na-druguyu-platformu.html

http://htmleditors.ru/List3B/adobe_muse_help/publish.html

http://helpx.adobe.com/ru/muse/using/publishing-websites.html

http://helpx.adobe.com/ru/muse/using/uploading-site-third-party-hosting.html

http://rusmuse.ru/archives/1453

http://creatura.club/lessons/hosting/kak-poluchit-besplatnyy-hosting-i-domen-dlya-adobe-muse-r57/

http://rusmuse.ru/archives/1453

http://today-life.ru/zarabotok-v-seti/kak-posmotret-doxod-na-youtube.html

http://suay.ru/?p=221

http://searchengines.guru/archive/index.php/t-800238.html

http://suay.ru/?p=221

http://searchengines.guru/archive/index.php/t-406016.html

http://lpgenerator.ru/blog/2012/11/15/privyazka-domena-i-poddomena-v-paneli-agavaru/

http://tods-blog.com.ua/software/ai-bolit/

http://revisium.com/ai/faq.php

http://forum.php.su/topic.php?forum=40&topic=4423

http://qaru.site/questions/459285/delete-ajax-works-in-localhost-but-doesnt-in-production-hosting

http://takprostotak.ru/joomla/kak-perenesti-sajt-sozdanyj-na-cms-joomla-bekap-sajta-akeeba-backup.html

http://sitogon.ru/dlya-tech-kto-delaet-internet/akeeba-backup-rezervnoe-kopirovanie-i-perenos-saytov-na-joomla

http://normalnet.ru/sajt-na-joomla/perenos-joomla-3-na-hosting.html

http://www.inforeks.ru/cms/27-joomla-na-server.html

http://takprostotak.ru/joomla/kak-perenesti-sajt-sozdanyj-na-cms-joomla-bekap-sajta-akeeba-backup.html

http://sitogon.ru/dlya-tech-kto-delaet-internet/akeeba-backup-rezervnoe-kopirovanie-i-perenos-saytov-na-joomla

http://normalnet.ru/sajt-na-joomla/perenos-joomla-3-na-hosting.html

http://www.inforeks.ru/cms/27-joomla-na-server.html

http://www.inforeks.ru/cms/27-joomla-na-server.html

http://joofaq.ru/sozdanie-sayta-na-joomla-1-5/ustanovka-i-nastroyka/20-perenos-sayta-joomla-s-lokalnogo-servera-na-virtualniy-chosting

http://joomla.center/baza-joomla/zaschita-joomla/akeeba-backup-manual

http://takprostotak.ru/joomla/kak-perenesti-sajt-sozdanyj-na-cms-joomla-bekap-sajta-akeeba-backup.html

http://takprostotak.ru/joomla/kak-perenesti-sajt-sozdanyj-na-cms-joomla-bekap-sajta-akeeba-backup.html

http://joofaq.ru/sozdanie-sayta-na-joomla-1-5/ustanovka-i-nastroyka/20-perenos-sayta-joomla-s-lokalnogo-servera-na-virtualniy-chosting

http://normalnet.ru/sajt-na-joomla/perenos-joomla-3-na-hosting.html

http://www.inforeks.ru/cms/27-joomla-na-server.html

http://www.amiro.ru/forum/hosting-for-amiro-cms/peremestit-na-drugoj-hosting

http://unihost.com/help/ru/how-to-move-amiro-cms-to-web-hosting/

http://www.hostinger.ru/besplatnyj-hosting

http://ru.hostings.info/hostings/rating/free-hosting

http://www.hostinger.ru/besplatnyj-hosting

http://ru.hostings.info/hostings/rating/free-hosting

http://koskomp.ru/sozdanie-saytov/besplatnye-domeny-dlya-sayta-2-i-3-urovnya-ru-tk-com/

http://oblomow.ru/free-domains/

http://ktonanovenkogo.ru/vokrug-da-okolo/hosting/varianty-besplatnyx-xostingov-dlya-vashix-sajtov-bez-navyazchivoj-reklamy-no-s-podderzhkoj-yazyka-php-i-baz-dannyx-mysql.html

http://www.redz.ru/hosting/free/

http://ru.stackoverflow.com/questions/589053/apache-ssl-https-%D0%B4%D0%BB%D1%8F-%D0%B2%D0%B8%D1%80%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85-%D1%85%D0%BE%D1%81%D1%82%D0%BE%D0%B2

http://www.digitalocean.com/community/tutorials/apache-ubuntu-14-04-lts-ru

http://afirewall.ru/nastrojka-virtualnyx-xostov

http://macrodmin.ru/2019/01/apache-ip-based-and-name-based-virtual-hosting/

http://www.hostland.ru/articles/hosting_apache

http://www.hostinger.ru/rukovodstva/web-server-apache/

http://www.8host.com/blog/ustanovka-alternative-php-cache-apc-na-server-ubuntu-12-04/

http://sitear.ru/material/apc-php