所需軟件:
需要準備Apache HTTP 服務器:
http://httpd.apache.org/download.cgi
PHP環境下載:
http://www.php.net/downloads.php
Apache HTTP服務器安裝:
由于最新的 Apache 已經不提供 Windows 的安裝版本了,所以我們這里使用的是解壓版。
下載地址:https://www.apachelounge.com/download/
使用說明:https://httpd.apache.org/docs/current/platform/windows.html
安裝方式如下,先解壓到純英文路徑的文件夾,然后執行以下命令:
# 注意:需要使用管理員身份運行命令行!!!
# 切換到 Apache 解壓路徑中的 bin 目錄
$ cd <解壓目錄>/bin
# 安裝 Apache 服務,‐n 參數是指定服務名稱
$ httpd.exe ‐k install ‐n "Apache"
# 如果需要卸載 Apache,可以執行以下命令
$ httpd.exe ‐k uninstall ‐n "Apache"
執行安裝命令過后會報一個錯,原因是默認的配置文件有問題,需要先調整一下配置文件 conf/httpd.conf ,才能 正常啟動服務。
?
找到 Apache 解壓目錄中的 conf 目錄下的 httpd.conf 文件,定位到 37 行,將 c:/Apache24? 改為解壓目錄,我這 里解壓到路徑是 C:/Develop/apache ,所以我這里修改
修改完以后,執行以下命令重新測試配置文件是否通過。
$ httpd.exe ‐t
這里任然報錯:
?通過錯誤信息得知,這里是因為另外一個地方配置的目錄不存在導致的,所以接著調整 246 行的 DocumentRoot 選項:
隨即,我們發現這個配置文件中有很多默認配置選項中的路徑都是 c:/Apache24 ,所以我們批量都修改為我們解 壓的目錄路徑。
然后重新執行 httpd.exe -t? 測試配置文件,這時候應該提示 Syntax OK 。
如果有關于 ServerName? 的警告提示,不用管它,暫時還不會影響我們接下來的使用和操作。
接著運行以下命令重新啟動 Apache 服務:
# 注意:需要使用管理員身份運行命令行!!!
$ httpd.exe ‐k start ‐n "Apache"
# 重新啟動 Apache 服務
$ httpd.exe ‐k restart ‐n "Apache"
# 停止 Apache 服務
$ httpd.exe ‐k stop ‐n "Apache"
回到瀏覽器中,地址欄輸入:http://localhost/,回車訪問,這時正常應該看到 It works!
Apache HTTP服務器的虛擬主機配置:
如果一臺機器上只有一個網站的話,沒有任何問題,但是如果想要在一臺機器上部署多個站點,就必須通過配置虛 擬主機的方式解決。
由于后期對虛擬主機的配置操作非常常見,所以我們一般將虛擬主機的配置單獨放到一個配置文件中,然后 在主配置文件中引入,避免破壞主配置文件中的其他配置。
Include conf/extra/httpd-vhosts.conf? 配置的作用就將另外一個配置文件引入(使其生效)
具體的操作方式就是在主配置文件 httpd.conf? 的 505 行取消注釋:
然后找到 Apache 的虛擬主機配置文件,添加一個如下的虛擬主機配置節點,然后重新啟動 Apache。 這個文件中有兩個默認的示例配置,可以注釋掉
如果真的要使用 baixiu.com? 這個域名的話,就只能通過修改 hosts? 文件的此域名對應Apache HTTP服務器ip達到目的(由于是安裝在本機將此域名對應的ip修改為本機ip 127.0.0.1),原因很簡單:這個域名不是 我們自己的,我們沒有辦法修改這個域名在公網上的 DNS。
注意:
如果使用了虛擬主機,則默認必須全部使用虛擬主機,即之前的默認網站也必須通過虛擬主機方式配 置,否則訪問不到。參考:http://skypegnu1.blog.51cto.com/8991766/1532454
如果虛擬主機的端口使用的不是 80 ,則需要在主配置文件中添加一個對這個端口的監聽:
虛擬主機的無法訪問根目錄Error:
在配置虛擬主機的配置文件中添加一個Directory標簽配置指定的根目錄允許訪問
<VirtualHost *:80># 服務器域名 (還需要在hosts文件中將此域名指向本機)ServerName suyi.com# 配置根目錄允許訪問<Directory "D:\HttpD-2.4.34-win64-VC15\apache\docs2">Options Indexes FollowSymLinksAllowOverride NoneRequire all granted</Directory># DocumentRoot 根目錄 寫絕對路徑DocumentRoot "D:\HttpD-2.4.34-win64-VC15\apache\docs2"# 錯誤日志ErrorLog "logs/suyi.net-error.log"# 本虛擬主機的訪問日志CustomLog "logs/suyi.net-access.log" common
</VirtualHost>
配置 PHP 環境支持:
在服務器上安裝 PHP
解壓 php 到純英文路徑目錄中
在 Apache HTTP服務器配置文件 httpd.conf 中添加支持 PHP 的配置
在 httpd.conf 添加 PHP 處理模塊
# php support
# 這個模塊不是根據后綴判斷是否該 PHP 工作,而是根據MIME TYPE 是不是 application/x-httpd-php
LoadModule php7_module PHP解壓路徑/php7apache2_4.dll
在 <IfModule mime_module>? 節點中添加 .php? 擴展名解析支持
# parse .php files
AddType application/x‐httpd‐php .php
默認文檔配置節點 <IfModule dir_module>? 中添加 index.php
默認文檔指的是在訪問一個目錄而不是具體文件名時,默認執行的文件名
<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>
重啟服務器 php文件就可以訪問了