====== ユーザー別のWEBページの用意 ======
===== ファイル転送について =====
ファイル転送は、セキュリティが低いftpではなく、sftpを使ってもらいます。\\
sftp用にアカウントを作ると、sshでログインできてしまうので、これを禁止します。\\
$ sudo vi /etc/ssh/sshd_config
Subsystemの書き換えと、ファイルの最後に今回作るグループ(wwwusr)の設定を書き加えます。\\
%u は自動的にユーザー名に置き換わります。
:
#Subsystem sftp /usr/lib/openssh/sftp-server
Subsystem sftp internal-sftp
:
:
# groupがwwwusrの場合の設定
Match group wwwusr
# sftpのみ使用可
ForceCommand internal-sftp
# 自分のディレクトリをルートとする
ChrootDirectory /home/%u
sshの設定を再読み込みします。
$ sudo /etc/init.d/ssh reload
===== グループの作成 =====
apache2用のグループ、wwwusrを作成します。
$ sudo groupadd wwwusr
===== ユーザーとフォルダの作成 =====
グループ(wwwusr)に所属する、ユーザー(hoge)を作成します。\\
ホームディレクトリは手動で作るので、-M オプションを指定。\\
ホームディレクトリは root:root でないと、sftpが使ないので注意。
$ sudo useradd hoge -g wwwusr -M # ユーザーの作成
$ sudo passwd hoge # パスワードの設定
$ sudo mkdir /home/hoge # ホームディレクトリの作成
$ sudo mkdir /home/hoge/public_html # html用のディレクトリ作成
# オーナーの変更
$ sudo chown hoge:wwwusr /home/hoge/public_html
ここで一旦、sshで繋がらない事と、sftpで繋がる事を確認してください。
\\
とりあえずチェック用の、ダミーページを作成しておきます。
$ sudo vi /home/hoge/public_html/index.html
中身は適当に
Welcome to hoge!!
===== Apache2の設定 =====
apache用の設定ファイルwwwusrを作成。\\
AliasMatchで全てのページが引っかかってしまうので、設定ファイルは最後読み込まれるように、\\
文字コード順が他の設定ファイルより後ろに来るようにしています。
$ sudo vi /etc/apache2/sites-available/wwwusr
AliasMatch ^/([^/]+)/(.*) /home/$1/public_html/$2
# オーバーライト許可
AllowOverride All
# CGI 有効、SSI 有効
Options Includes ExecCGI FollowSymLinks
# アクセスはデフォルトで許可
Order Allow,Deny
# 全ホストからアクセス許可
Allow from All
設定ファイル(wwwusr)と、モジュール(userdir)を有効にし、apache2を再起動。
$ sudo a2ensite wwwusr
$ sudo a2enmod userdir
$ sudo service apache2 restart
http://サーバー名/hoge/ にアクセスし、「Welcome to hoge!!」と表示されれば成功です。\\
===== 全てのフォルダでphpを動かす =====
全てのフォルダでphpを動かしたい場合は、php5.confを弄ります。
$ sudo vi /etc/apache2/mods-available/php5.conf
「php_admin_value engine Off」の部分をコメントアウトします。
SetHandler application/x-httpd-php
SetHandler application/x-httpd-php-source
# To re-enable php in user directories comment the following lines
# (from to .) Do NOT set it to On as it
# prevents .htaccess files from disabling it.
# php_admin_value engine Off