ryg

Установка ускорителя php приложений APC на OS X Mountain Lion

После установки и настройки apache и mysql желательно установить акселератор php-скриптов, который позволит снизить нагрузку на ваш web-server. Ускоритель компилирует наиболее часто используемые php-скрипты и при обращении подгружает не исходный код, а его скомпилируемую версию. За счет чего происходит ускорение исполнения и отображения вашего сайта. Особенно это заметно на "тяжелых" CMS типа Битрикс.

Для установки ускорителя APC сначала необходимо установить XCode c с компонентом командной строки.

Установка командной строки в xcode

После обновления Mac OS X на версию 10.9 Maverick необходимо заново установить компонент командной строки. Теперь он устанавливается не через графический интерфейс, а с помощью командной строки:
xcode-select --install

Иначе при установке расширений с помощью pecl будет вылазить ошибка "не найден файл php.h"

file not found 
#include <php.h> 
         ^ 

далее скачать библиотеку PCRE из http://sourceforge.net/projects/pcre/files/latest/download?source=files
Распаковать скачанный файл. Далее необходимо в терминале перейти в папку где Вы распаковали пакет

    ./configure
    make
    sudo make install
Далее можно устанавливать APC
    sudo pecl install apc
Если все прошло нормально, то проверьте установку APC php-скриптом с командой phpinfo(). при выполнении команды может быть полный отказ, в этом случае необходимо попробовать следующее:
Если данная команда не прошла, то у Вас скорее всего не установлен PEAR и PECL. Их необходимо скачать c помощью команды curl и установить
 
    curl -O http://pear.php.net/go-pear.phar
    sudo php -d detect_unicode=0 go-pear.phar

 На запрос о конфигурации  PEAR необходимо исправить параметры 1 и 4. Там где будет

	11. Name of configuration file                    : 
 
1-11, 'all' or Enter to continue: 

Ответьте сначала 1. И введите адрес :

	/usr/local/pear

Затем ответьте 4 и введите следующий адрес

/usr/local/bin

После этого нажмите ввод. PEAR установлен. Проверить можно командой

   pear version

После этого еще раз попробуйте 

   sudo pecl install apc
 
В этот раз у меня был отказ со следующим сообщением
 
Cannot find autoconf. Please check your autoconf installation and the
$PHP_AUTOCONF environment variable. Then, rerun this script.
 
ERROR: `phpize' failed
 
Для устранения данной ошибки необходимо скачать и установить autoconfig следующими командами терминала
curl http://ftp.gnu.org/gnu/autoconf/autoconf-latest.tar.gz > autoconf.tar.gz
tar -xvzf autoconf.tar.gz
cd autoconf-* 
./configure --prefix=/usr/local
sudo make install
 
После установки autoconfig команда:

	sudo pecl install apc
 
На все вопросы задаваемые при компиляции APC отвечаем вводом по умолчанию. Если на вопрос

Enable internal debugging in APC [no] : y

То в этом случае при выполнении кода могут получаться сообщения об ошибках выполнения самого APC. Правильный ответ no.

Установка прошла успешно. Теперь делаем перезапуск apache
sudo apachectl restart
Если Вы делаете переустановку APC после обновления на Mavericks возможен глюк, связанный с существованием в системе старой версии phpize. В этом случае могут помочь следующие команды, обновляющие конфигурацию pecl
sudo pear config-set php_ini /etc/php.ini
sudo pecl config-set bin_dir /usr/bin/
 
Необходимо убедиться, что в файле /etc/php.ini есть строка и в случае необходимости ее добавить.
 
	extension=apc.so
И опять перезапустить apache.
 
 
проверяем в phpinfo()
APC акселератор

Битрикс требует установки дополнительных параметров. Настройки APC находятся в файле

/etc/php.ini

Я установил для себя следующие параметры:

apc.ttl=7200
apc.max_file_size= 64M
apc.shm_size = 64M

Что дало изменение производительности (если верить монитору производительности Bitrix) c 10,62 единиц до 40,52)
Вот вроде и все.

 

Основные параметры настроек APC

  • apc.enabled – позволяет включить или отключить APC
  • apc.shm_segments – количество сегментов shared memory, которые будет использовать apc. Некоторые системы имеют ограничение на максимальный размер сегмента, поэтому можно настроить apc на использование нескольких сегментов.
  • apc.shm_size – размер одного сегмента shared memory, используемого apc.
  • apc.ttl – сколько секунд должны отсутствовать обращения к записи кэша прежде, чем apc перезапишет ее.
  • apc.user_ttl – по описанию тоже самое, что и apc.ttl. Обычно устанавливается равным apc.ttl.
  • apc.stat – указывает, нужно ли apc проверять время модифицирования php-скрипта. Если установить в 0, то apc не будет проверять изменения на диске и будет выдавать кэшированную копию.

Drupal рекомендует установку библиотеки  uploadprogress. Так как у Вас уже все настроено, то данное действие не будет сложным:

pecl install uploadprogress

Правда могут потребоваться права супер-пользователя (root)