Tuesday, 13 April 2010

Установка PHP htscanner на Debian - поддержка php_flag в .htaccess для PHP FastCGI / CGI

Офсайт проекта: http://pecl.php.net/package/htscanner

Ставим зависимости:
apt-get install -y php5-dev make patch


cd /usr/src
wget http://pecl.php.net/get/htscanner-0.9.0.tgz
# или зеркало
wget http://fastvps.googlecode.com/svn/trunk/packages/htscanner-0.9.0.tgz
tar -xf htscanner-0.9.0.tgz
cd htscanner-0.9.0
# накладываем патч, без него не будет работать php_flag
wget http://fastvps.googlecode.com/svn/trunk/patches/htscanner.patch
patch -p0 < htscanner.patch # следом накладываем патч для запрета перекрыти memory_limit wget http://fastvps.googlecode.com/svn/trunk/patches/deny_values.patch patch -p0 < deny_values.patch phpize ./configure make



Устанавливаем:
cp modules/htscanner.so /usr/lib/php5/20060613/


Или
make install


Но этого недостаточно, чтобы модуль подключился:
php -m | grep htscanner


Создаем конфиг:
vi /etc/php5/conf.d/htscanner.ini


[htscanner]
extension="htscanner.so"
; The configuration file htscanner needs to scan for php_* directives
config_file=".htaccess"
; The fallback docroot when htscanner can't determine the current docroot
default_docroot="/"
default_ttl=300
; Stop when an error occured in RINIT (no document root, cannot get path_translated,...)
stop_on_error = 0


Теперь создаем в корне сайта .htaccess со следующими строками (поиски по Гуглу и опрос знакомых подтвердили, у htscanner php_flag не работает в принципе):
php_flag register_globals On

но это не сработает почему-то :( А вот такой вариант отлично пашет:

php_value register_globals 1


Обращаю внимание, что после изменения .htaccess необходимо перезапустить рабочие процессы PHP, чтобы изменения применились:
killall -u username


В процессе поиска фикса насткнулся на следующие патчи для htscanner 0.9.0:
http://yourserveradmin.com/ik/htscanner-0.9.0.eol.patch и вот http://blog.hbis.fr/2009/04/02/htscanner-parser-patch/patch-htscanner-parser-20090401/ (как раз, вроде, на мою проблему).

No comments:

Post a Comment

Note: only a member of this blog may post a comment.