Для начала установим необходимые пакеты для сборки PHP и вообще сборки пакетов:
Чтобы этого избежать, нам надо подтянуть версию на тестовой машине до сервера, где будет использоваться eAccelerator:
Переходим в директорию, где будем работать:
Распаковываем его:
Открываем конфиг и настраиваем под себя. Я, например, люблю когда кэш лежит там где он должен лежать по FHS - в /var/cache, а не в /tmp. А еще нужно поправить путь к логу, потому что у нас Debian, а там CentOS-вский путь:
Далее нужно PHP-зировать пакет - подогнать под API PHP:
Теперь скомпилируем нашу библиотеку eaccelerator.so:
Если хочется управлять этим хозяйством через web-интерфейс, то создадим еще виртхост для Apache:
Здесь я указываю Deny from all для секьюрности. Но потом по месту свой IP вставите.
Кроме того здесь нет ничего о хэндлерах PHP - опять же у каждого свое и универсального совета не бывает.
*********** КОНЕЦ НЕОБЯЗАТЕЛЬНОГО ЭТАПА ********************
А теперь сама дебианизация:
А еще нам надо не забыть, что у нас кэш будет складываться в ту директорию, которая указана в файле eaccelerator.ini, который мы недавно правили. Поэтому создадим пост-установочный скрипт, который после установки пакета создаст нам эту директорию:
apt-get install php5-dev dh-make autotools-dev gcc-4.3 debhelper devscriptsТак же нужно учесть одну особенность eAccelerator - он будет работать только с той версией PHP, с которой был собран. Если у Вас на тестовом сервере одна версия PHP, например 5.3.3-7+squeeze3, а на продакшене 5.3.3-7+squeeze8, то eAccelerator не заведется и будет выкидывать такую ошибку:
[eAccelerator] This build of "eAccelerator" was compiled for PHP version 5.3.3-7+squeeze3. Rebuild it for your PHP version (5.3.3-7+squeeze8) or download precompiled binaries.
Чтобы этого избежать, нам надо подтянуть версию на тестовой машине до сервера, где будет использоваться eAccelerator:
apt-get install php5=5.3.3-7+squeeze8 php5-dev=5.3.3-7+squeeze8
Скачиваем туда тарбол с исходниками.cd /usr/src
Распаковываем его:
Так как все расширения PHP принято обзывать php5-extention (например php5-tidy, php5-memcached, php5-mysql и т.д.), а имя/версия пакета будет создано на основе имени директории, то переименуем директорию:unzip eaccelerator-0.9.6.1.zip
mv eaccelerator-0.9.6.1 php5-eaccelerator-0.9.6.1Заходим в распакованную директорию:
cd php5-eaccelerator-0.9.6.1
Открываем конфиг и настраиваем под себя. Я, например, люблю когда кэш лежит там где он должен лежать по FHS - в /var/cache, а не в /tmp. А еще нужно поправить путь к логу, потому что у нас Debian, а там CentOS-вский путь:
vi eaccelerator.ini
Далее нужно PHP-зировать пакет - подогнать под API PHP:
phpizeИ теперь уже можно его конфигурировать:
./configure --with-eaccelerator-debug
Теперь скомпилируем нашу библиотеку eaccelerator.so:
make******************* НЕОБЯЗАТЕЛЬНЫЙ ЭТАП *********************
Если хочется управлять этим хозяйством через web-интерфейс, то создадим еще виртхост для Apache:
cat > eaccelerator.conf
Alias /eaccelerator /var/www/eaccelerator/<Directory /var/www/eaccelerator></Directory><Location /eaccelerator>
AllowOverride All
DirectoryIndex control.php
FCGIWrapper /var/www/roundcube/php-bin/php .php
Options +ExecCGI
AddHandler fcgid-script .php
Order allow,deny
Deny from all
Allow from 111.222.123.231
</Location>
Здесь я указываю Deny from all для секьюрности. Но потом по месту свой IP вставите.
Кроме того здесь нет ничего о хэндлерах PHP - опять же у каждого свое и универсального совета не бывает.
*********** КОНЕЦ НЕОБЯЗАТЕЛЬНОГО ЭТАПА ********************
А теперь сама дебианизация:
dh_make -s --indep --createorigТак как make мы уже руками сделали, то удаляем новые вызовы make:
Также нам надо вписать какие конкретно файлы войдут в пакет и в какую директорию они упадут в системе, где этот пакет будет устанавливаться (строчку eaccelerator.conf нужно пропустить, если Вы не проходили необязательный этап):grep -v makefile debian/rules > debian/rules.new
mv debian/rules.new debian/rules
cat > debian/installТеперь отказываемся от quilty:
modules/eaccelerator.so usr/lib/php5/20090626
eaccelerator.ini etc/php5/conf.d
control.php var/www/eaccelerator
eaccelerator.conf etc/apache2/conf.d
echo "1.0" > debian/source/format
А еще нам надо не забыть, что у нас кэш будет складываться в ту директорию, которая указана в файле eaccelerator.ini, который мы недавно правили. Поэтому создадим пост-установочный скрипт, который после установки пакета создаст нам эту директорию:
cat > debian/postinstТеперь попробуем собрать пакетик:
#!/bin/bash
mkdir /var/cache/eaccelerator
chmod 777 /var/cache/eaccelerator
debuild -us -ucИ вот он получился:
ls -l ../*deb
Комментариев нет:
Отправить комментарий