
Ubuntu 11.04 で LAMP サーバーを動作させています。問題は、Web サイトをターミナルから有効または無効にする必要があることです。すべての Web サイトにアクセスする必要があるため、http://localhost
あまり効率的ではありません。そこで、ネット上のチュートリアルを使用して VHOSTS を作成しました。これがそのコードです。
<VirtualHost *:80>
ServerAdmin webmaster@localhost
Servername site.com
ServerAlias www.site.com
DocumentRoot /home/starx/public_html/site/public
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /home/starx/public_html/site/public>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
nGen
ErrorLog ${APACHE_LOG_DIR}/site-error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/site-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>
今のところ、まだページにアクセスできませんhttp://site.com
が、それを使用してアクセスするとhttp://localhsot/
アクセスできます。
デフォルトを含む他のすべてのサイトを無効にし、1つのサイトのみを有効にしました。site
これを修正するにはどうすればいいでしょうか?
答え1
私はこれを機能させようとしていたのですが、少し調べてみると何がうまくいかなかったのかが分かりました。
Ubuntu 12.04 で xampp (lampp) 1.80 を実行しています。
開ける/opt/lampp/etc/httpd.conf
488行目を参照
# Virtual hosts
# Include etc/extra/httpd-vhosts.conf
から「#」を削除しますinclude
。
新規インストールではhttpd-vhosts.conf
、すぐには がロードされません。
答え2
によると/usr/share/doc/apache2/README.Debian.gz
、追加のサイトの定義を作成したい場合は、個々のサイト設定スニペットを に配置する必要があります/etc/apache2/sites-available/
(/etc/apache2/sites-available/default
例については を参照してください)。その後、a2ensite(8) コマンドと a2dissite(8) コマンドを使用して、特定のホスト上のサイトを有効または無効にすることができます。分散設定が大幅に変更されている場合、これは説明どおりに正確に動作しない可能性があることに注意してください。
このようにサイトを有効にしても、引き続き機能しない場合は、Web サーバーが新しいサイトの名前を、Web サーバーが割り当てたと認識している IP アドレスと一致する方法で解決できることを確認する必要があります。最も簡単な方法は、サーバーから を確認することです。また、クライアントが名前を解決して、問題のサーバーに到達できることも確認する必要があります (解決された IP は、サーバーが使用する IP と一致する必要はありません)。安全でないサイトの場合、 を使用し、接続が完了したら (プロンプトは表示されません)、次の 3 行を入力するのが最も簡単です (3 行目は空白ですが、3 回目に Enter キーを押す必要があります)。w3m https://my.new.secure.site
telnet my.new.site 80
GET / HTTP/1.1 ホスト: my.new.site
これらが機能する場合、他の問題はブラウザの問題です。最初の方法が成功し、2 番目の方法が失敗する場合は、ネットワーク層 (NAT、プロキシなど) に問題がある可能性があります。この問題のトラブルシューティング方法は、ネットワーク トポロジと存在するデバイスに大きく依存します。この状況に該当する場合は、詳細を記載した別の質問をしてください。
最初のテストが失敗した場合は、サーバーで使用可能なネーム サービスとサーバーに割り当てられた IP アドレスを再確認してください (ifconfig -a)。また、サイトのアクセス ログをチェックして、適切なタイミングで接続が行われていることを確認します。最後に、仮想ホストが IP ではなく名前でリッスンしていること、および VirtualHost ディレクティブで IP に基づいて / の結果をフィルターしていないことを確認します。
答え3
これがあなたが望んでいることかどうかはわかりません。
コードをこのシンプルなショートコードに置き換えます。
<VirtualHost *:80>
ServerAdmin admin@localhost
DocumentRoot YourDocumentRoot
ServerName site.com
ServerAlias www.site.com
ErrorLog localhost
CustomLog localhost-access_log common
</VirtualHost>
vhostの詳細については、こちらをご覧ください。ここ
答え4
DNS ルーティングが正しいことを確認するために、/etc/hosts ファイルに site.com と www.site.com を追加しましたか? nslookup site.com
DNS をテストしてみてください。
これが機能しないことを確認したい場合はhttp://localhost
、/etc/apache2/default、default-ssl ファイルを削除し、単一の仮想ホストを使用します。