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

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

<Directory /home/*/public_html>
  # オーバーライト許可
  AllowOverride All
  # CGI 有効、SSI 有効
  Options Includes ExecCGI FollowSymLinks
  # 全ホストからアクセス許可
  Require all granted
</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」の部分をコメントアウトします。
<FilesMatch ".+\.ph(p[345]?|t|tml)$">
    SetHandler application/x-httpd-php
</FilesMatch>
<FilesMatch ".+\.phps$">
    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
</FilesMatch>
# Deny access to files without filename (e.g. '.php')
<FilesMatch "^\.ph(p[345]?|t|tml|ps)$">
    Order Deny,Allow
    Deny from all
</FilesMatch>

# Running PHP scripts in user directories is disabled by default
#
# 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_flag engine Off
    </Directory>
</IfModule>

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