WAMPでの私のプロジェクトのURLは、予想どおりに解決されません。たとえば、フォルダーc:\ wamp\www\project1内のプロジェクトのURLは http:// project1 / であるはずですが、実際にはURL http: // localhost/project1 / 。
これは、サーバー変数にアクセスするときに問題を引き起こす可能性があります。どうすれば修正できますか?
また、 この答えを見る 特別なクリックの場合、WAMPServer 3以上を使用している場合は特に仮想ホストを作成します。
実際、この変更はWAMPServer開発者が意図したものであり、それには正当な理由があります。
localhost/project1
urlとデフォルトのWAMPServer DocumentRootを使用すると、一部のフレームワークとWordPressタイプ環境、およびコードを使用している場合は独自のコードで問題が発生します。これは、サーバー環境に関する知識が必要です。
正しい解決策は、\wamp\www\project1
スタイルフォルダーに保存するものも含め、すべてのプロジェクトの仮想ホストを作成することです。
そうするとき、DocumentRootは\wamp\www
であり、それがこれらの問題の原因です。
これらのツールは、DocumentRootがサイトのルート、つまり\wamp\www\project1
であると想定しているため、PHP
$_SERVER['HTTP_Host']
$_SERVER['SERVER_NAME']
$_SERVER['DOCUMENT_ROOT']
彼らは正しい答え、つまり、そのサイトだけをホストしている実際のライブサーバーで得られる答えを取得します。
したがって、localhost\project1
スタイルのURLを使用すると、これらの変数は
$_SERVER['HTTP_Host'] = localhost
$_SERVER['SERVER_NAME'] = localhost
$_SERVER['DOCUMENT_ROOT'] = C:/wamp/www
彼らが戻るべき時
$_SERVER['HTTP_Host'] = project1
$_SERVER['SERVER_NAME'] = project1
$_SERVER['DOCUMENT_ROOT'] = C:/wamp/www/project1
したがって、My Projects
メニューを機能させ、サイトをライブサーバーにコピーする際の痛みを軽減するためにすべきことは次のとおりです。
このように各プロジェクトのHOSTSファイルにエントリを作成し、IPV4(127.0.0.1)を介したアクセス用とIPV6(:: 1)を介したアクセス用のエントリを作成することを忘れないでください:-
127.0.0.1 localhost
127.0.0.1 project1
::1 localhost
::1 project1
このファイルに変更を加えた後は、Windows DNSキャッシュを更新してください:-
Run as Administrator
を使用してコマンドウィンドウを起動し、実行します:-
net stop Dnscache
net start Dnscache
ここで、仮想ホスト定義を作成する必要があるため、\wamp\bin\Apache\apache2.4.9\conf\extra\httpd-vhost.conf
ファイルを編集します(Apacheバージョンは異なる場合があります)
これを初めて実行するときは、そこにあるデフォルトのものを削除してください。そして、次のように仮想ホスト定義を作成します:-
#
# Use name-based virtual hosting.
# This next line is not required if you are using Apache 2.4.x and should be deleted
NameVirtualHost *:80
## should be first so the wamp menu page loads and is the default site
## should also never be changed from only allowing access from the local machine
## for a bit of extra security from casual ip address probing
<VirtualHost *:80>
DocumentRoot "C:/wamp/www"
ServerName localhost
ServerAlias localhost
<Directory "C:/wamp/www">
AllowOverride All
<IfDefine Apache24>
Require local
</IfDefine>
<IfDefine !Apache24>
Order Deny,Allow
Deny from all
Allow from 127.0.0.1 localhost ::1
</IfDefine>
</Directory>
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "C:/wamp/www/project1"
ServerName project1
ServerAlias project1
<Directory "C:/wamp/www/project1">
AllowOverride All
<IfDefine Apache24>
Require local
</IfDefine>
<IfDefine !Apache24>
Order Deny,Allow
Deny from all
Allow from 127.0.0.1 localhost ::1
</IfDefine>
</Directory>
</VirtualHost>
ここでもう1つ変更が必要です。変更したばかりの上記のファイルを含むhttpd.conf
の行のコメントを外す必要があります。したがって、httpd.conf
ファイルを編集し、wampmanagerメニューを使用してこれを行うと、正しいファイルを編集できるようになります。
この行#Include conf/extra/httpd-vhosts.conf
を見つけて、行の先頭からコメント#
記号を削除します:-
Include conf/extra/httpd-vhosts.conf
もちろん、Apacheを再起動して構成の変更を取得する必要があります。
Apacheが再起動しない場合、おそらく設定を間違えているので、何が間違っているのかを調べるためにこれを試してください。
コマンドウィンドウを開き、CD
を\wamp\bin\Apache\apache2.4.9\bin
フォルダーに入れます。
次に、これを実行します:-
httpd -t
エラーがhttpd.conf
またはhttpd-vhost.conf
ファイルにある場合、エラーを通知し、エラーを簡単に見つけるための行番号も提供します。
wwwフォルダーでindex.phpを30行目で開きます。$ suppress_localhostをfalseに変更します。
これは次のようになります。
$ suppress_localhost = false;
www
フォルダーで、30行目でindex.php
を開きます。ここで、$suppress_localhost
をfalse
に変更します。したがって、次のようになります。
$suppress_localhost = false;
それは私にとって最も早くて簡単な修正でした。 64ビットのWampを使用しています。
あなたの沼は、通常は存在しないドメインhelloworldでWebサイトを実行するように構成されているようです。
追加:
127.0.0.1 helloworld
このファイル内:c:\windows\system32\drivers\etc\hosts
そのファイルを編集できるように、必ず管理者権限でテキストエディターを起動してください。
これにより、存在しないドメインhelloworld
をループバックアドレスに解決する必要があることがコンピューターに通知されます。
さて、私はこの問題を抱えていました。そのため、問題をトラブルシューティングし、ハックではなく実際の解決策にたどりました。
[〜#〜] solution [〜#〜]:
WAMP Settings
、Add localhost in URL
[〜#〜] done [〜#〜]。残りは、方法と理由のFYIです。
注:localhost/myproject.phpまたはmyproject.php。解決策は既に受け入れられましたが、混乱するような投稿がいくつかありました。受け入れられたソリューションは、OPの特定の質問、およびその単一プロジェクトに影響を与える方法に基づいて、異なるサーバーアプリケーションに対する単一プロジェクトに基づいています。しかし、他のすべての解決策はハッキングであり、OPの質問に対する解決策に実際に答えているわけではありませんが、URLについて良い点を提示しています。そのため、他の「解決策」によると、URLのlocalhost参照を切り替える方法は次のとおりです。したがって、追加のソリューションがミックスに追加されました。
これはトグルスイッチです。
トラブルシューティングプロセス(ハッキングなし):
index.phpを覗いてみましょう
構成ファイルを見てみましょう。変数と配列に注意してください?
これが配列です。以前に使用された変数。見てみましょう...ああ、それはどこで何をすべきかを教えてくれます。
[〜#〜] solution [〜#〜]で述べたように:
私にとっては http:// localhost に行く最も簡単な方法で、wampserverホームページではAdd a Virtual Host
([ツール]セクション)。問題なくエイリアスを作成するための素敵で簡単な形式があります(代わりに、トレイアイコンを使用してエイリアスを作成する場合のコンソール)。ソースを編集せず、wampが提供するものを使用します。エイリアスの作成後にDNSを更新することを忘れないでください。 Win10、WampServer 3.0.6 64ビットでテスト済み。
RiggsFollyが言ったような仮想ホストを作成します。
そして、コメントを外してくださいLoadModule rewrite_module modules/mod_rewrite.so
in httpd.conf
「Your Projects」フォルダーが「wamp/www /」に存在し、wampsereverを正しく起動した後にローカルホストのホームページが表示され、それでもプロジェクトにアクセスできない場合は、単にwwwフォルダーに移動して、index.phpを開きます。 $ suppress_localhostを検索し、その値をfalseに設定します。 wampserverを再起動し、localhostにアクセスしてプロジェクトにアクセスしてみてください。
これを行うには、ローカルホストのホームページのToolsメニューの下で_Add a virtual Host
_ユーティリティを使用して仮想ホストを作成できます。
仮想ホストへのアクセスの作成方法の詳細については、 ステップバイステップの説明
HostnameLookupsは、DocumentRootが変更されているかどうかに関係なく、httpd.confでONではありません。 $ _SERVER ['HTTP_Host'] $ _SERVER ['SERVER_NAME'] $ _SERVER ['DOCUMENT_ROOT']のブラウザでテスト済み
C:\wamp\www
In index.php
line 338
($suppress_localhost ? 'http://' : '')
change http:// to http://localhost/
これは実際には答えではありません。 WAMPを使用して仮想ホストを削除する最も早い方法は、そもそも仮想ホストを作成しないか、アンインストール/再インストールの準備をすることです。エラーを修正するための設定ファイルへのパスは何ですか?
最も簡単で迅速な方法は次のとおりだと思います:
Wwwフォルダのindex.phpを開きます>>> change:$ suppress_localhostをfalse/noに変更します。