WAMP:';没有已知的此类主机';尝试连接到mysql时
我得到了这个错误:WAMP:';没有已知的此类主机';尝试连接到mysql时,mysql,apache,wamp,vhosts,Mysql,Apache,Wamp,Vhosts,我得到了这个错误: 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\... 我使用mysql或msqli而不是PDO时也
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\...
我使用mysql或msqli而不是PDO时也会遇到同样的错误,我担心的是:
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/”
选项如下符号链接
不允许超限
命令拒绝,允许
全盘否定
选项索引跟随符号链接
允许超越所有
命令拒绝,允许
全盘否定
通融
不幸的是,在我提出建议之前,我没有时间测试它。。。但如果DocumentRoot是
z:/work/
,那么目录/
也是z:/work/
,并且您已经将其设置为拒绝所有和覆盖无
。稍后尝试使用目录“z:/work/”
更改权限将被视为覆盖,因此不会应用?我建议您尝试将AllowOverride更改为all或删除deny all,以免花费太多时间寻找其他可能的解决方案。我的建议是:
撤消对httpd.conf的所有更改。您的更改删除了Apache对WAMP主页的所有知识,即localhost。
注释掉虚拟主机配置的include并检查是否可以再次访问WAMP主页
确保WAMP处于“脱机”状态,这将确保C:\drive和C:\WAMP文件夹的安全
现在转到虚拟主机定义:
为了使wamp主页保持工作状态,第一个条目应如下所示,注意目录块应是VirtualHost定义的一部分,安全性定义确保您只能从127.0.0.1(localhost)访问wamp主页
####必须位于第一位,以便加载wamp菜单页面
服务器管理员webmaster@homemail.net
DocumentRoot“D:/wamp/www”
服务器名本地主机
服务器别名本地主机
命令拒绝,允许
全盘否定
允许从127.0.0.1开始
您定义的每个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>
DocumentRoot“Z:\work\mysite”
ServerName bullseye.local
服务器别名bullseye.local
允许超越所有
命令允许,拒绝
通融
DocumentRoot“C:\Users\Alex\Documents\GitHub\Myproject”
ServerName framework.local
ServerAlias www.framework.local
命令允许,拒绝
通融
取消对vhosts定义的Include in https.conf的注释,然后再次尝试访问其他项目
我假设您已经对c:\windows\system32\drivers\etc\hosts文件进行了必要的更改,以包含对所有虚拟主机的引用?如果不是,则主机文件应如下所示:-
127.0.0.1 localhost
127.0.0.1 framework.local
127.0.0.1 bullseye.local
127.0.0.1本地主机
127.0.0.1 framework.local
127.0.0.1斗牛场。本地
phpMyAdmin只是一个客户端程序,它与mySQL服务器的运行位置无关。你能展示一下你用来连接数据库的代码吗?你真的有一个数据库服务器在本地主机上运行吗?是的,我的本地主机上有一个数据库(通过localhost/phpmyadmin创建)。如果我试图通过mysql或PDO连接,我会遇到同样的错误,我正在使用:$this->db=new PDO('mysql:dbname='.$database.';host='.$host.';charset=utf8',$user,$pass);where-host='localhost'user='root'和password=''你100%确定你是按照你所展示的方式来做的吗?因为100%确定,如果我使用$this->db=new PDO('mysql:dbname=mydatabase;host=localhost;charset=utf8','root','');这个,在这个帮助下解决了这个问题。谢谢!请不要使用你在那个博客上找到的解决方案,它太糟糕了,太危险了。它允许任何试图侵入你网站的黑客访问你的整个C驱动器,也允许任何人访问你的phpMyAdmin,这是一个非常糟糕的主意,因为这是完全访问你所有的数据ases。如果您遇到此问题,是因为您的电脑上有IPV4和IPV6可用。请尝试将httpd.conf文件中的'Listen*:80更改为Listen 0.0.0:80,并替换c:\wamp和phpmyadmin别名上的deny security。
$host = 'localhost';
$user = 'root';
$pass = '';
$database = 'mydatabase';
$this->db = new PDO('mysql:dbname=' . $database . ';host=' .$host . ';charset=utf8', $user, $pass);
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>
###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>
<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>
127.0.0.1 localhost
127.0.0.1 framework.local
127.0.0.1 bullseye.local