部署環境:
CentOS6.4 x86_64位 采用最小化安裝,系統經過了基本優化 1G內存,1核cpu
selinux為關閉狀態,iptables開放80端口
apache版本:httpd-2.4.29
apr版本:apr-1.6.3
apr-util版本:apr-util-1.6.3
源碼包存放位置:~/
源碼包編譯安裝位置:/opt/軟件名稱
1)准備工作
yum groupinstall "Development tools" "Server Platform Development" -y #安裝這兩個開發環境的軟件包組 yum install pcre* -y #安裝pcre兼容的正則表達式
yum install expat-devel
如果centos中自帶有httpd服務,需要先卸載
chkconfig httpd off chkconfig --del httpd rm -f /ect/init.d/httpd
2)下載源代碼
cd ~ wget -c http://www.eu.apache.org/dist/httpd/httpd-2.4.29.tar.gz
apache的源碼包,我們可以去apache的官網或者鏡像站點進行下載,並且為了安全,我們下載時最好將apache的公鑰和數字簽名文件同時下載下來,然后對源碼包的一致性進行驗證,當驗證無誤后再投入使用。
wget http://www.eu.apache.org/dist/httpd/httpd-2.4.29.tar.gz.asc wget http://www.apache.org/dist/httpd/KEYS gpg --import KEYS gpg --verify httpd-2.4.29.tar.gz.asc
執行完成后,會輸出類似於以下的信息
接下來解壓apache源代碼,並下載apr和apr-util源代碼,並解葯到srclib中
tar -zvxf httpd-2.4.29.tar.gz cd httpd-2.4.29 wget -c http://www-us.apache.org/dist//apr/apr-1.6.3.tar.gz wget -c http://www-us.apache.org/dist//apr/apr-util-1.6.1.tar.gz tar -zxf apr-1.6.3.tar.gz mv apr-1.6.3 ./srclib/apr tar -zxf apr-util-1.6.1.tar.gz mv apr-util-1.6.1 ./srclib/apr-util rm -f *.tar.gz
3)開是編譯安裝
./configure --prefix=/opt/apache-2.4.6 \ #配置文件目錄 --with-included-apr \ --with-pcre \ #支持perl的正則表達式 --enable-so \ #啟用動態模塊加載 --enable-ssl \ #基於ssl加密傳輸 --enable-cgi \ #開啟CGI腳本 --enable-rewrite \ #允許URL重寫 --with-zlib \ #支持壓縮 --enable-deflate \ #支持網頁壓縮 --enable-expires \ #支持網頁緩存 --enable-headers \ #提供允許對HTTP請求頭的控制 --enable-modules=most \ #支持大多數模塊 --enable-mpms-shared=all \ #mpm模塊的動態切換 --with-mpm=event \ #默認加載使用的mpm --with-mpm=worker #讓apache以worker方式運行 #以上是生產環境中常用的一些編譯參數
命令貼在下面,方便執行
./configure --prefix=/opt/apache-2.4.29 --with-included-apr --with-pcre --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --enable-deflate --enable-expires --enable-headers --enable-modules=most --enable-mpms-shared=all --with-mpm=event --with-mpm=worker --enable-mine-magic
4)配置apache
首先進入apache安裝根目錄
cd /opt/apache-2.4.29
apache安裝完成之后,我們要先為編譯安裝好的目錄添加軟鏈接。此操作在生產環境中為重要調優參數,添加這條軟鏈接的目的有兩點:
1、方便人們使用。
2、便於以后升級版本。
ln -s /opt/apache-2.4.29 /usr/local/apache
接下來配置apache服務,首先打開配置文件
cd /usr/local/apache
vim conf/httpd.conf
找到ServerName 這一行,將前面的#去掉,名修改其值為 0.0.0.0:80或者為自己主機的ip
然后保存並退出,檢查一下語法
/usr/local/apache/bin/apachectl -t
啟動apache
/usr/local/apache/bin/apachectl start
5)將apache添加到系統服務
首先需要修改 apachectl
cd /usr/local/apache
vim bin/apachectl
在第二行添加一些內容,修改結果如下
代碼貼在下面,方便粘貼
#Comments to support chkconfig on RedHat Linux #chkconfig: 2345 90 90 #description:http server
之后再執行一下命令即可將apache添加到系統服務
cp bin/apachectl /etc/init.d/httpd chkconfig --add httpd #將apache添加到系統服務 chkconfig httpd on #設置開機自啟動
這樣就可以用service啟動和停止服務了
service httpd start #啟動apache服務
service httpd stop #停止apache服務
service httpd restart #重啟apache服務
service httpd status #查看apache服務狀態
額外提醒:開啟apache服務失敗
1)未開啟80端口
可以直接關閉防火牆
service iptables stop
chkconfig iptables off
或者可以開啟80端口
vim /etc/sysconfig/iptables
在里面添加一行 -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT ,如下圖所示
保存並退出,再重啟防火牆即可
service iptables restart
2)80端口被占用
1)修改httpd.conf
將里面Listen 80 這一行里面的80改成其他的端口,比如81,保存並退出以后重啟apache即可
2)殺死占用80端口的進程
netstat -lnp |grep :80
可以查看到,監聽80端口的pid為2786,使用kill指令殺死該進程
kill -9 2786
之后重新啟動apache即可