[開発メモ] お名前VPSのphp.ini (&にやられたの巻)
|
PHP Warning: file_get_contents() [<a href='function.file-get-contents'>function.file-get-contents</a>]: php_network_getaddresses: getaddrinfo failed: Temporary failure in name resolution in /var/www/vhosts/(ドメイン名)/httpdocs/(ファイル名).php on line 23, referer: http://www.(ドメイン名)/(ファイル名).php 数時間かけてあれやこれやと調べ,ほとんどあきらめかけていたところ,VPSコントロール パネルのWebエラーログをぼんやり見ていて「あっ」と思った. PHP Warning: file_get_contents(http://search.yahooapis.jp/WebSearchService/V1/webSearch?query=a&amp;appid=(ここは自分のappid)) [<a href='function.file-get-contents'>function.file-get-contents</a>]: failed to open stream: Connection refused in /var/www/vhosts/・・・(以下省略) そう,URLパラメータのセパレータ「&」(上のログの&はこのブログでの表示のため半角 をわざと全角にしています)が「&amp」になっているではないか!なんと・・・ php.iniを見てみると次のようになっていて,これだと通常は&として扱われるはずなのだが. ; The separator used in PHP generated URLs to separate arguments. ; Default is "&". ;arg_separator.output = "&amp;" もしやと思って,次の1行をphp.iniに挿入して,VPSコントロールパネルでhttpdを再起動 してみると・・・ arg_separator.output = "&;" ジャーん,うまく動きました!
お名前VPSのPHPのバージョンは5.1.6 (cli) (built: Sep 1 2009 22:28:56)なのだが,この バージョンに特有の問題か・・・? よくわからないけど,動いたからまあいいや. |





