Беда приключилась, не знаю куда копать. Даже гугла о чем спросить неясно...сильно расплывчато получается. Предистория. Был vds с lighttpd. PHP был пропатчен и работал как fpm. (php-5.2.6, пакет собран ребятами из поддержки хостинга) На сервере крутится несколько сайтов, часть из них - на базе kohana. Для ЧПУ в kohana использовались такие правила mod_rewrite: Код (Text): url.rewrite-repeat-if-not-file = ( "^/(.*)$" => "index.php/$1" ) И все замечательно работало. Но выражение "не мешайте технике работать" почему то забылось, и решил я обновить php до 5.3. Поставил php 5.3.2 (с php-fpm) с dotdeb.org. Сайты без kohana завелись на ура. А вот с kohana - засада. При открытии http://site1.ru/ получаю "No input file specified". При открытии http://site1.ru/index.php - работает нормально (соответственно только главная страница). С отключенным rewrite - http://site1.ru/index.php/about/ - опять "No input ..." То есть проблема в урлах типа /index.php/blabla, Теперь они не работают. Создается впечатление что в 5.3 как то подругому заработал FastCGI - может виноваты переменные окружения PATH_INFO, SCRIPT_FILENAME? Тут как то все запутано, не хватает знаний. В инфе по переходу на 5.3 вроде ведется речь о каких то изменениях в CGI/FastCGI, но изучение http://ru2.php.net/manual/en/migration53.sapi.php не дало никаких светлых мыслей. Может кто сталкивался с подобными багами? Любые мысли, потому как свои уже иссякли. Что используется: 1) debian lenny 2) lighttpd-1.4.26 Код (Text): fastcgi.server = ( ".php" => (( "socket" => "/var/www/vhost/site1.ru/run/fastcgi.socket", "broken-scriptfilename" => "enable" )) ) 3) php-5.3.2 (cgi.fix_pathinfo=1 - в php.ini указано) 4) php-fpm версии 0.6. 5) в пулах php-fpm каждый сайт настроен на работу под своим uid/gid. права на скрипты - есть. Код (Text): <section name="pool"> <value name="name">site1</value> <value name="listen_address">/var/www/vhost/site1.ru/run/fastcgi.socket</value> <value name="listen_options"> <value name="backlog">-1</value> <value name="owner">site1</value> <value name="group">site1</value> <value name="mode">0660</value> </value> <value name="php_defines"> <value name="error_log">/var/www/vhost/site1.ru/log/phperror.log</value> <value name="upload_tmp_dir">/var/www/vhost/site1.ru/tmp</value> </value> <value name="user">site1</value>> <value name="group">site1</value> <value name="pm"> <value name="style">static</value> <value name="max_children">1</value> <value name="apache_like"> <value name="StartServers">1</value> <value name="MinSpareServers">1</value> <value name="MaxSpareServers">3</value> </value> </value> <value name="request_terminate_timeout">0s</value> <value name="request_slowlog_timeout">5s</value> <value name="slowlog">/var/www/vhost/site1.ru/log/phpslow.log</value> <value name="rlimit_files">1024</value> <value name="rlimit_core">0</value> <value name="chroot"></value> <value name="chdir">/var/www/vhost/site1.ru/htdocs</value> <value name="catch_workers_output">yes</value> <value name="max_requests">500</value> <value name="allowed_clients">127.0.0.1</value> <value name="environment"> <value name="PATH">/usr/bin:/bin</value> <value name="TMP">/var/www/vhost/site1.ru/tmp</value> <value name="MALLOC_CHECK_">2</value> </value> </section>
Что-то новое. Поднял fastcgi без fpm (php запускает сам lighttpd) Код (Text): fastcgi.server = ( ".php" => (( "bin-path" => "/usr/bin/php-cgi", "socket" => "/tmp/php.socket", "max-procs" => 2, "idle-timeout" => 20, "bin-environment" => ( "PHP_FCGI_CHILDREN" => "4", "PHP_FCGI_MAX_REQUESTS" => "10000" ), "bin-copy-environment" => ( "PATH", "SHELL", "USER" ), "broken-scriptfilename" => "enable" )) ) - урлы типа index.php/blabla работают. Собака зарыта все таки в fpm. Стучим в бубен далее.