WEBユーザー公開設定・独自ドメイン設定 | ITオフィスサポートとシステム開発|システムガーディアン AWSクラウド導入|東京都中央区八丁堀

ITサポート出張、ITシステム開発・保守をワンストップで|AWSクラウド|東京都中央区八丁堀

ITオフィスサポートとシステム開発|システムガーディアン AWSクラウド導入|東京都中央区八丁堀

電話でのお問い合わせ

WEBユーザー公開設定・独自ドメイン設定

   

Apache Apacheユーザディレクトリ 公開

WEBユーザディレクトリ

Userdirモジュールの機能を使うことにより、1つのドメインで無数のユーザーを公開出来る事ができます。

http://example.com/~user/

http://example.com/user/

みたいな感じ。
プロバイダの無料WEBスペースをかりるとこのようになっていると思います。

 

それではやってみよう!٩(๑❛ᴗ❛๑)

Apacheメイン設定ファイル編集

# vi /etc/httpd/conf/httpd.conf

<IfModule mod_userdir.c>
#
# UserDir is disabled by default since it can confirm the presence
# of a username on the system (depending on home directory
# permissions).
#
UserDir disabled

#
# To enable requests to /~user/ to serve the user’s public_html
# directory, remove the “UserDir disabled” line above, and uncomment
# the following line instead:
#
#UserDir public_html

</IfModule>

↓変更

<IfModule mod_userdir.c>
#
# UserDir is disabled by default since it can confirm the presence
# of a username on the system (depending on home directory
# permissions).
#
UserDir disable

#UserDir disable ← #を追加(コメントアウト)

#
# To enable requests to /~user/ to serve the user’s public_html
# directory, remove the “UserDir disable” line above, and uncomment
# the following line instead:
#
#UserDir public_html

UserDir public_html ← 行頭の#を削除(コメント解除)

AliasMatch ^/testuser(.*) /home/testuser/public_html/$1 ←(testuserユーザーのみhttp://example.com/~testuser/のように~でアクセスできるようにする)

AliasMatch ^/([^/]+)/(.*) /home/$1/public_html/$2←(全てのユーザーでhttp://example.com/userdir/ユーザー名/でアクセスできるようにする)

</IfModule>

#
# Control access to UserDir directories. The following is an example
# for a site where these directories are restricted to read-only.
#
#<Directory /home/*/public_html>
# AllowOverride FileInfo AuthConfig Limit
# Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
# <Limit GET POST OPTIONS>
# Order allow,deny
# Allow from all
# </Limit>
# <LimitExcept GET POST OPTIONS>
# Order deny,allow
# Deny from all
# </LimitExcept>
#</Directory>

 

 

※以下を追加します。

<Directory /home/*/public_html>
AllowOverride All
Options IncludesNoExec ExecCGI FollowSymLinks
<Limit GET POST OPTIONS>
Order allow,deny
Allow from all
</Limit>
<LimitExcept GET POST OPTIONS>
Order deny,allow
Deny from all
</LimitExcept>
</Directory>

 

 

# service httpd restart

これで各ユーザのpublic_html以下のファイルがWEB上に公開できます٩(๑❛ᴗ❛๑)۶一般的なWEBユーザ公開設定はここでおしまいです。

お疲れ様です。

 

 

 

 

しかし・・問題が!!

WEBユーザの貸し出している人が独自ドメインを使いたいといった場合に問題が発生します。

画像がどうも独自ドメインの方では読み込めない

意図しない独自ドメインもUserdirディレクティブが効いてしまう。

 

どっちも致命的ですね・・・;
Userdirディレクティブとバーチャルホストは共存しない仕様のようです。

 

 

どうしようもないの?

方法はある!

Userdirモジュールをメインファイルで有効にせず、WEBユーザを使用したいドメインのみで設定する事で解となります。

 

 

具体的な設定例

# vi /etc/httpd/conf/httpd.conf

 

 

<IfModule mod_userdir.c>
#
# UserDir is disabled by default since it can confirm the presence
# of a username on the system (depending on home directory
# permissions).
#
#UserDir disabled←無効を確認

#
# To enable requests to /~user/ to serve the user’s public_html
# directory, remove the “UserDir disabled” line above, and uncomment
# the following line instead:
#
#UserDir public_html←無効にする

 

 

WEBユーザディレクトリ用バーチャルホストファイル作成

# vi vhost_webuser.com.conf

 

 

<VirtualHost *:80>
ServerName www.webuser.com
ServerAlias webuser.com
#  DocumentRoot /home
#  UserDir public_html

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

<Directory /home/*/public_html>
AllowOverride All
Options IncludesNoExec ExecCGI FollowSymLinks
<Limit GET POST OPTIONS>
Order allow,deny
Allow from all
</Limit>
<LimitExcept GET POST OPTIONS>
Order deny,allow
Deny from all
</LimitExcept>
</Directory>

</VirtualHost>

<VirtualHost *:443>
SSLEngine on
SSLCertificateFile /etc/pki/tls/certs/ftp.crt
SSLCertificateKeyFile /etc/pki/tls/certs/server.key

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

ServerName www.webuser.com
ServerAlias webuser.com
</VirtualHost>

 

 

独自ドメイン用WEBユーザバーチャルホストファイル

# vi vhost_newhoge.net.conf

<VirtualHost *:80>
ServerName newhoge.net
DocumentRoot /home/testx2/public_html
ErrorLog logs/virtual-error_log
CustomLog logs/virtual-access_log combined env=!no_log
<Directory “/home/testx2/public_html”>
AllowOverride all
</Directory>
</VirtualHost>

 

 

<virtualhost *:80>
ServerName newhoge.net
Redirect / http://www.newhoge.net
</virtualhost>

 

 

 

# service httpd restart
httpd を停止中: [ OK ]
httpd を起動中: [ OK ]

 

お疲れ様です(ㆁᴗㆁ✿)

かなりマニアックな設定ですが、いかがだったでしょうか。
お疲れ様でした☆

 - Linux/UNIX, テクニカル,

  関連記事

HTTPS 方法
HTTPS化対応 SEOでのGoogle評価引き継ぎの方法

検索やコンバージョンに力を入れたいならば、まずはコーポレイトサイトはSSL対応しましょう。メリットばかりなので、是非対応されると良いかと。今回はHTTPS化移行 …

gmail スパムフィルター
Gmailのスパムフィルターとの1日戦争

目次1 Gmailのスパムフィルターと戦う事になった理由2 まずはメールサーバーの停止3 MXlookup4 SPF認証5 ホワイトフィルターを作成6 迷惑メー …

ゆるいハッキング大会
第10回 ゆるいハッキング大会 in TOKYO 無事終了

昨日土曜日、都内中央区で開催したゆるいハッキング大会inTOKYOは無事終了。     社内の勉強・趣味として数名で始めたこの会ですが、今回 …

Plesk インストール linux
旧バージョンのPleskのインストール模索

現在はPlesk12が最新版ですが、既存で動いているPlesk11の検証もたまにあります。そこで今回検証環境を用意する事に。ご存知だとは思いますが、各サーバ会社 …

dice
DICE 固定IPなしでドメインを取得 ダイナミックDNS 【dynamic-DNS】

目次1 固定IPじゃなくてもドメインは持てるのか?2 可能だ。そう、DICEとDDNSならね。3 ではDICEとDDNSとは何なのか4 まずは己を知れ!5 DD …

AWS ELB ALB Aplication Load Balancing
AWS ELB(ALB)ロードバランサーを使ってURLの振り分け

  新しいELBであるAWS ALB(Aplication Load Balancing)を使う利点として、URLの振り分けが簡単に出来るようになりま …

plesk12_20151015._s
Plesk12の主なログの場所

基本的にログ集計ソフトで管理しているので、直接見ることは殆どありませんが、いざとなった時に詳細に調べる為には、ログの場所を把握しておきたいものです。 &nbsp …

VPN トンネル環境構築
VPNトンネル環境の構築 windows server 2008

移転作業中の新設の支社にISPの正式なネット環境&アプライアンスのVPNが整うまでの間にXiとwindows server2008R2を使って本社や各拠点と繋ぐ …

中央区新川 ちゃんこ鍋
時津洋 ちゃんこ鍋 中央区新川の名店【はらぺこ日記】

新川のちゃんこの名店へ   実は私、ちゃんこ鍋というものを食べたことがなく さらに初めてのちゃんこ鍋を有名店で頂くということでわくわくしています☆ & …

鶴屋吉信 日本橋 東京
【日本橋 】鶴屋吉信 カウンターで楽しむ手作り和菓子 【はらぺこ日記】

    先日の休みにカウンターで出来たての和菓子を出してくれるという【鶴屋吉信 】を目当てに日本橋にいってきました。   &nbs …

トップページ