Apacheの設定 ユーザーHOMEのpublic_htmlをルートにするための設定

Apacheの設定

ここでやることは、Linuxユーザのhomeディレクトリにあるpublic_htmlディレクトリを公開するようにApacheを設定します。

ユーザを追加した場合に即時に作業領域がほしいので/etc/skelにpublic_htmlディレクトリを作成し、その他必要なファイルも配置しておく。

これをやっておくと、Linuxユーザを追加するだけで速攻でVirtualHostが使用できる。

ちなみにこの場合のURLは「http://xxxxx/~追加したユーザ」になる。

また、WordPressを配置するためのVirtualHostの設定も行うことにする。

WordPressの配置はドメイン直下にするので「http://xxxxx」になる。

この設定をするとデフォルトの設定を変えてしまうことになるるので、デフォルトはサブドメイン(test.brokendish.org)に退避することにする。

 

・文字コードの設定

デフォルトの文字コードをUTF-8にする

vi /etc/apache2/conf.d/charset
 
#AddDefaultCharset UTF-8
 
↓
 
AddDefaultCharset UTF-8

・ユーザーディレクトリの有効化

$ sudo a2enmod userdir

・/etc/apache2/mods-enabled/userdir.conf(シンボリックリンク)ができるので確認する

root@hogehoge:/etc/apache2/mods-enabled# cat userdir.conf
 
        UserDir public_html
        UserDir disabled root
 
                AllowOverride FileInfo AuthConfig Limit Indexes
                Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
 
                        Order allow,deny
                        Allow from all
 
                        Order deny,allow
                        Deny from all


userdir.confはデフォルトのままで使えそう。

 
・ホームディレクトリに以下のディレクトリを作成する

$ mkdir /home/hogeusr/public_html

 
●サブドメイン用のVirtualHostの設定
(defaultを書き換えてしまうのでバックアップはとっておこう)

$ cp default defaultBAK
$ sudo vi /etc/apache2/sites-available/default
<VirtualHost *:80>
        ServerAdmin webmaster@localhost
        ServerName test.brokendish.org
 
        DocumentRoot /var/www/
 
                Options FollowSymLinks
                AllowOverride None
 
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
</VirtualHost>

●WordPress用のVirtualHostの設定

$ sudo vi /etc/apache2/sites-available/wordPress
<VirtualHost *:80>
        ServerAdmin webmaster@localhost
	ServerName brokendish.org
	DocumentRoot /home/wordpress/
 
		 Options Indexes FollowSymLinks MultiViews
		 AllowOverride All
		 Order allow,deny
		 allow from all
 
        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
 
                AllowOverride None
                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                Order allow,deny
                Allow from all
 
        ErrorLog /var/log/apache2/error.log
 
        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn
 
        CustomLog /var/log/apache2/access.log combined
 
    Alias /doc/ "/usr/share/doc/"
 
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
</VirtualHost>

※「Options Indexes FollowSymLinks MultiViews」の行だけど、

この「Indexes」を付けておくと「index.html」がない場合はディレクトリを表示してしまうので、必要に応じて削除してね。


●ユーザーディレクトリ用のVirtualHostの設定
・/etc/apache2/sites-enabledに上で作った「virtualHome」へのシンボリックリンクを作成する

# cd /etc/apache2/sites-enabled
# ln -s ../sites-available/virtualHome 000-virtualHome

 

●WordPress用のVirtualHostの設定
000-Defaultがあると思うので、これは003-Defaultにしておく

# cd /etc/apache2/sites-enabled
# mv 000-Default 003-Default
# ln -s ../sites-available/wordPress 000-wordPress

・Apacheを再起動

$ sudo /etc/init.d/apache2 restart

・テスト表示用のHTMLファイルを作成

$ cd ~/publuc_html
 
$ echo "testPaGe DeBiAn">index.html

・テスト表示してみる

http://hogehoge.org/~hogeusr/

・PHPの稼働確認

PHPインフォを表示させるPHPファイルを作成する

$ cd ~/publuc_html
 
$ echo "<!--? phpinfo() ?-->;>info.php

表示してみる

http://hogehoge.org/~hogeusr/info.php

・ユーザを追加した場合public_htmlを配置するように

/etc/skelにディレクトリ、ファイルを用意しておく

ルートユーザで作業

$ sudo -s
 
# cd /etc/skel
 
# mkdir public_html
 
# cd public_html
 
# echo "testPaGe Debian Server Skelton">index.html
 
# echo "<!--? phpinfo() ?-->">info.php

・テストユーザを作成して試してみる

・ユーザー作成「testuser」

# adduser testuser
 
※adduserコマンドを使うとホームディレクトリの作成、

/etc/Skelからのコピー、パスワード設定等を対話式で設定できる

・表示してみる

http://hogehoge.org/~testuser/index.html

http://hogehoge.org/~testuser/info.php

・testuserを削除する

# userdel -r testuser

※-rオプションを付けてホームディレクトリごと削除する


 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です