phpStudy的localhost不能訪問怎么解決(相關性)
一、總結
1、注釋掉httpd.conf文件中的#ServerName localhost:80 這句話。
2、既然是localhost有問題,而別的域名沒問題,那么在配置中去找和localhost有關的,對找出問題很有幫助。(相關性)
二、Apache配置虛擬主機后,不能訪問localhost的問題
1、問題描述
今天想試用一下php7,但是發現php7只支持Apache2.4版本,而我電腦上的Apache是2.2版本,為了想嘗鮮,就必須去下載新的Apache2.4
php7和apache2.4安裝整合以后,localhost可以正常訪問,沒問題。
然后我又配置了幾個虛擬主機,這時候,虛擬主機可以正常訪問,但是localhost就訪問不了了。
其實以前這種問題我也經歷過,比如我之前用的php5.4搭配Apache2.2,就可以虛擬主機和localhost都可以訪問;
但是我之前怎么解決的我也不記得了,今天又折騰了好久,最后發現,其實就是注釋掉一行代碼的事情。
先說配置虛擬主機的流程:
1.先打開httpd.conf文件,打開httpd-vhosts.conf
# Virtual hosts Include conf/extra/httpd-vhosts.conf
2.然后打開httpd-vhosts.conf文件,配置一個虛擬主機
<VirtualHost *:80> DocumentRoot "D:/amp/www/wechat" ServerName www.wechat.com </VirtualHost>
3.打開hosts文件,添加域名
127.0.0.1 www.wechat.com
4.重啟Apache,這時虛擬主機的域名www.wechat.com可以正常訪問,
但是我的localhost就不能訪問了。報錯如下:

2、解決過程:
我的思路是,添加一個名為localhost的虛擬主機不就可以了?
1.打開httpd-vhosts.conf文件,配置一個名為localhost的虛擬主機:
<VirtualHost *:80>
ServerName localhost
DocumentRoot "D:/amp/www"
</VirtualHost>
2.打開hosts文件,添加域名
注意:這一步,做或者不做,都沒有影響,親測通過。
#127.0.0.1 localhost
3.重啟Apache,期待的結果並沒有出現,哎,都累得半死了,還是不能訪問localhost,雖然其他虛擬域名都可以正常訪問,
可是我就是想魚和熊掌兼得,繼續查找問題
3、問題解決:
最后我比對了我原來的配置代碼,發現,在httpd.conf文件中有一行代碼是需要注釋掉的
#ServerName localhost:80
就是這一行代碼,把我折騰的夠嗆,把 ServerName 這一行代碼注釋掉就可以了
也許你的httpd.conf文件中並不是localhost:80 這個值,可能是 ServerName a.com:80 ; 都一樣,直接注釋掉
以后無論開啟或者關閉虛擬主機,localhost都可以正常訪問。

總結:今天在這里記錄一下,自己犯過兩次的錯誤,保證以后不再犯了,
再就是遇到問題,不要慌,耐心查找,總能解決的。
三、測試題-簡答題
1、我apache中localhost不能訪問,而我的別的域名可以成功訪問,我應該怎么查錯?
解答:因為是localhost不能正常訪問,其它域名可以正常訪問,去配置文件中find找一下localhost相關的配置,對查錯應該很有幫助。
2、apache中ServerName localhost:80 的意思是什么?
解答:在apache中配置了一個localhost:80的服務器映射。
