Ускорение Apache/PHP с помощью APC

Тема в разделе "Веб-технологии", создана пользователем Andrey, 11 окт 2009.

  1. Andrey

    Andrey Администратор

    Сообщения:
    3.234
    Симпатии:
    3.507
    Введение

    Кэширование - накопление данных в доступном хранилище, с целью их быстрого извлечения по мере надобности. Кэширование ускоряет процесса обработки информации.
    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, или там где находиться ваша веб-папка, файл должен содержать следующие строки:
    PHP:
    <?php 
    phpinfo
    (); 
    ?>
    Далее перейдите по адресу (заменив mystats.com на ваш) http://mystats.com/info.php и вы должны увидеть что PHP 5.2.4 установлен...

    [​IMG]
    вы должны посмотреть что APC нигде не упоминается на этой странице.


    Установка APC Windows
    Сохраните в папке расширений PHP, которая C:\XAMPP\PHP\Ext по умолчанию. Примечание: Убедитесь, что вы выбрали правильное расширение для вашей версии PHP.

    Включить расширение APC в C:\XAMPP\PHP\php.ini файл, отредактировав файл php.ini и добавив следующие строки в раздел расширений:

    Код:
    extension = php_apc.dll
    перезагрузите веб-сервер и снова откройте 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:
    Код:
    extension = php_apc.dll
    Перезапустите ваш веб-сервер, и снова откройте info.php в браузере http://mystats.com/info.php

    [​IMG]

    Теперь вы должны увидеть APC указанным на странице, что означает, что он успешно интегрирован и работает так, как надо.


    Установка APC Linux

    APC может быть установлен в Linux с помощью PECL. PECL поставляется вместе с php-pear пакетом, сейчас мы установим его:

    Код:
    apt-get install php-pear
    Кроме того мы должны установить некоторые APC зависимости, чтобы PECL мог собрать APC:

    Код:
    apt-get install php5-dev apache2-prefork-dev build-essential
    Теперь когда установлены все зависимости мы можем приступить к установке APC следующим образом:

    Код:
    pecl install apc 
    когда вы увидите:

    Код:
    Use apxs to set compile flags (if using APC with Apache)? [yes]
    подтвердите нажатием Enter.

    Теперь когда APC установлен, мы создаём файл конфигурации /etc/php5/conf.d/apc.ini. Мы должны по крайней мере добавить строку extension=apc.so там; все остальные параметры конфигурации являются не обязательными. Вы можете найти список всех доступных параметров конфигурации по ссылке http://de2.php.net/manual/en/book.apc.php .

    Код:
    nano /etc/php5/conf.d/apc.ini
    и добавьте


    Код:
    extension=apc.so
    apc.enabled=1
    apc.shm_size=30
    через CTRL+X или CTRL-O сохраните и выйдите из редактора nano.

    Вот и всё. Перезапустите Apache и всё готово:

    Код:
    /etc/init.d/apache2 restart
    Теперь откройте файл info.php еще раз в вашем браузере http://mystats.com/info.php

    [​IMG]
    Теперь вы должны увидеть APC указанным на странице, что означает, что он успешно интегрирован и работает так, как надо.

    Оптимизация APC настроек

    Чтобы проверить объем памяти, доступной для использования APC, запустите Editor и создайте текстовый файл с именем apcmeminfo.php. Скопируйте и вставьте следующие строки в этот файл:
    Код:
    <?php 
    print_r(apc_sma_info()); 
    ?>
    [​IMG]

    в этом случаем мы видим объём доступной оперативной памяти, что составляет примерно 32Mb. (33.554.344 b / 1.000.000 = 33,55 MB)

    Теперь редактируем файл /etc/php5/conf.d/apc.ini (Linux) и изменяем/добавляем:

    Код:
    extension=apc.so
    apc.enabled=1
    apc.shm_size=32
    apc.shm_segments=1
    apc.gc_ttl=7200
    apc.ttl=7200
    apc.num_files_hint=1024
    apc.enable_cli=0
    apc.file_update_protection=2
    apc.optimization=0
    или файл c:\xampp\php\php.ini (Windows)

    Код:
    [APC]
    apc.enabled=1
    apc.shm_size=32
    apc.shm_segments=1
    apc.gc_ttl=7200
    apc.ttl=7200
    apc.num_files_hint=1024
    apc.enable_cli=0
    apc.file_update_protection=2
    apc.optimization=0
    Перезапустите Apache для применения настроек:

    Код:
    /etc/init.d/apache2 restart
    или в windows используйте XAMPP panel.


    Проверка работоспособности

    Чтобы подтвердить, что произошло увеличение производительности, попробуйте выполнить следующие действия:
    Отключите кэш в
    /etc/php5/conf.d/apc.ini (Linux)
    Код:
    extension=apc.so
    apc.enabled=0 <---------!!!
    apc.shm_size=32
    apc.shm_segments=1
    apc.gc_ttl=7200
    apc.ttl=7200
    apc.num_files_hint=1024
    apc.enable_cli=0
    apc.file_update_protection=2
    apc.optimization=0
    или c:\xampp\php\php.ini (Windows) добавив ; перед extension строкой

    Код:
    ;extension = php_apc.dll
    и перезапустите веб-сервер.

    Теперь используем ApacheBench, который входит в комплект установки Apache по умолчанию, используя командную строку следующим образом:

    Linux

    Код:
    ab -n 50 -c 1 -d http://mystats.com/hlstats.php
    Windows

    Код:
    c:\xampp\apache\bin\bin>ab.exe -n 50 -c 1 -d http://mystats.com/hlstats.php
    Имейте в виду, нам нужно перезапускать Benchmark несколько раз с APC, что позволит получить правильный результат.

    Успешного кэширования! :)
    http://pecl.php.net/package/APC
     
    rJIa3 нравится это.
  2. Rt.

    Rt.

    Сообщения:
    396
    Симпатии:
    121
    все... решил проблему.... прописал то я все везде правильно, но вот плагины на css левые были
     
  3. sas123

    sas123

    Сообщения:
    311
    Симпатии:
    224
    У кого проблемы с установкой APC, юзаем XCache (PHP 5.3 support), тесты PHP акселераторов.
     
  4. Rt.

    Rt.

    Сообщения:
    396
    Симпатии:
    121
    Не нашел подходящей темы для своего вопроса.
    После установки apache 2.2 не могу правильно настроить файл конфигурации.
    Проблема заключается в том, что при заходе в браузере на мой сайт у меня отображается дерево файло, находящихся в папке htdocs... как это спрятать?
     
  5. Andrey

    Andrey Администратор

    Сообщения:
    3.234
    Симпатии:
    3.507
    Либо в .htaccess добавить Options All -Indexes
    Либо кинуть в эту папку файл index.html
     
    Rt. нравится это.
  6. Rt.

    Rt.

    Сообщения:
    396
    Симпатии:
    121
    Andrey, куда делись картинки?
     
  7. Andrey

    Andrey Администратор

    Сообщения:
    3.234
    Симпатии:
    3.507
    v1tl, сайт на котором они были уже не доступен)
     
  8. Andrey

    Andrey Администратор

    Сообщения:
    3.234
    Симпатии:
    3.507
    Восстановил скриншоты.
     
    CTe6eJIeK_vRn и Rt. нравится это.