Apache的安裝及使用


PHP最初是 Persional Home Page 的縮寫,表示個人主頁。

下載Apache

進入apache服務器官網 http://httpd.apache.org/ 這里我們以下載穩定版的

Apache httpd 2.4.39 Released 為例,點擊download。

download

下載后解壓,改名為httpd,放到D盤根目錄。

Apache目錄

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后台服務。

命令啟動Apache服務:httpd -k start

httpd -k stop 停止

httpd -k restart 重啟

更多命令,請使用 httpd -help 查看

如果出現以下錯誤

【原因】
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 ,運行后會出現在任務欄中

虛擬主機配置

1、首先需要啟用輔助配置

在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

2、然后在文件末尾添加如下代碼

<VirtualHost *:88>
    DocumentRoot "D:/WWW/taobao"
    ServerName www.taobao.com
</VirtualHost>

注意:
1、端口號
2、路徑是 “/”不是“\

3、在 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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM