(1) 安裝Apache
html
<1> 下載Apache源碼文件
apache
wget http://mirror.bit.edu.cn/apache//httpd/httpd-2.2.34.tar.gzvim
註釋:windows
若是提示-bash: wget : command not found 請安裝 yum install wgetbash
(2) 解壓httpd文件服務器
<1> 下載的壓縮文件,默認存放在Linux的根目錄下dom
<2> tar -xzf 解壓tar.gz的文件 tar -xjf 解壓tar.bz2的文件ide
(3) ./configure(預編譯)網站
<1> 進入Apache安裝目錄 cd httpd-2.2.34ui
<2> ./configure --prefix=/usr/local/apache2/ --enable-rewrite --enable-so --enable-ssl
註釋:
預編譯過程當中,若是出現
configure:error: in `/usr/local/src/httpd-2.2.21/srclib/apr':
configure:error: no acceptable C compiler found in $PATH
解決辦法是安裝 yum install gcc -y
預編譯的過程當中,若是出現,no SSL-C headers found
configure: error: ...No recognized SSL/TLS toolkit detected
解決辦法是 yum install openssl-devel -y
<4> make (編譯)
<5> make install (安裝)
(4) 預編譯時,Apache被安裝在 /usr/local/Apache2目錄下
<1> Apache的主配置文件
① [root@localhost apache2]# cd conf
② [root@localhost apache2]# cat httpd.conf
註釋: httpd.conf是Apache的主配置文件
★ apache配置文件解析:
ServerRoot "/usr/local/apache2/" apache服務的根目錄
Listen 80 apache監聽的是80端口
ServerAdmin you@example.com 管理員郵箱
DocumentRoot "/usr/local/apache2//htdocs" 網站根目錄
對apache根目錄作的權限設置
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
</Directory>
對網站根目錄作的權限設置
<Directory "/usr/local/apache2//htdocs">
Options Indexes FollowSymLinks
註釋:
若是網站根目錄下沒有默認首頁,會把網站根目錄下全部的文件都羅列出來
若是沒有Indexes,會報權限被拒絕
AllowOverride None
Order allow,deny
Allow from all
</Directory>
設置網站的默認首頁
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>
對.htaccess作的權限設置
<FilesMatch "^\.ht">
Order allow,deny
Deny from all
Satisfy All
</FilesMatch>
ErrorLog "logs/error_log" 錯誤日誌路徑
LogLevel warn 日誌記錄的級別
Include conf/extra/httpd-vhosts.conf Include文件設置
對ssl的配置
<IfModule ssl_module>
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
</IfModule>
<2> Apache的啓動文件
① [root@localhost apache2]# cd bin
註釋: httpd apachectl 是apache的啓動文件
(5) Apache監聽的是80端口
(6) Apache發佈網站的根目錄
/usr/local/apache2/htdocs
(7) 啓動Apache
① /usr/local/apache2/bin/apachectl start
② /usr/local/apache2/bin/httpd -k start | graceful (平滑重啓)
③
重啓apache進行檢查 /usr/local/apache2/bin/apachectl -t
若是出現Syntax ok 表示apache配置沒有錯誤
註釋:
Apache啓動遇到的錯誤總結
在 vim httpd.conf 配置文件中, 加入ServerName localhost:80
(8) 訪問服務器ip ,查看訪問是否成功
(9) 過濾 http.conf配置文件中的空格和#號
① grep -v "#" httpd.conf | grep -v "^$" >> httpd.conf.bak
② mv httpd.conf.bak httpd.conf
(10) 查看Apache進程是否啓動 ps -ef | grep httpd
(11) 查看Apache端口是否監聽 netstat -ntl | grep 80
------------------------------ apache虛擬主機配置-----------------------------------------------
(1) apache虛擬主機就是在一個ip地址上配置了多個域名,咱們經過域名來訪問,域名訪問的前提是要進行DNS解析,把ip地址和域名對應起來。操做系統規定,在進行DNS請求之前,先檢查本身的hosts文件中是否有ip地址的映射關係,若是沒有,在像DNS發出解析請求
(2) hosts文件路徑 c:\\windows\System32\drivers\etc
(3) 把ip地址和要解析的域名放到hosts文件中便可實現解析
(4) 配置虛擬主機
① 進入虛擬主機配置目錄(httpd-vhosts.conf是虛擬主機配置文件)
[root@localhost apache2]# cd conf
[root@localhost conf]# cd extra
[root@localhost extra]# cat httpd-vhosts.conf
② 修改配置文件
NameVirtualHost *:80 虛擬主機監聽本地網卡的80端口
<VirtualHost *:80> 虛擬主機配置開始
ServerAdmin daqi@eastmoney.com 管理員郵箱
DocumentRoot "/usr/local/apache2/htdocs/jf1" 網站發佈的根目錄
ServerName www.jf1.com 虛擬主機的域名
ErrorLog "logs/www.jf1.com-error_log" 錯誤日誌的路徑及文件名
CustomLog "logs/www.jf1.com-access_log" common 日誌的路徑及文件名
</VirtualHost> 虛擬主機配置結束
③ 建立www.jf1.com 和 www.jf2.com的發佈目錄
mkdir -p /usr/local/apache2/htdocs/jf1 mkdir -p /usr/local/apache2/htdocs/jf2
④ 在2個發佈目錄下,分別建立index.html文件
⑤ 在httpd.conf配置文件中引入httpd-vhosts.conf配置文件
Include conf/extra/httpd-vhosts.conf
⑥ 重啓網卡,驗證配置結果
/usr/local/apache2/bin/httpd -k start
--------------------------------- apache虛擬主機企業配置方式------------------------------------
① 在htppd.conf配置文件中,引入 Include conf/vhosts/*
② 建立vhosts目錄 mkdir vhosts
③ 在vhosts目錄下把虛擬主機配置文件拷貝過來
④ 拷貝的虛擬主機配置文件,去掉NameVirtualHost *:80
⑤ 在httpd.conf配置文件中,把NameVirtualHost *:80添加上
⑥ 重啓apache驗證配置結果
註釋:
虛擬主機被拆分紅多個,有利於進行管理,一個虛擬主機出現問題,不會影響到其它虛擬主機的運行