WampServerで仮想ホストを作成する方法
WAMPServer 3により、このプロセスがはるかに簡単になりました。
WAMPServerの一部として提供されているユーティリティからほとんどすべてを行うことができます。
project.siteを含むフォルダーを内部に作成します。これは、C:\wamp\www\
ディレクトリの下、またはのような完全に別のフォルダにありますC:\websites
。
EGを選択した場所内C:\websites\project1\www
または下にフォルダを作成しますc:\wamp\www\project1\www
localhostwampmanager->localhost
を開きAdd a Virtual Host
、ホームページの[ツール]セクションの下にあるリンクをクリックします。
次のようなページが表示されます。
各フィールドの上の手順で指定されているようにフィールドに入力します
仮想ホスト構成が作成されます。
次に、DNSキャッシュを再起動する必要があります。これは、このようなwampmanagerメニューから実行できますright click wampmanager->Tools->Restart DNS
。DNSキャッシュが再起動され、Apacheも停止して再起動されます。wampmanagerアイコンが再び緑色になると、すべてが完了します。
次に、簡単なindex.php
ファイルを作成するか、上記で作成したフォルダーにサイトをインストールする必要があります。
VHが呼び出されたとproject.dev
すると、WAMPServerホームページの[仮想ホスト]セクションにその名前が表示されます。
このメニューからサイトを起動するか、アドレスバーEGの新しいドメイン名を使用してサイトを起動することができますproject1.dev
。
古いWAMPServer2.5メカニズム、またはすべてを手動で実行する場合
WampServer 2.5以降では概念が変更されており、この変更には十分な理由があります。
WampServerでは、プロジェクトを\wamp\www\subfolder
構造内に保持している場合でも、プロジェクトごとに仮想ホストを作成することを強くお勧めします。
仮想ホストのドキュメント
仮想ホストの例
WampServerホームページ(\wamp\www\index.php
)は、すべてのプロジェクトに対して仮想ホストを作成したことを想定しているため、作成した場合にのみ正しく機能します。
歴史
WampServerを使用する初心者がPHPApacheとMySQLを習得しやすくするために、フォルダーの下にサブフォルダーを作成することをお勧めし\wamp\www\
ます。
wamp
|
|
|
|
これらのサブフォルダーは、「プロジェクト」というメニューの下のWampServerホームページにリンクとして表示され、これらのリンクにはへのリンクが含まれlocalhost/subfoldername
ます。
簡単なチュートリアルでのみ使用可能
これにより、完全な初心者の生活が楽になり、たとえば、次のチュートリアルでPHPコーディングを学ぶ人にとっては完全に受け入れられました。ただし、後でライブのホストサーバーにコピーする実際のWebサイトを開発するときに使用することは意図されていませんでした。実際、このメカニズムを使用した場合、ライブサイトの構成が開発構成と一致しないため、問題が発生することがよくありました。
実際のウェブサイト開発の問題。
この理由はもちろん、wampのデフォルトのDocumentRoot設定が
DocumentRoot "c:/wamp/www/"
サブフォルダーの名前に関係なく。構造またはサイトを照会するPHPコードを頻繁に使用するこのメントは、開発WampServerで実行したときに、ライブのホストサーバーで実行したときに受け取る情報とは異なる情報を受け取りました。ここで、DocumentRoot構成はWebサイトの上部にあるフォルダーを指します。ファイル階層。この種のコードは、WordPressやJoomlaなどの多くのフレームワークやCMSに存在します。
例えば
project1というプロジェクトが保持されていてwamp\www\project1
、次のように正しく実行されていないとします。localhost/project1/index.php
これは、問題のPHPコマンドの一部によって報告されるものです。
$_SERVER['HTTP_HOST'] = localhost
$_SERVER['SERVER_NAME'] = localhost
$_SERVER['DOCUMENT_ROOT'] = c:/wamp/www
これで、仮想ホスト定義を使用してそのサイトを正しく定義http://project1
し、WAMPServer開発サイトでの結果が、ライブホスト環境で受信した結果と一致するように実行した場合。
$_SERVER['HTTP_HOST'] = project1
$_SERVER['SERVER_NAME'] = project1
$_SERVER['DOCUMENT_ROOT'] = c:/wamp/www/project1
この違いは最初は些細なことのように思えるかもしれませんが、たとえばWordPressのようなフレームワークやJoomlaのようなCMSのいずれかを使用する場合、サイトをライブサーバーに移動するときに問題が発生する可能性があります。
WampServerで仮想ホストを作成する方法
実際、これはどのウィンドウのApacheサーバーでも基本的に同じように機能するはずですが、Apache構成ファイルが見つかる場所だけが異なります。
Apacheで最初の仮想ホストを作成する手順は3つあり、すでに1つ定義している場合は2つだけです。
- 仮想ホスト定義を作成します
- 新しいドメイン名をHOSTSファイルに追加します。
- 仮想ホスト定義ファイルを含むhttpd.confの行のコメントを解除します。
ステップ1、仮想ホスト定義を作成します
httpd-hosts.conf
WampServer用に存在するというファイルを編集します
\wamp\bin\apache\apache2.4.9\conf\extra\httpd-vhosts.conf
(Apacheのバージョン番号は異なる場合があります。続行する前に脳に働きかけてください)
このファイルを初めて編集する場合は、デフォルトのサンプルコードを削除してください。役に立たないのです。
に住んでいるproject1というサイトの定義を作成したいと思います
\wamp\www\project1
非常に重要です。まず、localhostが引き続き機能することを確認する必要があります。これにより、このファイルに配置する最初のVHOST定義になります。
<VirtualHost *:80>
DocumentRoot "c:/wamp/www"
ServerName localhost
ServerAlias localhost
<Directory "c:/wamp/www">
Options Indexes FollowSymLinks
AllowOverride All
Require local
</Directory>
</VirtualHost>
ここで、プロジェクトを定義します。もちろん、これは、新しいプロジェクトを開始するときに、プロジェクトごとに行います。
<VirtualHost *:80>
DocumentRoot "c:/wamp/www/project1"
ServerName project1
<Directory "c:/wamp/www/project1">
Options Indexes FollowSymLinks
AllowOverride All
Require local
</Directory>
</VirtualHost>
注:各仮想ホストは独自にDocumentRoot
定義されています。仮想ホスト定義に追加できる他の多くのパラメーターもあります。Apacheのドキュメントを確認してください。
さておき
Apacheでの仮想ホストの動作方法:このファイルの最初の定義もデフォルトサイトになるため、ブラウザーで使用されるドメイン名が実際に定義された仮想ホストドメインと一致しない場合、localhostをファイルの最初のドメインにします。ハッキングの試みがあなたのIPアドレスを使用するだけの場合にロードされるサイトです。したがって、このドメインのApacheセキュリティが常に設定されていることを確認すると
Require local
外部アドレスからの偶発的なハッキングはエラーを受け取り、PCに侵入しませんが、ドメインのスペルを間違えると、WampServerと同じPCを使用しているため、WampServerのホームページが表示されますlocal
。
ステップ2:
新しいドメイン名をHOSTSファイルに追加します。次に、仮想ホスト定義で使用したドメイン名をHOSTSファイルに追加して、Windowsがそれを見つける場所を認識できるようにする必要があります。これはDNSAレコードの作成に似ていますが、この場合はこの特定のPCでのみ表示されます。
編集 C:\windows\system32\drivers\etc\hosts
ファイルには拡張子がなく、そのままにしておく必要があります。.txt
より良いエディタがない場合は拡張機能を追加しようとする可能性があるため、メモ帳に注意してください。無料で非常に優れたエディターであるNotepad ++をダウンロードすることをお勧めします。
また、これは保護されたファイルであるため、管理者権限で編集する必要があるため、[管理者として実行]メニューオプションを使用してエディターを起動します。
これらの編集を完了すると、hostsファイルは次のようになります。
127.0.0.1 localhost
127.0.0.1 project1
::1 localhost
::1 project1
ApacheはIPV6に対応し、ブラウザはIPV4またはIPV6、あるいはその両方を使用するため、ここにIPV4ループバックアドレス127.0.0.1
とIPV6ループバックアドレスの定義が必要であることに注意してください::1
。どちらを使用するかをどのように決定するかはわかりませんが、IPV6スタックがオンになっている場合はどちらでも使用でき、ほとんどのウィンドウOSはXPSP3以降で使用できます。
ここで、Windowsにドメイン名キャッシュを更新するように指示する必要があるため、[管理者として実行]メニューオプションを使用してコマンドウィンドウを再度起動し、次の手順を実行します。
net stop dnscache
net start dnscache
これにより、Windowsはドメイン名キャッシュをクリアして再ロードします。再ロードすると、HOSTSファイルが再度読み取られるため、ドメインが認識されますproject1
。
手順3:仮想ホスト定義ファイルを含むhttpd.confの行のコメントを解除します。
httpd.confを編集し、wampmanager.exeメニューを使用して、正しいファイルを編集していることを確認します。
httpd.confでこの行を見つけてください
そして、#
を削除してその行のコメントを解除します。
Apacheを実行しているときにこの変更をアクティブにするには、Apacheサービスを停止して再起動する必要があります。
wampmanager.exe -> Apache -> Service -> Restart Service
システムトレイのWAMPアイコンが再び緑色にならない場合は、\wamp\bin\apache\apache2.4.9\conf\extra\httpd-hosts.conf
ファイルで何か問題が発生した可能性があります。
もしそうなら、ここに何が悪いのかを見つけるための便利なメカニズムがあります。Apache exe(httpd.exe)の機能を使用して、構成ファイルをチェックし、ファイル名と行番号でエラーを報告します。
コマンドウィンドウを起動します。
cd \wamp\bin\apache\apache2.4.9\bin
httpd -t
したがって、エラーを修正し、出力が得られるまで再テストしてください
Syntax OK
もう1つあります。
wampmanagerメニューシステムには、実際には2つの新しいメニュー項目があります。デフォルトでオンになっている「マイプロジェクト」と呼ばれるもの。もう1つは「マイ仮想ホスト」と呼ばれ、デフォルトではアクティブ化されていません。
「マイプロジェクト」は、\ wamp \ wwwディレクトリのサブディレクトリを一覧表示し、そのサブディレクトリでサイトを起動するためのリンクを提供します。前に述べたように、「localhost / project1」ではなく「project1」を起動するため、リンクを機能させるには、仮想ホスト定義を作成して、このリンクが実際にブラウザでそのサイトを起動するようにする必要があります。仮想ホスト定義がない場合は、キーワードとしてサイト名のWeb検索を開始するか、サイトが見つからない状態を返します。
[マイ仮想ホスト]メニュー項目は少し異なります。仮想ホストの定義に使用されるファイルを検索し(すぐにわかります)、検出した各ServerNameパラメーターのメニューリンクを作成し、各パラメーターのメニュー項目を作成します。\ wamp \ wwwフォルダのサブディレクトリの仮想ホスト定義を作成すると、[マイプロジェクト]メニューと[マイ仮想ホスト]メニューの両方にいくつかの項目が表示されるため、これは少し混乱するように思われるかもしれません。
この他の「仮想ホスト」メニューをオンにするにはどうすればよいですか?
- 間違いを犯した場合に備えて、\ wamp \ wampmanager.tplファイルのバックアップを作成してください。これは非常に重要なファイルです。
- \ wamp \ wampmanager.tplを編集します
- このパラメータ
;WAMPPROJECTSUBMENU
は、「[Menu.Left]」セクションにあります。
- この新しいパラメータをパラメータの
;WAMPVHOSTSUBMENU
前または後に追加し;WAMPPROJECTSUBMENU
ます。
- ファイルを保存します。
- 次に、wampmanagerアイコンを右クリックして、「更新」を選択します。これでメニューが追加されない場合は、「終了」してwampmanagerを再起動します。
ビッグノート
新しいメニューは、すでにいくつかの仮想ホストが定義されている場合にのみ表示されます。それ以外の場合は、VHOSTを定義するまで違いはありません。
これを論理的な拡張にすると
\wamp\
VHOST定義のDocumentRootパラメーターを変更するだけで、Webサイトのコードをフォルダー構造の外に完全に移動できるようになりました。したがって、たとえば、これを行うことができます。
wampディスクまたはその他のディスクにフォルダを作成します(ネットワークドライブに注意してください。少し複雑です)。
D:
MD websites
CD websites
MD example.com
CD example.com
MD www
ここで、サイトコードをにコピーするか、\websites\example.com\www
フォルダーで作成を開始して、次のようにVHOSTを定義します。
<VirtualHost *:80>
DocumentRoot "d:/websites/example.com/www"
ServerName example.dev
ServerAlias www.example.dev
<Directory "d:/websites/example.com/www">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
php_flag display_errors Off
php_flag log_errors On
php_value max_upload_size 40M
php_value max_execution_time 60
php_value error_log "d:/wamp/logs/example_com_phperror.log"
</VirtualHost>
次に、この新しい開発ドメインをHOSTSファイルに追加します。
127.0.0.1 localhost
::1 localhost
127.0.0.1 project1
::1 project1
127.0.0.1 example.dev
::1 example.dev
注:ライブドメイン名と同じServerNameまたはServerAliasを使用することはお勧めできません。ServerNameとしてexample.comを使用した場合は、これから実際のライブサイトにアクセスできなくなるためです。 PCはexample.comを127.0.0.1に転送します。つまり、このPCであり、インターネットに接続しません。
また:VHOST定義内からインターネットからこのサイトにアクセスすることを許可したことを確認してください。この変更はこのサイトにのみ適用され、他のサイトには適用されません。クライアントが変更をライブサーバーにコピーせずに1時間ほど表示できるようにする場合に非常に便利です。これは、wampmanagerの[オンライン/オフラインにする]メニュー項目を使用するのではなく、このファイルを手動で編集してこのアクセスをオンまたはオフにする必要があることを意味します。
また、PHP構成にいくつかの変更を追加しました。これも、この1つのサイトにのみ適用されます。あなたが維持する他のすべてのサイトとは異なり、特定の要件を持つサイトを維持するときに非常に便利です。使用されたパラメータから、どこかに長時間実行されているページがあり、非常にひどく書かれていて、ページをひどく混乱させることなくブラウザにエラーが表示されても実行されないと推測できます。このようなサイトが存在し、人々はまだそれらをひどく維持したいと思っていると私を信じてください。ただし、これは、この特定のサイトのこれらのパラメーターを変更するだけでよく、WampServerで実行されているすべての仮想サイトにグローバルに変更する必要がないことを意味します。