
Ubuntu日本語フォーラム

ログインしていません。
Apache2の設定について教えて下さい、よろしくお願い致します。
現在、Ubuntu Server 11.04でApache2を使ってWEBページを公開する所までは出来ました。
自分の理想としては
アクセス可能 http://205.xxx.xxx.xxx/~username/
アクセス不可 http://205.xxx.xxx.xxx/
という形にしたいのですが、現在どちらからもアクセス可能になっています。
ブラウザからグローバルIPやドメイン名だけでアクセスすると
404 未検出 の様な感じになるようにしたいのですが、どう設定すればいいのか分かりません。
今は /home/username/の中にpublic_htmlというディレクトリを作り、そこに公開するhtmlファイル等を置いています。
よろしくお願いします。
オフライン
設定の仕方は色々有りそうですが、一例として /etc/apache2/sites-available/default に以下を記述すれば実現できるかと思います。
<Directory />
Order allow,deny
deny from all
</Directory>
Alias /~username /home/username/public_html
<Directory /home/username/public_html>
Options Indexes FollowSymLinks MultiViews
Order allow,deny
allow from all
</Directory>オフライン
vbkさん、お返事ありがとうございます。
教えて頂いたようにやってみましたが、どうも自分の環境では上手くいかないようです。
自分が使っている /etc/apache2/sites-available/default に該当する部分は
(/etc/apache2/sites-available/www と変更して使っています)
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /home/username/public_html/
<Directory />
Order allow,deny
deny from all
</Directory>
Alias /~pote /home/username/public_html
<Directory /home/username/public_html/>
Options Indexes FollowSymLinks MultiViews
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /home/username/public_html/cgi-bin/
<Directory "/home/username/public_html/cgi-bin/">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/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
</Directory>
</VirtualHost>
何か修正すべき点があるようでしたら、また助言の方よろしくお願いします。
オフライン
DocumentRootの行を削除するか、どこか別のディレクトリを指定してみてください。
DocumentRoot (外部から見た「/」) に~/public_htmlを指定しているため、alias先と同一になっています。
(Directoryに指定するパスは、外部から見たものではありません。)
オフライン
vbkさん、有難うございます。
>DocumentRootの行を削除するか、どこか別のディレクトリを指定してみてください。
このどちらの方法でも、僕が望んでいた動作をするようになりました。
>DocumentRoot (外部から見た「/」) に~/public_htmlを指定しているため、alias先と同一になっています。
>(Directoryに指定するパスは、外部から見たものではありません。)
また、この一文が自分には非常にわかりやすかったです。
このトピックとは直接関係の無い話題なのですが自分が作ったWEBページで
FLAVER 3.0という、Webページに動画を埋め込む感じのプレイヤーを使っていました。
DocumentRootの行を削除するか、どこか別のディレクトリを指定するという方法と取ると
このFLAVER 3.0がうまく動かなくなりました。
FLAVER 3.0の設定はサーバーのルート(最上段の階層)に FLAVER 専用の flaver3 と言うディレクトリを作成し
その中にプレイヤーSWFを収容するという形を取っていたので、DocumentRootを変更したことが影響して
動作が出来なくなったようです。
そこで教えて頂いた方法をすこし変えて
DocumentRoot /home/username/dummy/
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
Alias /~username/ /home/username/public_html/
<Directory /home/username/public_html/>
AllowOverride None
Options Indexes FollowSymLinks MultiViews
Order allow,deny
Allow from all
</Directory>
としてダミーのディレクトリを作って、その中にFLAVER 3.0を収納してみたら
IPアドレスからの直接のアクセスを防ぎつつ、FLAVER 3.0も動作するようになりました。
これで自分がやりたかった動作をするようになりました。
vbkさん、改めてお礼を申し上げます。
また、このトピックを興味を持って見てくれた皆様ありがとうございました。
オフライン