ユーザー別の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

<IfModule mod_userdir.c>
  AliasMatch ^/([^/]+)/(.*) /home/$1/public_html/$2
</IfModule>

<Directory /home/*/public_html>
  # オーバーライト許可
  AllowOverride All
  # CGI 有効、SSI 有効
  Options Includes ExecCGI FollowSymLinks
  # アクセスはデフォルトで許可
  Order Allow,Deny
  # 全ホストからアクセス許可
  Allow from All
</Directory>

設定ファイル(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」の部分をコメントアウトします。
<IfModule mod_php5.c>
    <FilesMatch "\.ph(p3?|tml)$">
        SetHandler application/x-httpd-php
    </FilesMatch>
    <FilesMatch "\.phps$">
        SetHandler application/x-httpd-php-source
    </FilesMatch>
    # To re-enable php in user directories comment the following lines
    # (from <IfModule ...> to </IfModule>.) Do NOT set it to On as it
    # prevents .htaccess files from disabling it.
    <IfModule mod_userdir.c>
        <Directory /home/*/public_html>
#            php_admin_value engine Off
        </Directory>
    </IfModule>
</IfModule>

ubuntu/v1010/ユーザー別のwebページの用意.txt · 最終更新: 2018/03/18 09:56 (外部編集)
 
特に明示されていない限り、本Wikiの内容は次のライセンスに従います: CC Attribution-Share Alike 4.0 International
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki