セキュリティーは重要だけれど、それよりもユーザー権限でCGI やPHP が実行されることのほうが大切、と思ったり思わなかったり・・・という話は前回した。前回の環境はめちゃめちゃになってしまったので(動いているけれど)、改めて1から作りつつ勉強していく。
今回は大きく3回にわける。
1回目では基本構成とsuExec、それからテストのためのバーチャルホスト設定。2回目ではPHP とsuPHP、3回目では総集編としてWordPress 環境を構築して動作確認を行う。
# 重複する内容もあるから、さらにもう一度別の機会にまとめ直したい
スポンサードリンク
環境
いつもの通りUbuntu Server 10.04 LTS をVMware Player で簡易構築する。
$ sudo loadkeys jp $ sudo sed -i".bak" -e 's/\/\/us.archive.ubuntu.com/\/\/ftp.jaist.ac.jp/g' /etc/apt/sources.list $ sudo apt-get upodate $ sudo apt-get upgrade -y $ sudo apt-get install ssh $ sudo apt-get install vim
Apache2
Apache2 のインストール
$ sudo aptitude -y install apache2
perl パスを通す
$ sudo ln -s /usr/bin/perl /usr/local/bin/perl
再起動
$ sudo /etc/init.d/apache2 restart * Restarting web server apache2 [ OK ]
動作確認
サーバーのIP アドレスにアクセスしてApache2 が応答すれば成功。
It works!
This is the default web page for this server.
The web server software is running but no content has been added, yet.
参考文献
バーチャルホストの設定
IP アドレスでアクセスするのは前項で終了し、今後は外部からtest.example.com としてアクセスできるようにしておき、各種テストを行う。
設定ファイル作成
$ mkdir /home/casey/public_html/ $ sudo vi /etc/apache2/sites-available/test.example.com
<VirtualHost *:80> ServerName test.example.com DocumentRoot /home/casey/public_html ErrorLog /var/log/apache2/test.example.com.error.log CustomLog /var/log/apache2/test.example.com.access.log combined LogLevel warn </VirtualHost>
再起動
$ sudo a2ensite test.example.com $ sudo /etc/init.d/apache2 reload * Reloading web server config apache2 [ OK ]
テストファイル作成
テスト用のindex.html を作成する。
$ vi public_html/index.html
「worked!」とだけ書いて保存。
動作確認
hosts ファイルを編集するなどして、test.example.com のindex.html が表示されたら成功。
参考文献
suExec
html ファイルの動作に成功した。今度はperl スクリプト(CGI)をユーザー権限で動作させる。
有効化
$ sudo aptitude -y install apache2-suexec-custom $ sudo a2enmod suexec $ sudo /etc/init.d/apache2 restart
設定変更
変更1
$ sudo vi /etc/apache2/suexec/www-data
次を追記する:
/home/casey/public_html
変更2
$ sudo vi /etc/apache2/sites-enabled/test.example.com
次を追記する:
SuexecUserGroup casey casey
変更3
$ sudo vi /etc/apache2/mods-enabled/mime.conf
次を有効にする:
AddHandler cgi-script .cgi
再起動
$ sudo /etc/init.d/apache2 restart
テストファイル
「サーバーアナライザー – futomi’s CGI Cafe」からダウンロードしたファイルを転送し、実行権限を付与する。1ファイルだけなので、ファイルの転送はSSH クライアントを使った方法でも良いし、WinSCP などを使っても良いだろう。FTP サーバーを構築するのは面倒だ。
転送が完了したら実行権限を付与する。
$ chmod 700 public_html/servana.cgi
動作確認
「owner 権限で実行」と表示され、ユーザー権限で動作していることが確認できる。
参考文献
→ 次回に続く
コメント