PR

[Ubuntu] レン鯖御用達 suExec と suPHP 環境を構築する(1)

セキュリティーは重要だけれど、それよりもユーザー権限でCGI やPHP が実行されることのほうが大切、と思ったり思わなかったり・・・という話は前回した。前回の環境はめちゃめちゃになってしまったので(動いているけれど)、改めて1から作りつつ勉強していく。

今回は大きく3回にわける。

1回目では基本構成とsuExec、それからテストのためのバーチャルホスト設定。2回目ではPHP とsuPHP、3回目では総集編としてWordPress 環境を構築して動作確認を行う。

  1. 1回目(本記事)
    1. Apache2 の環境構築
    2. バーチャルホストの設定
    3. suExec 環境の構築
  2. 2回目
    1. PHP 環境の構築
    2. suPHP 環境の構築
  3. 3回目
    1. 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 権限で実行」と表示され、ユーザー権限で動作していることが確認できる。

参考文献

→ 次回に続く

コメント