====== ユーザー別の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.conf AliasMatch ^/([^/]+)/(.*) /home/$1/public_html/$2 # オーバーライト許可 AllowOverride All # CGI 有効、SSI 有効 Options Includes ExecCGI FollowSymLinks # 全ホストからアクセス許可 Require all granted 設定ファイル(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 # Deny access to raw php sources by default # To re-enable it's recommended to enable access to the files # only in specific virtual host or directory Order Deny,Allow Deny from all # Deny access to files without filename (e.g. '.php') Order Deny,Allow Deny from all # Running PHP scripts in user directories is disabled by default # # 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_flag engine Off