FastNetMon

Показаны сообщения с ярлыком htscanner. Показать все сообщения
Показаны сообщения с ярлыком htscanner. Показать все сообщения

вторник, 13 апреля 2010 г.

Включение Register_Globals при использовании HTScanner

Чтобы включить Register_Globals для определенного сайта добавьте в корневой .htaccess следующие строки:
php_value register_globals 1


После этого подождите 2 минуты, пока применятся настройки и Register_Globals включиться только для этого сайта. Если хотите применить настройки срочно - откройте настройки любого www домена и не изменяя их сохраните их, это приведет к перезапуску Апача и немедленному применению настроек.

Установка 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/ (как раз, вроде, на мою проблему).

PHP FastCGI + php_admin_value, php_admin_flag, php_value, php_flag

Как известно, эти команды указываются в .htaccess и должны поидее читаться модулем PHP для Апача, но когда последний не используется, а используются, скажем, PHP FastCGI / CGI, то эти директивы будут просто-напросто проигнорированы и эффекта не возымеют.

Но есть проблема - есть фикс! Вот что говорят ребята из Zend: http://kb.zend.com/index.php?View=entry&EntryID=259

А именно:

Using htscanner - htaccess support for PHP
Description: Allow one to use htaccess-like file to configure PHP per directory, just like apache's htaccess.
It is especially useful with fastcgi.


А вот ссылка на этот самый HTScanner: http://pecl.php.net/package/htscanner

Краткое описание от авторов этого самого мегаэкстеншена:
Allow one to use htaccess-like file to configure PHP
per directory, just like apache's htaccess. It is especially useful with fastcgi (ISS5/6/7, lighttpd, etc.).
This package was originally developed by Bart Vanbrabant. Old versions are available
from: http://files.zoeloelip.be/htscanner


Еще есть фича - если у Вас используется FastCGI, но при этом подключен PHP как модуль Апача, то все будет ок - php_* директивы будут проигнорированы, а вот если используется только FastCGI и PHP модуль в принципе отключен, то будет ошибка :) Но тут приходит на модуль модуль mod_fakephp, который подавляет выдачу ошибок при обнаружении опций PHP в .htaccess: http://www.dmi.me.uk/code/apache/mod_fakephp/

За наводку огромный респект arp`у: http://highloaded.blogspot.com/2010/04/htaccess-phpflag-with-fastcgi-on-debian.html и вот еще отличная статья с интересным подходом: http://dromok.ru/?p=104

Вот мой мануал по настройке этого чуда: http://phpsuxx.blogspot.com/2010/04/php-htscanner-debian-phpflag-htaccess.html А вот мануал в моем блоге: http://phpsuxx.blogspot.com/2011/01/modfakephp-debian.html