web-dev-qa-db-ja.com

WAMP-プロジェクトURLからローカルホストを削除

WAMPでの私のプロジェクトのURLは、予想どおりに解決されません。たとえば、フォルダーc:\ wamp\www\project1内のプロジェクトのURLは http:// project1 / であるはずですが、実際にはURL http: // localhost/project1 /

これは、サーバー変数にアクセスするときに問題を引き起こす可能性があります。どうすれば修正できますか?

10

また、 この答えを見る 特別なクリックの場合、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ファイルにある場合、エラーを通知し、エラーを簡単に見つけるための行番号も提供します。

33
RiggsFolly

wwwフォルダーでindex.phpを30行目で開きます。$ suppress_localhostをfalseに変更します。

これは次のようになります。

$ suppress_localhost = false;

14
user3795145

wwwフォルダーで、30行目でindex.phpを開きます。ここで、$suppress_localhostfalseに変更します。したがって、次のようになります。

$suppress_localhost = false;

それは私にとって最も早くて簡単な修正でした。 64ビットのWampを使用しています。

12
pud

あなたの沼は、通常は存在しないドメインhelloworldでWebサイトを実行するように構成されているようです。

追加:

 127.0.0.1    helloworld

このファイル内:c:\windows\system32\drivers\etc\hosts

そのファイルを編集できるように、必ず管理者権限でテキストエディターを起動してください。

これにより、存在しないドメインhelloworldをループバックアドレスに解決する必要があることがコンピューターに通知されます。

3
nl-x

さて、私はこの問題を抱えていました。そのため、問題をトラブルシューティングし、ハックではなく実際の解決策にたどりました。

[〜#〜] solution [〜#〜]

  1. WAMPサーバーアイコンを右クリック
  2. 選択する WAMP Settings
  3. オプションを選択(有効化)Add localhost in URL


[〜#〜] done [〜#〜]。残りは、方法と理由のFYIです。


:localhost/myproject.phpまたはmyproject.php。解決策は既に受け入れられましたが、混乱するような投稿がいくつかありました。受け入れられたソリューションは、OPの特定の質問、およびその単一プロジェクトに影響を与える方法に基づいて、異なるサーバーアプリケーションに対する単一プロジェクトに基づいています。しかし、他のすべての解決策はハッキングであり、OPの質問に対する解決策に実際に答えているわけではありませんが、URLについて良い点を提示しています。そのため、他の「解決策」によると、URLのlocalhost参照を切り替える方法は次のとおりです。したがって、追加のソリューションがミックスに追加されました。


これはトグルスイッチです。

トラブルシューティングプロセス(ハッキングなし):



index.phpを覗いてみましょう

enter image description here


構成ファイルを見てみましょう。変数と配列に注意してください?

enter image description here


これが配列です。以前に使用された変数。見てみましょう...ああ、それはどこで何をすべきかを教えてくれます。

enter image description here


[〜#〜] solution [〜#〜]で述べたように:

enter image description here

3
ejbytes

私にとっては http:// localhost に行く最も簡単な方法で、wampserverホームページではAdd a Virtual Host([ツール]セクション)。問題なくエイリアスを作成するための素敵で簡単な形式があります(代わりに、トレイアイコンを使用してエイリアスを作成する場合のコンソール)。ソースを編集せず、wampが提供するものを使用します。エイリアスの作成後にDNSを更新することを忘れないでください。 Win10、WampServer 3.0.6 64ビットでテスト済み。

1

RiggsFollyが言ったような仮想ホストを作成します。

そして、コメントを外してくださいLoadModule rewrite_module modules/mod_rewrite.so in httpd.conf

0
amdev

「Your Projects」フォルダーが「wamp/www /」に存在し、wampsereverを正しく起動した後にローカルホストのホームページが表示され、それでもプロジェクトにアクセスできない場合は、単にwwwフォルダーに移動して、index.phpを開きます。 $ suppress_localhostを検索し、その値をfalseに設定します。 wampserverを再起動し、localhostにアクセスしてプロジェクトにアクセスしてみてください。

0
Fam

これを行うには、ローカルホストのホームページのToolsメニューの下で_Add a virtual Host_ユーティリティを使用して仮想ホストを作成できます。
仮想ホストへのアクセスの作成方法の詳細については、 ステップバイステップの説明

0
Rakesh

HostnameLookupsは、DocumentRootが変更されているかどうかに関係なく、httpd.confでONではありません。 $ _SERVER ['HTTP_Host'] $ _SERVER ['SERVER_NAME'] $ _SERVER ['DOCUMENT_ROOT']のブラウザでテスト済み

0
Adrian
C:\wamp\www

In index.php 
line 338 

($suppress_localhost ? 'http://' : '')


change http://   to http://localhost/
0
arrowgr

これは実際には答えではありません。 WAMPを使用して仮想ホストを削除する最も早い方法は、そもそも仮想ホストを作成しないか、アンインストール/再インストールの準備をすることです。エラーを修正するための設定ファイルへのパスは何ですか?

0
Jim

最も簡単で迅速な方法は次のとおりだと思います:

Wwwフォルダのindex.phpを開きます>>> change:$ suppress_localhostをfalse/noに変更します。

0
Ole