質問: ローカル開発用の仮想ホストをセットアップする方法 apache2とともにインストールされたubuntu 11.04および関連するすべてのパッケージがインストールされています。私はほとんどのブログを試し、グーグルや他のフォーラムを親友にしたが、この問題を解決することはできない。開発用にローカルシステムに名前付き仮想ホストを設定する必要があります。/var/wwwにディレクトリ「vivek」を作成し、デフォルトのindex.htmlをコピーして、いくつかの要素を編集しました。次のように、ファイルvivek.comを/etc/apache2/sites-availableに追加しました。# ensure that apache listens on port 80 listen 80 # listen for virtual host requests on all ip addresses namevirtualhost *:80 <virtualhost *:80> servername www.vivek.com documentroot /var/www/vivek # other directives here <directory /> options followsymlinks allowoverride none </directory> <directory /var/www/vivek/> options indexes followsymlinks multiviews allowoverride none order allow,deny allow from all </directory> </virtualhost> <virtualhost *:80> serveradmin webmaster@localhost documentroot /var/www <directory /> options followsymlinks allowoverride none </directory> <directory /var/www/> 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> 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> つまり、次の行を追加しました# ensure that apache listens on port 80 listen 80 # listen for virtual host requests on all ip addresses namevirtualhost *:80 <virtualhost *:80> servername www.vivek.com documentroot /var/www/vivek # other directives here <directory /> options followsymlinks allowoverride none </directory> <directory /var/www/vivek/> options indexes followsymlinks multiviews allowoverride none order allow,deny allow from all </directory> </virtualhost> 「sites-available」フォルダーに既に存在していたデフォルトのファイルに(編集する前にデフォルトのファイルのバックアップを取った)これを/ etc/hostsにあるhostsファイルに追加しました127.0.0.1 localhost 127.0.1.1 vivek-pc 127.0.0.1 www.vivek.com エラーなしで次の操作を実行しました。root@vivek-pc:~# a2ensite vivek.com enabling site vivek.com. run '/etc/init.d/apache2 reload' to activate new configuration! root@vivek-pc:~# /etc/init.d/apache2 reload * reloading web server config apache2 www.vivek.comを入力すると、/var/wwwにデフォルトのindex.htmlが表示されますが、編集されたフォルダー/ var/www/vivekには存在しません。後で、/var/wwwからindex.htmlを編集しましたが、同じindex.htmlを取得していました(デフォルトの編集前)。すべてのindex.htmlは編集されましたが、apacheにはwww.vivek.comをリクエストしたときに表示される隠しファイルがいくつかあるようです。そして皮肉なことに、再起動後-apacheは問題なく起動しましたが、私のサイト-www.vivek.comは表示されませんでした(隠されたindex.htmlでも、神はどこにいるのかを知っています!!)。接続する」助けてください。私はこれを1週間から設定しようとしてきましたが、成功しませんでした。
回答: 後で、/ var/wwwからindex.htmlを編集しましたが、まだ同じindex.htmlを取得していました(編集前のデフォルト)。すべてのindex.htmlは編集されましたが、apacheにはwww.vivek.comをリクエストしたときに表示される隠しファイルがいくつかあるようです。 これを読むと、キャッシュファイルを表示していると思います。押す代わりに f5 または[更新]ボタンを押すと、更新時にキャッシュをスキップします ctrl + f5。または、コマンドラインプログラムcurl(デフォルトではインストールされません)を使用します。使用例:$ curl -i http://localhost/ http/1.1 200 ok date: sat, 02 jul 2011 00:42:01 gmt server: apache/2.2.17 (ubuntu) last-modified: fri, 01 jul 2011 04:12:49 gmt etag: "4507-b1-4a6fa3b114149" accept-ranges: bytes content-length: 177 vary: accept-encoding content-type: text/html <html><body><h1>it works!</h1> <p>this is the default web page for this server.</p> <p>the web server software is running but no content has been added, yet.</p> </body></html> 注:クリーンなapacheインストールで次のことを行いました。 最初の構成ファイルを/etc/apache2/sites-available/vivek.comに追加します (/etc/apache2/sites-available/defaultuntouchedのままにしてください) sudo a2ensite vivek.comを実行します sudo /etc/init.d/apache reloadを実行します 私はあなたと同じメッセージを受け取ります。ただし、サーバーは起動に失敗しました。 sudo /etc/init.d/apache2 stopを使用してサーバーを停止し、sudo /etc/init.d/apache2 startを使用してサーバーを再起動すると、サーバーはまったく起動を拒否しました。エラーログ/var/log/apache2/error.logを調べると、いくつかのエラーが見つかりました。[sat jul 02 00:48:09 2011] [notice] graceful restart requested, doing restart apache2: could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for servername [sat jul 02 00:48:09 2011] [warn] namevirtualhost *:80 has no virtualhosts (98)address already in use: make_sock: could not bind to address 0.0.0.0:80 no listening sockets available, shutting down unable to open logs そのため、ポート80が使用されているようです。ただし、apacheがまだ開始されていない場合は、sudo netstat -tplnを実行して、ポート80でリッスンしていないことを確認できます。構成を確認し、listen 80行を構成ファイル/etc/apache2/sites-available/vivek.comから削除する必要があると結論付けました。その後、サーバーを再起動し、curlを使用して、サーバーがリクエストに正しく応答していることを確認しました。 kiss 、2番目のvhostブロックは/etc/apache2/sites-available/defaultで覆われているため冗長です。次の設定ファイルは/etc/apache2/sites-available/vivek.comです:<virtualhost *:80> servername www.vivek.com documentroot /var/www/vivek # other directives here <directory /> options followsymlinks allowoverride none </directory> <directory /var/www/vivek/> options indexes followsymlinks multiviews allowoverride none order allow,deny allow from all </directory> </virtualhost>