我得到了这个错误:
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,我得到一个空白页"禁止:你没有权限访问这个服务器上的/"。
我的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:workmysite"
ServerName bullseye.local
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "C:UsersAlexDocumentsGitHubMyproject"
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);
我得到相同的错误使用mysql或msqli而不是PDO
我建议:
撤销对httpd.conf的所有更改。您的更改已经删除了所有的知识Apache有WAMP主页,即本地主机。注释掉虚拟主机配置的包含,并检查是否可以再次访问WAMP主页。
确保WAMP为"离线",这将保证C: drive和C: WAMP文件夹的安全。
现在到您的虚拟主机定义:
为了保持wamp主页工作,第一个条目应该如下所示,注意目录块应该是虚拟主机定义的一部分,安全定义确保您只能从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:workmysite"
ServerName bullseye.local
ServerAlias bullseye.local
AllowOverride All
<Directory "Z:workmysite">
Order Allow,Deny
Allow from all
</Directory>
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "C:UsersAlexDocumentsGitHubMyproject"
ServerName framework.local
ServerAlias www.framework.local
<Directory "C:UsersAlexDocumentsGitHubMyproject">
Order Allow,Deny
Allow from all
</Directory>
</VirtualHost>
取消对vhosts定义的Include in https.conf的注释,并再次尝试访问其他项目。
我假设你已经对你的c:windowssystem32driversetchosts文件进行了必要的更改,以包括对所有虚拟主机的引用?如果没有,hosts文件应该像这样:-
<>之前127.0.0.1 localhost127.0.0.1 framework.local127.0.0.1 bullseye.local我担心的是:
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/
,那么目录/
也是z:/work/
,并且您已将其设置为deny all
和override none
。稍后尝试更改Directory "z:/work/"
的权限将被认为是覆盖,因此不适用?我建议您尝试将AllowOverride更改为all或从/中删除deny all,然后再花费太多时间寻找其他可能的解决方案。