CGI版PHP設定の落とし穴

2016/04/05 技術系 投稿者:千本木

サーバで稼働しているモジュール版PHPとは別バージョンのPHPを動作させる必要がある場合に、CGI版PHPを利用することが良くあります。

弊社スタッフの一人が例によってCGI版PHPをインストールしていたのですが、CGI版として動作させるPHPのconfigureが悪いのか、パスの設定が悪いのかうまく動作しないことがありましたので紹介いたします。

弊社スタッフの設定内容

弊社スタッフが行った作業は以下の通りです。

  • 設定したいPHPのソースファイルを持ってきてCGI版PHPが使用できるように「–enable-cgi」オプションを付けてインストールした。
  • Apache設定で特定ディレクトリに対してScriptAliasを設定し、CGI版PHPの実行ファイルを持ってきた。
  • CGI版でPHPを動作させたいディレクトリで、.htaccessを使用しAddHandlerで.phpをマッピングした。

ところが実際に他のサーバで動作実績もあったにも関わらず、CGI版PHPが動作しない事態となりました。

ちなみに設置した.htaccessは以下の通りです。

上手くいった設定方法

AddHandlerではなく、SetHandlerで.htaccessに設定したところ、動作しました。

原因

なぜAddHandlerはダメでSetHandlerは動作したのでしょうか。

結論から言うと、AddHandlerよりもSetHandlerの方が優先されるため、.htaccessで.phpに対しAddHandler設定を行っても無視されてしまったことになります。

察しの良い方はすぐお分かりかと思いますが、RPMでインストールしたPHP5.6が生成するApache設定ファイルに以下の記述がありました。

今回インストールしたPHP5.6では、PHPのハンドラをマップする際にAddHandlerではなくSetHandlerを使っていました。

AddHandlerとSetHandlerの違い

では、AddHandlerとSetHandlerはどのように違うのでしょうか。

Apache公式ページによるとAddHandlerとSetHandlerは以下のように説明されています。

両方ともハンドルをマップする際に使用されますが、AddHandlerは拡張子に対してマップさせるのに対して、SetHandlerは特定のファイルに対してマップさせる違いがあります。また、SetHandlerはデフォルトのハンドラをオーバーライド(上書き)するという特徴があります。

まとめ

理由が分かってしまえばなんてことない設定ですが、設定に慣れていれば慣れているほど見落としやすいところかもしれません。

もしCGI版PHPがうまく動作しない方がいらっしゃれば、お試しください。

カレンダー

      1
2345678
9101112131415
16171819202122
23242526272829
3031     
    123
45678910
11121314151617
18192021222324
252627282930 
       
 123456
78910111213
14151617181920
21222324252627
28293031   
       
     12
3456789
10111213141516
17181920212223
24252627282930
31      
   1234
567891011
12131415161718
19202122232425
2627282930  
       
1234567
891011121314
15161718192021
22232425262728
293031    
       
     12
3456789
10111213141516
17181920212223
24252627282930
       
  12345
6789101112
13141516171819
20212223242526
2728     
       
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
   1234
567891011
12131415161718
19202122232425
262728293031 
       
 123456
78910111213
14151617181920
21222324252627
282930    
       
1234567
891011121314
15161718192021
22232425262728
293031    
       
    123
45678910
11121314151617
18192021222324
25262728293031
       
  12345
6789101112
13141516171819
20212223242526
27282930   
       
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
    123
45678910
11121314151617
18192021222324
252627282930 
       
 123456
78910111213
14151617181920
21222324252627
28293031   
       
1234567
891011121314
15161718192021
22232425262728
29      
       
    123
45678910
11121314151617
18192021222324
25262728293031
       
 123456
78910111213
14151617181920
21222324252627
28293031   
       
      1
2345678
9101112131415
16171819202122
23242526272829
30      
   1234
567891011
12131415161718
19202122232425
262728293031 
       
 123456
78910111213
14151617181920
21222324252627
282930    
       
    123
45678910
11121314151617
18192021222324
25262728293031
       
  12345
6789101112
13141516171819
20212223242526
27282930   
       
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
      1
2345678
9101112131415
16171819202122
232425262728 
       
   1234
567891011
12131415161718
19202122232425
262728293031 
       
1234567
891011121314
15161718192021
22232425262728
293031    
       
     12
3456789
10111213141516
17181920212223
24252627282930
       
  12345
6789101112
13141516171819
20212223242526
2728293031  
       
1234567
891011121314
15161718192021
22232425262728
2930     
       
    123
45678910
11121314151617
18192021222324
25262728293031
       
 123456
78910111213
14151617181920
21222324252627
28293031   
       
      1
2345678
9101112131415
16171819202122
23242526272829
30      
   1234
567891011
12131415161718
19202122232425
262728293031 
       
 123456
78910111213
14151617181920
21222324252627
282930    
       
     12
3456789
10111213141516
17181920212223
2425262728  
       
  12345
6789101112
13141516171819
20212223242526
2728293031  
       
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
    123
45678910
11121314151617
18192021222324
252627282930 
       
 123456
78910111213
14151617181920
21222324252627
28293031   
       
      1
2345678
9101112131415
16171819202122
23242526272829
30      
   1234
567891011
12131415161718
19202122232425
262728293031 
       
1234567
891011121314
15161718192021
22232425262728
293031    
       

カテゴリー

PRODUCE ネディアプロデュース
群馬データセンター
群馬の法人ITサポートサービス Wide Net[ワイドネット]
ワイドオフィス
イヤホンのブランドでハイクラスを誇る | n+um(エニューム)