Linux下安裝apache httpd以及httpd常見用法
一、Linux安裝apache httpd
1、官網下載httpd源碼包:(目前最新版為2.4.10)
2、安裝apache httpd安裝依賴的包:apr和apr-util
如果不安裝這些包,在編譯httpd時會報錯:
可以到官網下載:http://apr.apache.org/download.cgi
安裝apr
1 tar -zxvf apr-1.5.1.tar.gz 2 cd apr-1.5.1 3 ./configure 4 make&&make install 5 安裝apr-util 6 tar -zxvf apr-util-1.5.4.tar.gz 7 cd apr-util-1.5.4 8 ./configure --prefix/usr/local/apr-util --with-apr=/usr/local/apr
3、解壓編譯安裝
1 tar -zxvf httpd-2.4.10.tar.gz 2 cd httpd-2.4.10 3 ./configure --prefix=/usr/local/httpd --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util 4 make&&make install
二、apache的簡單操作
它是使用一個apachectl的腳本來實現對apache的操作的(這個文件在apache安裝目錄下的bin目錄中,我的安裝目錄為/usr/local/httpd)
個人理解:apachectl的英文:apache controll
用法:apachectl -[k|f|t] 操作名
1、開啟apache
/usr/local/httpd/bin/apachectl -k start
2、關閉apache
/usr/local/httpd/bin/apachectl -k stop
3、重啟apache
- 第一種是:直接重啟
1 /usr/local/httpd/bin/apachectl -k restart - 第二種是:優雅重啟(重啟時如果apache繁忙,則等它閑下的時候再重啟)
1 /usr/local/httpd/bin/apachectl -k graceful
4、指定apache配置文件
1 /usr/local/httpd/bin/apachectl -f /usr/local/httpd/conf/httpd.conf
5、檢測apache配置文件語法是否正確
1 /usr/local/httpd/bin/apachectl -t
6、其他操作:
1 /usr/local/httpd/bin/apachectl -v #顯示當前apache的版本號 2 /usr/local/httpd/bin/apachectl -V #顯示編譯時的配置
三、apache的簡單配置:
(1)將apache開機啟動
- 方法一:
1 cp /usr/local/apache/bin/apachectl /etc/init.d/httpd vi /etc/init.d/httpd
在#!/bin/sh后面加入下面兩行
1 #chkconfig:345 85 15 2 #description: Start and stops the Apache HTTP Server.
1 chmod +x /etc/rc.d/init.d/httpd chkconfig --add httpd
然后可以用setup命令進入服務設置,設置為開機啟動
- 方法二: 將服務加到
/etc/rc.d/rc.local中vi /etc/rc.d/rc.local添加以下內容
1 /usr/local/apache/bin/apachectl start
(2)修改apache的默認端口(為什么要修改apache的端口,假如我們還安裝了另一種web服務器nginx,它占用了80端口,那我們就不能再使用80端口)
修改apache的配置文件,查找listen修改80為8080
修改ServerName 為localhost:8080
1 listen 8080 #大約在httpd.conf中的52行
增加一行:約在httpd.conf中的189行
1 ServerName localhost:8080
四、apache httpd配置虛擬主機
1、去掉加載配置虛擬主機文件的注釋:約在463行:
1 Include conf/extra/httpd-vhosts.conf
2、進入虛擬主機配置文件,每個virtualHost段之間

- ServerAdmin為管理員郵箱(不需要)
- DocumentRoot 網站根目錄 (必填項)
- ServerName 為服務器名稱(一般是域名或IP)(必填項)
- ErrorLog 為錯誤日志位置
- CustomLog 為訪問日志位置
- 比如我們有兩個域名:
www.shixinke.com和www.withec.com
分別指向到我的服務器網站的根目錄:/web/www/shixinke和/web/www/withec
1 <VirtualHost *:8080> 2 DocumentRoot "/web/www/shixinke" 3 ServerName shixinke.com 4 ServerAlias www.shixinke.com 5 ErrorLog "logs/shixinke.com-error_log" 6 CustomLog "logs/shixinke.com-access_log" common 7 </VirtualHost> 8 <VirtualHost *:8080> 9 DocumentRoot "/web/www/withec" 10 ServerName withec.com 11 ErrorLog "logs/withec.com-error_log" 12 CustomLog "logs/withec.com-access_log" common 13 </VirtualHost>
五,apache中兩個指令補充(配置中的指令)
1、alias:指定虛擬目錄
1 alias /uploads /web/www/uploads;
這個指令可以指定當我們訪問/uploads這個目錄時,實際訪問的是/web/www/uploads這個目錄。
2、ServerAlias:如果我們有多個域名指向同一個網站,可以使用這個指令
1 ServerName withec.com; 2 ServerAlias withec.net;
轉載於:http://www.shixinke.com/linux/apache-httpd
