PHP最初是 Persional Home Page 的縮寫,表示我的主頁。html
下載Apache
進入apache服務器官網 http://httpd.apache.org/ 這裏咱們如下載穩定版的apache
Apache httpd 2.4.39 Released 爲例,點擊download。windows
下載後解壓,更名爲httpd,放到D盤根目錄。瀏覽器
Apache 各目錄做用
目錄名 | 說明 |
---|---|
bin | Apache執行文件所在目錄,如httpd.exe、ApacheMonitor.exe 等 |
cgi-bin | GCI網頁程序存放目錄 |
conf | Apache服務器配置文件所在目錄 |
error | 錯誤文件目錄,用於保存因服務器設置或瀏覽器請求的數據錯誤時產生的錯誤 |
htdocs | 默認Web文檔根目錄,就是存放默認首頁的位置 |
icons | Apache預設的一些小圖標存放目錄 |
include | |
lib | |
logs | Apache 日誌文件存放目錄,主要包括訪問日誌 access.log 和錯誤日誌 error.log |
modules | Apache服務器支持的動態加載模塊所在目錄 |
安裝 Aapche 服務
使用管理員身份運行cmd,命令行下進入到 Apache 下面的 bin 目錄,輸入服務器
httpd -k install
把apache安裝成windows後臺服務。ide
命令啓動Apache服務:httpd -k start
ui
httpd -k stop
中止url
httpd -k restart
重啓spa
更多命令,請使用 httpd -help
查看.net
若是出現如下錯誤
【緣由】 httpd.conf 裏面配置的 ServerRoot 路徑跟實際路徑不一致,致使路徑無效。
【解決方案】 修改 D:\httpd\Apache24\conf 目錄下的 httpd.conf 文件,在38行左右
Define SRVROOT "D:/httpd/Apache24" ServerRoot "${SRVROOT}"
注意路徑是 「/
」不是「\
」
端口衝突問題
Apache 默認使用的端口號爲 80,若是遇到 80 端口被其餘應用程序佔用的狀況,有兩種解決方案:
方案一:將佔用 80 端口的程序關閉掉,具體作法以下:
在cmd中運行 netstat -ano "80"
查看是哪一個PID在使用 80 端口, 查找到PID 後能夠使用 kill 命令將其結束掉進程。
也能夠按 Ctrl + Shift + Esc
組合鍵 (或者搜索 services.msc
) 打開「服務」面板,查找對應的PID再鼠標右鍵結束進程。
若是佔有80端口的程序比較重要,不能將其關閉,則考慮修改Apache使用的端口。
方案二:修改Apache使用的端口號
好比將默認的80端口修改成88端口, httpd.conf 文件第60行左右
#Listen 12.34.56.78:80 Listen 88
httpd.conf 在224行左右
ServerName localhost:88
運行成功
Apache系統環境變量的配置
(手動配置是永久性的修改,命令配置只對當前窗口有效)
ApacheMonitor
在Apache 目錄中的 bin 目錄有個ApacheMonitor.exe 能夠控制apache 的啓動、中止、重啓服務
用管理員的身份運行 ApacheMonitor.exe ,運行後會出如今任務欄中
虛擬主機配置
一、首先須要啓用輔助配置
在Apache目錄中有兩個 httpd-vhosts.conf
文件:
這裏咱們使用的是 D:\httpd\Apache24\conf\extra 目錄下的 httpd-vhosts.conf
文件,在 502 行左右,去掉 # Include conf/extra/httpd-vhosts.conf
前面的註釋「#」
# Virtual hosts Include conf/extra/httpd-vhosts.conf
二、而後在文件末尾添加以下代碼
<VirtualHost *:88> DocumentRoot "D:/WWW/taobao" ServerName www.taobao.com </VirtualHost>
注意: 一、端口號 二、路徑是 「/
」不是「\
」
三、在 C:\Windows\System32\drivers\etc 目錄下的 host 文件中添加一行
# 這裏僅作演示!!! 127.0.0.1 www.taobao.com
修改訪問權限配置
httpd.conf 在231行附近 默認的配置是
<Directory /> AllowOverride none Require all denied </Directory>
或者是
<Directory /> Options FollowSymLinks AllowOverride None Order deny,allow Deny from all </Directory>
目錄權限控制是經過 Directory 指令段來實現的。 Order deny,allow
表示先判斷 deny 語句再判斷 allow 語句。 而後就是 deny 和 allow ,如 Deny from all
表示拒絕全部的,因爲沒有 allow 語句,因此最終的判斷就是拒絕全部。
再舉個例子:
//下面配置表示容許全部客戶端來訪問 Order deny,allow Allow from all //下面配置表示容許全部客戶端來訪問,可是拒絕 IP 爲192.168.1.100 的訪問 Order deny,allow Allow from all Deny from 192.168.1.100
首先要知道再哪來配置,在 Apache 中有兩種方式來進行配置目錄權限: 第一種:獨立是使用 Directory 段來配置,如上面的
第二種:在對應的 VirtualHost 中配置,建議使用這種來配置 D:\httpd\Apache24\conf\extra 目錄下的 httpd-vhosts.conf
文件添加以下代碼
<VirtualHost *:88> DocumentRoot "D:/WWW/taobao" ServerName www.taobao.com <Directory "D:/WWW/taobao"> Order allow,deny Allow from all </Directory> </VirtualHost>
【報錯】 Invalid command 'Order', perhaps misspelled or defined by a module not included in the server configuration
【解決方案】 去掉 httpd.conf 在52行左右的註釋「#」
LoadModule access_compat_module modules/mod_access_compat.so
默認首頁
在 httpd.conf 中的 280 行左右
# # DirectoryIndex: sets the file that Apache will serve if a directory # is requested. # <IfModule dir_module> DirectoryIndex index.html </IfModule>
重啓Apache