Linuxサーバー構築~その5~
<はじめに>
Linuxサーバー構築シリーズその5です。
今回はperlで書いたCGIをWebサーバーで動かします。
<作業内容>
単にCGIを動かすだけであれば特に変更は必要ないですが、
まずは/etc/httpd/conf/httpd.confの中身を見てみます。
User,Groupにapacheとあります。
そこでOSのユーザーを見てみると、apacheというユーザーが確認できます。
おそらくhttpdでCGIを実行するときは、
このapacheユーザーを使うということだと思います。
また、/etc/httpd/conf/httpd.confにはこのような記述もあります。
ここにOptions ExecCGIと記述があることによって、
/var/www/cgi-binフォルダ内で、CGIの実行が許可されます。
それではCGIを作成します。
test.cgi
#!/usr/bin/perl print "Content-type: text/html\n\n"; print "Hello world";
ファイルのアクセス権を755とし、
/var/www/cgi-bin/test.cgiとして保存します。
ここでlsコマンドに-Zオプションをつけて、selinuxのラベルを確認しておきます。
あまり詳しくはないのですが、
この、httpd_sys_script_exec_tというラベルがついていないと、
CGIが上手く動かないような気がします。
もし、CGIが動かない原因としてラベルが疑われるようであれば、
chcon unconfined_u:object_r:httpd_sys_script_exec_t:s0 /var/www/cgi-bin/test.cgi
というコマンドでラベルの貼り換えが可能です。
ここまで済めば動作確認です。
test.cgiにブラウザからアクセスしてみます。
無事にCGIにアクセスできました。
<まとめ>
今回の記事まででapachを使って
CGIを動かすことができるようになりました。
前回、今回はhttpを使ったアクセスに限定していましたが、
次回以降mod_sslをインストールして
httpsでアクセスする方法も書いていこうと思います。