1

このエラーが発生しました:

Warning: PDO::__construct() [<a href='pdo.--construct'>pdo.--construct</a>]: [2002] php_network_getaddresses: getaddrinfo failed: No such host is known. (trying to connect via tcp://1:3306) in Z:\work\...

私の localhost/phpmyadmin は正常に動作しますが、localhost または 127.0.0.1 にアクセスできません。「Forbidden : You don't have permission to access / on this server.」という空白のページが表示されます。

ポート 80 では他に何も実行していません

httpd.conf を変更しました

DocumentRoot "z:/work/"

<Directory />
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all
</Directory>

<Directory "z:/work/">
    Options Indexes FollowSymLinks
    AllowOverride all
    Order Deny,Allow
    Deny from all
    Allow from all
</Directory>

私のhttpd-vhosts.confにも追加されました

<Directory C:/Users/Alex/Documents/GitHub>
Order Deny,Allow   
Allow from all 
AllowOverride All
</Directory>

<Directory Z:/work>
Order Deny,Allow   
Allow from all 
AllowOverride All
</Directory>

<VirtualHost *:80>
    DocumentRoot "Z:\work\mysite"
    ServerName bullseye.local
</VirtualHost>

<VirtualHost *:80>   
DocumentRoot "C:\Users\Alex\Documents\GitHub\Myproject" 
ServerName framework.local 
</VirtualHost>

そして、私のphpmyadmin.confは次のとおりです

Alias /phpmyadmin "c:/wamp/apps/phpmyadmin3.5.1/" 

<Directory "c:/wamp/apps/phpmyadmin3.5.1/">
Options Indexes FollowSymLinks MultiViews
AllowOverride all
    Order Deny,Allow
Deny from all
Allow from all
</Directory>

エラーを与えるコード:

$host = 'localhost';
$user = 'root';
$pass = '';
$database = 'mydatabase';
$this->db = new PDO('mysql:dbname=' . $database . ';host=' .$host . ';charset=utf8', $user, $pass);

PDO の代わりに mysql または msqli を使用しても同じエラーが発生します

4

2 に答える 2

1

私の懸念はこれです:

DocumentRoot "z:/work/"

<Directory />
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all
</Directory>

<Directory "z:/work/">
    Options Indexes FollowSymLinks
    AllowOverride all
    Order Deny,Allow
    Deny from all
    Allow from all
</Directory>

残念ながら、提案する前にこれをテストする時間がありません...しかし、 DocumentRoot が次の場合z:/work/、 Directory/もあり、それをandz:/work/に設定しました。後でアクセス許可を変更しようとすると、オーバーライドと見なされるため、適用されませんか? AllowOverride を all に変更するか、/ からの deny all を削除してから、他の可能な解決策を探すのに時間をかける前に試してみることをお勧めします。deny alloverride noneDirectory "z:/work/"

于 2013-06-12T18:13:58.363 に答える
1

私の提案は次のとおりです。

httpd.conf へのすべての変更を元に戻します。変更により、Apache が WAMP ホームページ、つまり localhost について持っているすべての知識が削除されました。仮想ホスト構成のインクルードをコメントアウトし、WAMP ホームページに再度アクセスできることを確認します。

WAMP が「オフライン」であることを確認してください。これにより、C:\ ドライブと c:\wamp フォルダーが安全に保たれます。

次に、仮想ホストの定義に進みます。

wamp ホームページを機能させ続けるには、最初のエントリを以下のようにする必要があります。Directory ブロックは VirtualHost の定義の一部である必要があり、セキュリティ定義により、127.0.0.1(localhost) からのみ wamp ホームページにアクセスできるようになります。

###must be first so the the wamp menu page loads
<VirtualHost *:80>
    ServerAdmin webmaster@homemail.net
    DocumentRoot "D:/wamp/www"
    ServerName localhost
    ServerAlias localhost
    <Directory  "D:/wamp/www">
        Order Deny,Allow
        Deny from all
        Allow from 127.0.0.1
</Directory>
</VirtualHost>

定義する各 VHOST には、次のような独自のセキュリティ設定が含まれている必要があります

<VirtualHost *:80>
    DocumentRoot "Z:\work\mysite"
    ServerName bullseye.local
    ServerAlias bullseye.local
    AllowOverride All
    <Directory "Z:\work\mysite">
        Order Allow,Deny
        Allow from all 
    </Directory>
</VirtualHost>

<VirtualHost *:80>   
    DocumentRoot "C:\Users\Alex\Documents\GitHub\Myproject" 
    ServerName framework.local 
    ServerAlias www.framework.local
    <Directory "C:\Users\Alex\Documents\GitHub\Myproject">
        Order Allow,Deny
        Allow from all 
    </Directory>
</VirtualHost>

vhosts 定義の https.conf のインクルードのコメントを外し、他のプロジェクトへのアクセスを再度試みます。

すべての仮想ホストへの参照を含めるために、c:\windows\system32\drivers\etc\hosts ファイルに必要な変更を加えたと思いますか? そうでない場合、ホストファイルは次のようになります:-

127.0.0.1 ローカルホスト
127.0.0.1 フレームワーク.ローカル
127.0.0.1 ブルズアイ ローカル
于 2013-06-13T10:32:06.130 に答える