Ubuntu ~Apache - 運用のための準備~

○ コンテンツ管理用のユーザーを作成する

外部からサーバにアクセスして WEB コンテンツの管理を行うユーザーを作成します。
このユーザーはコンテンツ管理以外の権限を一切持たないようにすることで、万が一ユーザー情報を知られてもサーバへの被害を最小限にします。

ユーザー wwwuser を作成する

# adduser wwwuser
Adding user `wwwuser' ...
Adding new group `wwwuser' (1002) ...
Adding new user `wwwuser' (1003) with group `wwwuser' ...
The home directory `/home/wwwuser' already exists.  Not copying from `/etc/skel'.
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Changing the user information for wwwuser
Enter the new value, or press ENTER for the default
        Full Name []:
        Room Number []:
        Work Phone []:
        Home Phone []:
        Other []:
Is the information correct? [y/N] y

正しくユーザーが作成されたか確認します。

# cat /etc/passwd

wwwuser:x:1003:1002:,,,:/home/wwwuser:/bin/bash

ユーザー wwwusr を www-data グループに所属させる

# adduser wwwuser www-data
Adding user `wwwuser' to group `www-data' ...
Adding user wwwuser to group www-data
Done.

任意のグループにユーザーが正しく所属していることを確認します。

# cat /etc/group

www-data:x:33:wwwuser

コンテンツフォルダのグループを変更します。

# chgrp www-data /var/www

コンテンツフォルダのアクセス権を変更します。

# chmod 775 /var/www

cgi フォルダのグループを変更します。

# chgrp www-data /usr/lib/cgi-bin

cgi フォルダのアクセス権を変更します。

# chmod 775 /usr/lib/cgi-bin

 

○ cgi ディレクトリ配下に置いた画像や HTML が正しく処理されるようにする。

デフォルトの設定では、Apache は cgi-bin 配下に保存されたファイルはすべて cgi として扱います。
この状態では、画像ファイル(*.jpg や *.gif)や html コンテンツ(*.html) などが正しく処理されません。
対策として、設定ファイルに AddHandler を使ってそれぞれの拡張子に対応するハンドラを指定します。

# nano /etc/apache2/sites-available/default

    <Directory "/usr/lib/cgi-bin">
        AllowOverride None
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
        AddHandler image/jpeg .jpeg .jpg .jpe
    </Directory>

Apache を再起動して、cgi-bin ディレクトリに保存した画像などが正しく処理されることを確認します。

例) cgi-bin フォルダに test.jpg を保存して確認する

http://192.168.1.111/cgi-bin/test.jpg


自宅サーバーWebRing << 前 |ID=231 |次 >> 乱移動前後5表示サイト一覧