lighttpd & php5-cgiで発生するエラーについて
Windowsで環境つくらないといけなくなったので、VirtualPCでDebian入れてlighttpd(fcgi) + php5-cgiの環境つくった。
とりあえずphp5-cgiとphp-pearとlighttpdをapt-getでインストールして、lighttpdの設定して、symfonyインストールしてsvnでリポジトリからファイル取ってきていざ確認しようとしたら
Notice: Undefined index: QUERY_STRING in /usr/share/php/symfony/request/sfWebRequest.class.php
QUERY_STRINGが未定義って出る。あれ?
とりあえず変数「$_SERVER」の中身見てみると
Array ( [SERVER_SOFTWARE] => lighttpd/1.4.13 [SERVER_NAME] => project [GATEWAY_INTERFACE] => CGI/1.1 [SERVER_PROTOCOL] => HTTP/1.1 [SERVER_PORT] => 80 [SERVER_ADDR] => 0.0.0.0 [REQUEST_METHOD] => GET [REDIRECT_STATUS] => 200 [REQUEST_URI] => / [REMOTE_ADDR] => 192.168.0.1 [REMOTE_PORT] => 49652 [CONTENT_LENGTH] => 0 [SCRIPT_FILENAME] => /home/works/www/index.php [SCRIPT_NAME] => /index.php [DOCUMENT_ROOT] => /home/works/www/ [HTTP_HOST] => project [HTTP_USER_AGENT] => Mozilla/5.0 (Windows; U; Windows NT 6.0; ja; rv:1.8.1.4) Gecko/20070515 Firefox/2.0.0.4 [HTTP_ACCEPT] => text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5 [HTTP_ACCEPT_LANGUAGE] => ja,en-us;q=0.7,en;q=0.3 [HTTP_ACCEPT_ENCODING] => gzip,deflate [HTTP_ACCEPT_CHARSET] => Shift_JIS,utf-8;q=0.7,*;q=0.7 [HTTP_KEEP_ALIVE] => 300 [HTTP_CONNECTION] => keep-alive [ORIG_SCRIPT_NAME] => /index.php [ORIG_SCRIPT_FILENAME] => /home/works/www/index.php [PHP_SELF] => /index.php [REQUEST_TIME] => 1183548192 [argv] => Array ( ) [argc] => 0 )
うん。「QUERY_STRING」がない。ためしに「http://xxxxxxx/?hoge=hoge」でアクセスすると
Array ( ...略... [QUERY_STRING] => hoge=hoge ...略... )
ということで一応出てくるっぽい。えーこれ普通だっけ?
んなわけないということでみてみたら「/etc/lighttpd/conf-available/10-cgi.conf」で
cgi.assign = ( ".pl" => "/usr/bin/perl", ".php" => "/usr/bin/php-cgi", ".py" => "/usr/bin/python", )
とか書いてあるのを見つけた。これって。。。
cgi.assign = ( ".pl" => "/usr/bin/perl", # ".php" => "/usr/bin/php-cgi", ".py" => "/usr/bin/python", )
ためしにコメントにしてlighttpdの再起動を行って動作確認してみると
Array ( [FCGI_ROLE] => RESPONDER [SERVER_SOFTWARE] => lighttpd/1.4.13 [SERVER_NAME] => project [GATEWAY_INTERFACE] => CGI/1.1 [SERVER_PORT] => 80 [SERVER_ADDR] => 192.168.0.2 [REMOTE_PORT] => 49822 [REMOTE_ADDR] => 192.168.0.1 [SCRIPT_NAME] => /index.php [PATH_INFO] => [SCRIPT_FILENAME] => /home/works/www/index.php [DOCUMENT_ROOT] => /home/works/www/ [REQUEST_URI] => / [QUERY_STRING] => [REQUEST_METHOD] => GET [REDIRECT_STATUS] => 200 [SERVER_PROTOCOL] => HTTP/1.1 [HTTP_HOST] => project [HTTP_USER_AGENT] => Mozilla/5.0 (Windows; U; Windows NT 6.0; ja; rv:1.8.1.4) Gecko/20070515 Firefox/2.0.0.4 [HTTP_ACCEPT] => text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5 [HTTP_ACCEPT_LANGUAGE] => ja,en-us;q=0.7,en;q=0.3 [HTTP_ACCEPT_ENCODING] => gzip,deflate [HTTP_ACCEPT_CHARSET] => Shift_JIS,utf-8;q=0.7,*;q=0.7 [HTTP_KEEP_ALIVE] => 300 [HTTP_CONNECTION] => keep-alive [HTTP_CACHE_CONTROL] => max-age=0 [PATH] => /sbin:/bin:/usr/sbin:/usr/bin [SHELL] => /bin/bash [USER] => root [PHP_FCGI_CHILDREN] => 4 [PHP_FCGI_MAX_REQUESTS] => 10000 [PHP_SELF] => [argv] => Array ( ) [argc] => 0 )
あーそういうことですかー。