we are sorry, we are open

27.10.2009

Постустановка Zend Optimizer

СисАдминство — Тэги: — Админ @ 20:47:52.

Каждый раз при установке Zend Optimizer почему-то возникает проблема с копированием нужных файлов инсталлятором из дистрибутива Zend Optimizer. Может я что-то не так делаю при установке, которая, к слову, заключается всего лишь в запуске инсталлятора и ответах на пару простых вопросов.
Вероятно проблема возникает из-за того, что я, чаще всего, ставлю PHP не как модуль Апача, а как CGI и, кроме того, зачастую ставлю несколько версий и вариантов PHP для нескольких версий MySQL )

Проблема довольно чётко выявляется по логам PHP:
[Tue Oct 27 08:24:36 2009] [error] [client 10.0.0.13] PHP Warning: Zend Optimizer for PHP 4.4.x cannot be found (expected at '/usr/local/Zend/lib/Optimizer-3.3.0/php-4.4.x/ZendOptimizer.so') - try reinstalling the Zend Optimizer in Unknown on line 0

И действительно папки «/usr/local/Zend/lib/Optimizer-3.3.0/php-4.4.x» нет, ну и, соответственно, файла «ZendOptimizer.so» тоже нет.
Зато в дистрибутиве Zend Optimizer, в директории «data», есть вот такие папки:
4_2_0_comp
4_2_x_comp
4_3_x_comp
4_4_x_comp
5_0_x_comp
5_1_x_comp
5_2_x_comp

По-моему, весьма показательные названия )
Проверяем — копируем папку с названием, соответствующим версии нашего PHP, в папку, упоминаемую в логах:
cp -r data/4_4_x_comp /usr/local/Zend/lib/Optimizer-3.3.0/php-4.4.x

Проверяем и убеждаемся, что ошибки более не появляются в логах.

В общем-то уже ура, но я предпочитаю устанавливать Zend Optimizer сразу для всех версий PHP, которые есть в дистрибутиве, ну-у-у… например, для того, чтобы не думать об этом при обновлении PHP. Поэтому для автоматизации процесса сделал небольшой shell-скрипт, который привожу здесь не тщеславия ради, а токмо чтобы не потерять его )

Собственно скриптик:
#!/bin/sh

[ $1 ] || { echo "`basename $0` dir_with_dist"; exit 1; }

dist="$1"
dir="/usr/local/Zend"

########### Do standart install:
$dist/install-tty

########### Do post install:

mkdir -p $dir/lib/Optimizer-3.3.0

cp $dist/data/ZendExtensionManager.so $dir/lib
cp $dist/data/ZendExtensionManager_TS.so $dir/lib

for i in `ls -d $dist/data/*_comp`
do
i=`basename $i`
echo -n "$i -> "
pdir=`echo ${i%*_comp} | tr '_' '.'`
echo "$pdir"
cp -r $dist/data/$i $dir/lib/Optimizer-3.3.0/php-$pdir
done

#eof

Дополнение от 29-10-2009

Тут ещё выяснилась проблема с Zend Optimizer под PHP5 под FreeBSD 7.2 amd64 — не работает с конфигурацией, которую генерит инсталлятор Zend Optimizer. Надо добавить ещё строчку «zend_optimizer.optimization_level=14»:
[Zend]
zend_optimizer.optimization_level=14
zend_extension_manager.optimizer=/usr/local/Zend/lib/Optimizer-3.3.0
zend_extension_manager.optimizer_ts=/usr/local/Zend/lib/Optimizer_TS-3.3.0
zend_optimizer.version=3.3.0a
zend_extension=/usr/local/Zend/lib/ZendExtensionManager.so
zend_extension_ts=/usr/local/Zend/lib/ZendExtensionManager_TS.so

   

Нет комментариев »

Комментариев пока нет.

Написать комментарий

Blue Captcha Image
Новый проверочный код

*

Последние комментарии:

Powered by WordPress (34 queries. 0,344 seconds)