にわタコ's Labo

にわタコのちょっと専門的な試行錯誤

XAMPPでhtaccessを使用できるようにする(大雑把なメモ)

XAMPP(Apache)でhtaccessを使用できるようにするには、
の中で
AllowOverride
を設定する。

とりあえず
AllowOverride All
としておけば、
すべて使えるようになる。

httpd-vhosts.conf
に次のように設定した。


DocumentRoot "C:/ファイルへのパス"
ServerName vhosts.local

order deny,allow
Allow from localhost 127.0.0.1
AllowOverride All



※<Directory>が<VirtualHost>に内包される必要はない。

これでhtaccessが
指定したバーチャルドメインの中で使えるようになる。

ちなみに、これで上手く動かないときは
httpd.confのなかでAllowOverrideを探してAllにしてみるとか。。

そんなことをしたようなメモがあるけど
何をしたのか正確に思い出せないですすみません。。。

でも多分、httpd-vhost.confだけで大丈夫。

xamppでバーチャルホストを作成する

xampp に立てたサーバーには

http://localhost/

でアクセスするわけですが、
いくつもサイトを管理していると

ドメイン名的なものをそれぞれのサイトに割り当てて

http://mypage/

http://testsite.local/

みたいなのでアクセスできるようにしたくなります。

ドメインのようなものを仮想的に割り当てるのを

バーチャルホストと言うのですが

xamppでそれをやってみましょう。

xamppで、と言いつつも、まずはWindows側の設定。


C:\Windows\System32\drivers\hosts
というファイルを、

右クリック『管理者として実行』したメモ帳などを使って開きます。
127.0.0.1       localhost
最後にのように書いてあると思うので、
127.0.0.1       localhost

127.0.0.1       mypage

127.0.0.1       testsite.local
といった形で任意のドメイン的なものを書き加えます。


(もし実在するドメインを入力すると、

そこへのアクセスが強制的にインターネットではなく

ローカルのこのパソコンに接続するようになってしまいますので注意)

これができたら hots は保存して閉じます。

続いてxampp側の設定に行きます。

G:\xampp\apache\conf\extra\httpd-vhosts.conf

を開きます。
そして#が2つ付いているところを探してください。

##NameVirtualHost *:80

と、

##
##ServerAdmin postmaster@dummy-host.localhost

##DocumentRoot “G:/xampp/htdocs/dummy-host.localhost”

##ServerName dummy-host.localhost

##ServerAlias www.dummy-host.localhost

##ErrorLog “logs/dummy-host.localhost-error.log”

##CustomLog “logs/dummy-host.localhost-access.log” combined

##

があります。

#がひとつのところは説明です。
##の所が記入例です。

まずは、
##NameVirtualHost *:80 から ## をとってあげましょう。
NameVirtualHost *:80
(どのバーチャルホストにアクセスしても

同じページに行ってしまいおかしいと思っていたら

ここの##を取り忘れていました)

つぎに、

DocumentRoot “C:/xampp/htdocs”
ServerName localhost


といった具合にlocalhostを登録します。


これと同じような書式で


DocumentRoot “C:/xampp/htdocs/mypage”
ServerName mypage


と書けば、 mypage にブラウザからアクセスすると

先ほどのhostを参考にアクセスが自分のパソコンに行き、

それを受けたxamppはmypageに指定した

C:/xampp/htdocs/mypage
へ案内してくれます。

あとはそこにあるindex.htmlなりが表示されます。
C:/xampp/htdocs/ とは違う場所にアクセスを飛ばしたいときは、

同時にアクセス権を指定する必要があります。



ServerAdmin webmaster@localhost
DocumentRoot “C:/folder/testsite”
ServerName testsite.local

order deny,allow

#allow from ALL

Allow from localhost 127.0.0.1



といった具合に<Directory>でアクセス権を指定します。

さもなくば access forbidden! になったりするみたいです。

xamppで『Access forbidden! Error 403』が出現する

xamppをインストールして、
さあこれでローカルサーバーが動くはず!
とアクセスすると Access forbidden!
と言われてしまった。。

アクセス権の問題らしいが、
xampp\apache\conf\extra の
httpd-xampp.conf
の中で、 localhost からのアクセスを許可している部分を
IPで表記すると良くなるらしい。

という訳で最後の部分にあるここ

Order deny,allow
Deny from all
#Allow from 127.0.0.0/8
Allow from localhost
ErrorDocument 403 /error/HTTP_XAMPP_FORBIDDEN.html.var

のところを、

Order deny,allow
Deny from all
#Allow from 127.0.0.0/8
Allow from localhost 127.0.0.1
ErrorDocument 403 /error/HTTP_XAMPP_FORBIDDEN.html.var

にする。(127.0.0.1を追加)

色々いじったのでどれで改善されたのか若干不明確だが、
多分これで治ったと思われます。

続いてバーチャルホストに
『Access forbidden! Error 403』と言われて困ったので、
次はその記事です。