За последние 24 часа нас посетили 18407 программистов и 1656 роботов. Сейчас ищут 1768 программистов ...

No input file specified: php 5.3, fastcgi, php-fpm, lighttpd

Тема в разделе "Установка PHP", создана пользователем hardj, 31 май 2010.

  1. hardj

    hardj Активный пользователь

    С нами с:
    17 ноя 2009
    Сообщения:
    9
    Симпатии:
    0
    Беда приключилась, не знаю куда копать. Даже гугла о чем спросить неясно...сильно расплывчато получается.

    Предистория.
    Был vds с lighttpd. PHP был пропатчен и работал как fpm. (php-5.2.6, пакет собран ребятами из поддержки хостинга)
    На сервере крутится несколько сайтов, часть из них - на базе kohana.
    Для ЧПУ в kohana использовались такие правила mod_rewrite:
    Код (Text):
    1.  
    2. 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):
    1.  
    2. fastcgi.server    = ( ".php" =>                                                                          
    3.         ((                                                                                                
    4.                 "socket" => "/var/www/vhost/site1.ru/run/fastcgi.socket",                                              
    5.                 "broken-scriptfilename" => "enable"                                                      
    6.         ))                                                                                                
    7. )                                                                                                        
    3) php-5.3.2 (cgi.fix_pathinfo=1 - в php.ini указано)
    4) php-fpm версии 0.6.

    5) в пулах php-fpm каждый сайт настроен на работу под своим uid/gid. права на скрипты - есть.

    Код (Text):
    1.  
    2.                 <section name="pool">                                                                                                      
    3.                     <value name="name">site1</value>                                                                                  
    4.                     <value name="listen_address">/var/www/vhost/site1.ru/run/fastcgi.socket</value>                                  
    5.                         <value name="listen_options">                                                                                      
    6.                                 <value name="backlog">-1</value>                                                                            
    7.                                 <value name="owner">site1</value>                                                                        
    8.                                 <value name="group">site1</value>                                                                        
    9.                                 <value name="mode">0660</value>                                                                            
    10.                         </value>                                                                                                            
    11.                         <value name="php_defines">                                                                                          
    12.                           <value name="error_log">/var/www/vhost/site1.ru/log/phperror.log</value>                                      
    13.                           <value name="upload_tmp_dir">/var/www/vhost/site1.ru/tmp</value>                                              
    14.                         </value>                                                                                                            
    15.                         <value name="user">site1</value>>                                                                                
    16.                         <value name="group">site1</value>                                                                                
    17.                         <value name="pm">                                                                                                  
    18.                                 <value name="style">static</value>                                                                          
    19.                                 <value name="max_children">1</value>                                                                        
    20.                                 <value name="apache_like">                                                                                  
    21.                                         <value name="StartServers">1</value>                                                                
    22.                                         <value name="MinSpareServers">1</value>                                                            
    23.                                         <value name="MaxSpareServers">3</value>                                                            
    24.                                 </value>                                                                                                    
    25.                         </value>                                                                                                            
    26.                         <value name="request_terminate_timeout">0s</value>                                                                  
    27.                         <value name="request_slowlog_timeout">5s</value>                                                                    
    28.                         <value name="slowlog">/var/www/vhost/site1.ru/log/phpslow.log</value>                                            
    29.                         <value name="rlimit_files">1024</value>                                                                            
    30.                         <value name="rlimit_core">0</value>                                                                                
    31.                         <value name="chroot"></value>                                                                                      
    32.                         <value name="chdir">/var/www/vhost/site1.ru/htdocs</value>                                                        
    33.                         <value name="catch_workers_output">yes</value>                                                                      
    34.                         <value name="max_requests">500</value>                                                                              
    35.                         <value name="allowed_clients">127.0.0.1</value>                                                                    
    36.                         <value name="environment">                                                                                          
    37.                                 <value name="PATH">/usr/bin:/bin</value>                                                                    
    38.                                 <value name="TMP">/var/www/vhost/site1.ru/tmp</value>                                                    
    39.                                 <value name="MALLOC_CHECK_">2</value>                                                                      
    40.                         </value>                                                                                                            
    41.                 </section>                                                                                                                  
     
  2. hardj

    hardj Активный пользователь

    С нами с:
    17 ноя 2009
    Сообщения:
    9
    Симпатии:
    0
    Что-то новое.

    Поднял fastcgi без fpm (php запускает сам lighttpd)

    Код (Text):
    1.  
    2. fastcgi.server    = ( ".php" =>                                                                                                
    3.        ((                                                                                                                      
    4.                "bin-path" => "/usr/bin/php-cgi",                                                                                
    5.                "socket" => "/tmp/php.socket",                                                                                  
    6.                "max-procs" => 2,                                                                                                
    7.                "idle-timeout" => 20,                                                                                            
    8.                "bin-environment" => (                                                                                          
    9.                        "PHP_FCGI_CHILDREN" => "4",                                                                              
    10.                        "PHP_FCGI_MAX_REQUESTS" => "10000"                                                                      
    11.                ),                                                                                                              
    12.                "bin-copy-environment" => (                                                                                      
    13.                        "PATH", "SHELL", "USER"                                                                                  
    14.                ),                                                                                                              
    15.                "broken-scriptfilename" => "enable"                                                                              
    16.        ))                                                                                                                      
    17. )                                                                                                                              

    - урлы типа index.php/blabla работают.
    Собака зарыта все таки в fpm.

    Стучим в бубен далее.