ubuntu10.04での CGIとPHP5の設定 | ☆BACKSTREET☆

☆BACKSTREET☆

"A BOY ON THE BACKSTREET"
たっど オフィシャルブログ  ※Ameba非公認ww



Ubuntu 10.04 で HTTPサーバーをたてたなら CGI・PHPを動かそう


無料レンタルサーバーなどでは CGIの設置を禁止しているところがいかに多いことか

自宅サーバーなら 自分のやりたい放題に出来る 誰も咎めることもない


ということで CGIとPHPの設定をしていこう





Apache2上での CGIの設定



Ubuntuでは インストールした時点で もうすでに殆ど設定してあります

微調整だけでいいと思いそれ程変更はしてませんが



CGIスプリクトを置く場所の指定を変えるくらいで済みました





設置場所は特別ここに設置 とういことはなくどこでもいいです


自分の管理しやすいところでいいです



ぼくの場合 htmlファイルを管理すると同時に殆ど移動しないでCGIも管理出来るようにと


/var/www 内に設置しました


/var/www にcgi-binというディレクトリを設置


以下 記事はCGIスプリクトをここに置くと仮定します ご自分の環境に合せ書き直してください



はじめに CGIを置くディレクトリ作成



 $ sudo mkdir /var/www/cgi-bin





設置場所変更の記述 apacheに/var/www/cgi-bin/ と書き換えます



書き換えるファイルは /etc/apache2/sites-available/default でOK



 $ sudo gedit /etc/apache2/sites-available/default



ScriptAlias /cgi-bin/ /var/www/cgi-bin/   ←Aliasでcgi-binの場所を関連付ける
<Directory "/var/www/cgi-bin">        ←cgi-binのディレクトリの場所を書き換える
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch   ←ExecCGIで CGIを許可
Order allow,deny
Allow from all
</Directory>




次に /etc/apache2/mods-enabled/mime.conf での設定



 $ sudo gedit /etc/apache2/mods-enabled/mime.conf



 #AddHandler cgi-script .cgi
      ↓
 AddHandler cgi-script .cgi .pl  ←#を削除して .pl を追記




たったこれだけで Apacheの設定はOKです




Apache を再起動しましょう



 $ sudo /etc/init.d/apache2 restart







CGIが動くか 確認してみよう



その前に cgi-bin ディレクトリの権限を 自分にします




 $ sudo chown 自分の名前:グループ /var/www/cgi-bin






エディタ等で 以下のスプリクトを書いて 「 hello.cgi 」 として cgi-bin に保存


perlは /usr/bin/perl にあるので これからのCGIスクリプトはそれに合わせます




#!/usr/bin/perl


print "Content-type: text/html\n\n";
print "<HTML><BODY>\n";
print "<H2>Hello! WORLD</H2>\n";
print "</BODY></HTML>\n";
exit;




ブラウザを開いて アクセスしてみよう


http://hogehoge.com/cgi-bin/hello.cgi

または http://localhost/cgi-bin/hello.cgi



下のように表示されれば成功です





Hello! WORLD





どうですか、表示されたでしょうか



もしエラーでしたら たぶん cgi-bin ディレクトリが開放されてないか

hello.cgi のパーミッションが  755 になっていないからだと思います


パーミッションを変更



 $ sudo chmod 777 /var/www/cgi-bin


 $ sudo chmod 755 /var/www/cgi-bin/hello.cgi




これで もう一度 アクセスしてみて下さい




今度は表示されるかと思います





これで CGIの設定は OKです









どうしても CGIが動かないのは 


もしかして 転送法が間違えてるせいかもしれません



CGIの場合は 殆どが アスキーモードです


バイナリーモードになってるかと




CGIスクリプトを配布しているサイトに 転送法が書かれていると思います


何も書かれてなければ 画像以外はアスキーモードでよいと思います



CGIで使うのファイルはFTPで 転送するようにして


 
よく確認して行ってください。












PHPの動作確認


ぼくは今回は 特に設定を換えていません


そのままで 動作したので


すでに設定してあるかと思い


細かく設定もできますが


動作確認だけにしときました


また機会があったときにでも細かな設定法を





エディタ等で 以下の記述をして 「 info.php 」として


Apacheで設定した ドキュメントルートへ保存して下さい





<?php
phpinfo();
?>




保存しましたら ブラウザを開き アクセスしてみましょう


http://localhost/info.php



下の図のように 表示されれば 動いてます





☆BACKSTREET☆




表示されたでしょうか



項目にApache2とあるはず


あればリンクしているのでOKです


というか あるから表示されるのですけれど







これで PHPの動作確認を終わります。












それでは

お疲れ様です。。。











ペタしてね