您好,登錄后才能下訂單哦!
前言
我們使用linux的過(guò)程中,一定會(huì)用到httpd這個(gè)服務(wù),在centos7上,默認(rèn)安裝的httpd就是2.4版本,大家都知道,2.4版本相對(duì)之前的版本已經(jīng)做了改進(jìn),用起來(lái)更加方便,但是我們的centos6上,默認(rèn)安裝的版本是2.2,那么,如果我們想要在centos6上安裝httpd2.4版本的話,我們要如何做呢?
本文中,小編會(huì)給大家介紹兩種方法,來(lái)實(shí)現(xiàn)在centos6上編譯安裝httpd2.4版本。
方法一 分別編譯法
1、下載源碼并解壓縮
我們可以使用yum info httpd
和yum info apr
來(lái)查看這兩個(gè)服務(wù)的官網(wǎng),然后我們?nèi)ス倬W(wǎng)下載最新的穩(wěn)定版本:
下面附上官網(wǎng)地址:
httpd官網(wǎng):http://httpd.apache.org/
apr官網(wǎng):http://apr.apache.org/
我們可以去官網(wǎng)下載最新的穩(wěn)定版本,這里,小編下載的是apr-1.6.2.tar.gz,apr-util-1.6.0.tar.gz,httpd-2.4.28.tar.bz2,接下來(lái)的實(shí)驗(yàn),就以小編下載的版本為示范,給大家演示如何安裝。
我們使用rz命令,將我們下載好的源碼包上傳至我們的centos6虛擬機(jī),我們可以查看一下:
[root@centos6 temp]# ll total 8004 -rw-r--r-- 1 root root 1071074 Sep 29 12:27 apr-1.6.2.tar.gz -rw-r--r-- 1 root root 565507 Sep 29 12:27 apr-util-1.6.0.tar.gz -rw-r--r-- 1 root root 6553163 Oct 15 12:35 httpd-2.4.28.tar.bz2
接下來(lái)就是解壓縮:
tar xvf httpd-2.4.28.tar.bz2 tar xvf apr-util-1.6.0.tar.gz tar xvf apr-1.6.2.tar.gz
解壓縮以后,我們照例查看一下:
[root@centos6 temp]# ls apr-1.6.2 apr-1.6.2.tar.gz apr-util-1.6.0 apr-util-1.6.0.tar.gz httpd-2.4.28 httpd-2.4.28.tar.bz2
我們發(fā)現(xiàn),現(xiàn)在已經(jīng)有了三個(gè)文件夾,該步驟完成。
2、安裝所依賴的包組
在編譯安裝開(kāi)始之前,我們要先把所依賴的包組安裝上,不然在接下來(lái)的編譯安裝過(guò)程中會(huì)出錯(cuò)。
安裝命令如下:
yum groupinstall "development tools" -y yum install pcre-devel -y yum install openssl-devel -y yum install expat-devel -y
安裝成功后,我們就可以對(duì)apr的分別編譯了。
3、編譯安裝apr-1.6.2
我們對(duì)apr-1.6.2進(jìn)行編譯安裝,首先要保證我們所有的操作都是在該文件夾內(nèi)進(jìn)行的!
首先,我們進(jìn)入目錄
[root@centos6 temp]# cd apr-1.6.2/ [root@centos6 apr-1.6.2]# ls apr-config.in CMakeLists.txt libapr.mak poll apr.dep config.layout libapr.rc random apr.dsp configure LICENSE README apr.dsw configure.in locks README.cmake apr.mak docs Makefile.in shmem apr.pc.in dso Makefile.win strings apr.spec emacs-mode memory support atomic encoding misc tables build file_io mmap test buildconf helpers network_io threadproc build.conf include NOTICE time build-outputs.mk libapr.dep NWGNUmakefile tools CHANGES libapr.dsp passwd user
然后我們對(duì)其進(jìn)行編譯安裝即可:
[root@centos6 apr-1.6.2]# ./configure --prefix=/app/apr [root@centos6 apr-1.6.2]# make && make install
編譯的命令很簡(jiǎn)單,只需要指定一個(gè)目錄,要記住這個(gè)目錄0.0,接下來(lái)我們還會(huì)用到。
編譯安裝完成后,我們來(lái)查看一下/app目錄,看是不是已經(jīng)生成了apr這個(gè)文件夾:
[root@centos6 apr-1.6.2]# ls /app/ apr
可以看到已經(jīng)有了這個(gè)文件夾,所以這一步驟我們完成。
4、編譯安裝apr-util-1.6.0
跟上一步驟很是相似,但是有一個(gè)需要注意的地方就是,編譯apr-util-1.6.0的時(shí)候,需要依賴apr-1.6.2包,所以還要跟上apr-1.6.2的目錄。下面我們就來(lái)說(shuō)說(shuō)具體操作。
首先,我們還是也要進(jìn)入該目錄下:
[root@centos6 temp]# cd apr-util-1.6.0 [root@centos6 apr-util-1.6.0]# ls aprutil.dep configure.in Makefile.win aprutil.dsp crypto memcache aprutil.dsw dbd misc aprutil.mak dbm NOTICE apr-util.pc.in docs NWGNUmakefile apr-util.spec encoding README apu-config.in export_vars.sh.in README.cmake buckets hooks README.FREETDS build include redis buildconf ldap renames_pending build.conf libaprutil.dep strmatch build-outputs.mk libaprutil.dsp test CHANGES libaprutil.mak uri CMakeLists.txt libaprutil.rc xlate config.layout LICENSE xml configure Makefile.in
接著,我們就可以對(duì)它進(jìn)行編譯安裝了,注意,編譯時(shí)的代碼與剛剛略有不同,需要加上apr-1.6.2的目錄:
[root@centos6 apr-util-1.6.0]# ./configure --prefix=/app/apr-util --with-apr=/app/apr/ [root@centos6 apr-util-1.6.0]# make && make install
編譯的命令很簡(jiǎn)單,只需要指定一個(gè)目錄,要記住這個(gè)目錄0.0,接下來(lái)我們還會(huì)用到。
編譯安裝完成后,我們來(lái)查看一下/app目錄,看是不是已經(jīng)生成了apr-util這個(gè)文件夾:
[root@centos6 apr-1.6.2]# ls /app/ apr apr-util
可以看到已經(jīng)有了這個(gè)文件夾,所以這一步驟我們完成。
5、編譯安裝httpd-2.4
同樣的,首先我們要進(jìn)入這個(gè)目錄:
[root@centos6 temp]# cd httpd-2.4.28/ [root@centos6 httpd-2.4.28]# ls ABOUT_APACHE docs Makefile.win acinclude.m4 emacs-style modules Apache-apr2.dsw httpd.dep NOTICE Apache.dsw httpd.dsp NWGNUmakefile apache_probes.d httpd.mak os ap.d httpd.spec README build include README.cmake BuildAll.dsp INSTALL README.platforms BuildBin.dsp InstallBin.dsp ROADMAP buildconf LAYOUT server CHANGES libhttpd.dep srclib CMakeLists.txt libhttpd.dsp support config.layout libhttpd.mak test configure LICENSE VERSIONING configure.in Makefile.in
接著,我們就進(jìn)行編譯安裝,編譯的命令有些長(zhǎng),大家寫的時(shí)候要注意不要少寫了東西,不然就會(huì)報(bào)錯(cuò)報(bào)錯(cuò)報(bào)錯(cuò)!或者就像小編這樣,把代碼分行寫,但是一定要加\符號(hào)才可以諾。
[root@centos6 httpd-2.4.28]#./configure --prefix=/app/httpd24 \ > --enable-so \ > --enable-ssl \ > --enable-cgi \ > --enable-rewrite \ > --with-zlib \ > --with-pcre \ > --with-apr=/app/apr/ \ > --with-apr-util=/app/apr-util/ \ > --enable-modules=most \ > --enable-mpms-shared=all \ > --with-mpm=prefork [root@centos6 httpd-2.4.28]# make && make install
至此,編譯安裝的步驟全部結(jié)束。我們可以來(lái)測(cè)試了
6、測(cè)試并進(jìn)行配置
首先,我們先來(lái)查看一下,我們的80端口是否處于沒(méi)有開(kāi)啟的狀態(tài):
[root@centos6 ~]# ss -tnl State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 :::22 :::* LISTEN 0 128 *:22 *:* LISTEN 0 128 127.0.0.1:631 *:* LISTEN 0 128 ::1:631 :::* LISTEN 0 100 ::1:25 :::* LISTEN 0 100 127.0.0.1:25 *:*
可以看出我們的80端口并未開(kāi)啟,強(qiáng)烈建議大家一定要查看,如果我們之前的機(jī)器上裝過(guò)httpd服務(wù),就把他卸載,至少至少也要停止服務(wù),保證我們的80端口是關(guān)閉的狀態(tài),不然我們新安裝的2.4版本是啟動(dòng)不起來(lái)的!
接著,我們進(jìn)入/app/httpd24/bin/這個(gè)目錄,把服務(wù)開(kāi)啟一下:
[root@localhost ~]# cd /app/httpd24/bin/ [root@localhost bin]# ./apachectl start AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain. Set the 'ServerName' directive globally to suppress this message
現(xiàn)在,我們?cè)賮?lái)查看一下端口開(kāi)啟情況:
[root@localhost bin]# ss -tnl State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 :::80 :::* LISTEN 0 128 :::22 :::* LISTEN 0 128 *:22 *:* LISTEN 0 128 127.0.0.1:631 *:* LISTEN 0 128 ::1:631 :::* LISTEN 0 100 ::1:25 :::* LISTEN 0 100 127.0.0.1:25 *:*
可以看出,我們的80端口已經(jīng)開(kāi)啟,接著我們就可以用其他的機(jī)器來(lái)測(cè)試一下了:
我們?cè)赾entos7上使用curl命令來(lái)測(cè)試:
[root@centos7 ~]# curl 192.168.191.128 <html><body><h2>It works!</h2></body></html>
測(cè)試成功。
至此,我們的實(shí)驗(yàn)已經(jīng)圓滿完成,已經(jīng)成功的在centos6上安裝上了httpd2.4版本。
方法二 一次編譯法
在上一個(gè)實(shí)驗(yàn)中,我們使用分別編譯的方法把httpd2.4版本安裝到了centos6上,但是分別編譯的方法還是略有麻煩,那有沒(méi)有一次就可以完成編譯的方法呢?小編很負(fù)責(zé)任的告訴你,當(dāng)然是有的!接下來(lái)我們就來(lái)看一看如何才能一次編譯安裝所有的東西~
1、下載源碼并上傳至虛擬機(jī)
我們可以使用yum info httpd
和yum info apr
來(lái)查看這兩個(gè)服務(wù)的官網(wǎng),然后我們?nèi)ス倬W(wǎng)下載最新的穩(wěn)定版本:
下面附上官網(wǎng)地址:
httpd官網(wǎng):http://httpd.apache.org/
apr官網(wǎng):http://apr.apache.org/
我們可以去官網(wǎng)下載最新的穩(wěn)定版本,這里,小編下載的是apr-1.6.2.tar.gz,apr-util-1.6.0.tar.gz,httpd-2.4.28.tar.bz2,接下來(lái)的實(shí)驗(yàn),就以小編下載的版本為示范,給大家演示如何安裝。
我們使用rz命令,將我們下載好的源碼包上傳至我們的centos6虛擬機(jī),我們可以查看一下:
[root@centos6 temp]# ll total 8004 -rw-r--r-- 1 root root 1071074 Sep 29 12:27 apr-1.6.2.tar.gz -rw-r--r-- 1 root root 565507 Sep 29 12:27 apr-util-1.6.0.tar.gz -rw-r--r-- 1 root root 6553163 Oct 15 12:35 httpd-2.4.28.tar.bz2
該步驟完成。
2、安裝所依賴的包組
在編譯安裝開(kāi)始之前,我們要先把所依賴的包組安裝上,不然在接下來(lái)的編譯安裝過(guò)程中會(huì)出錯(cuò)。
安裝命令如下:
yum groupinstall "development tools" -y yum install pcre-devel -y yum install openssl-devel -y yum install expat-devel -y
安裝成功后,我們就可以對(duì)apr的分別編譯了。
3、對(duì)源碼進(jìn)行解壓縮
第一步中,我們已經(jīng)把源碼上傳到了我們的虛擬機(jī)上,但是還沒(méi)有進(jìn)行任何操作,這一步驟中,我們就需要把源碼進(jìn)行解壓縮,并放入指定的文件夾中,來(lái)創(chuàng)造一次編譯安裝的條件,具體操作如下:
首先,對(duì)三個(gè)包分別進(jìn)行解壓:
tar xvf httpd-2.4.28.tar.bz2 tar xvf apr-util-1.6.0.tar.gz tar xvf apr-1.6.2.tar.gz
解壓完成后,我們把xvf apr-1.6.2.tar.gz和apr-util-1.6.0.tar.gz分別復(fù)制到httpd-2.4.28.tar.bz2這個(gè)目錄下的指定文件夾中并改名字:
[root@centos6 temp]# cp -a apr-1.6.2 httpd-2.4.28/srclib/apr [root@centos6 temp]# cp -a apr-util-1.6.0 httpd-2.4.28/srclib/apr-util [root@centos6 temp]# ls httpd-2.4.28/srclib/ apr apr-util Makefile.in
我們可以看出,在httpd-2.4.28/srclib/目錄下已經(jīng)有了apr和apr-util這兩個(gè)文件夾了。本步驟完成。
4、編譯安裝
準(zhǔn)備工作都做好了,接下來(lái)就是編譯安裝了。
一樣的,需要先進(jìn)入到httpd-2.4.28/這個(gè)目錄下。由于代碼很長(zhǎng),希望大家仔細(xì)仔細(xì)再仔細(xì),或者像小編一樣分行寫:
[root@centos6 temp]# cd httpd-2.4.28 [root@centos6 httpd-2.4.28]# ./configure --prefix=/app/httpd24 \ --enable-so \ --enable-ssl \ --enable-cgi \ --enable-rewrite \ --with-zlib \ --with-pcre \ --with-included-apr \ --enable-modules=most \ --enable-mpms-shared=all \ --with-mpm=prefork [root@centos6 httpd-2.4.28]# make -j 4 && make install
安裝的make -j 4 && make install
這一行代碼意思是開(kāi)啟4個(gè)進(jìn)程同時(shí)工作,進(jìn)行安裝,這樣速度比較快一些。
以上,編譯安裝完成,接著,我們可以進(jìn)行測(cè)試,并進(jìn)行一些配置的修改。
5、測(cè)試并進(jìn)行配置
首先,進(jìn)入/app/httpd24這個(gè)文件夾,查看一下內(nèi)容:
[root@centos6 httpd24]# ls bin build cgi-bin conf error htdocs icons include lib logs man manual modules
上一個(gè)實(shí)驗(yàn)我們是進(jìn)入bin/目錄下,然后使用apachectl來(lái)啟動(dòng)我們的服務(wù)的,但是如果每次都這樣啟動(dòng)服務(wù),無(wú)疑很麻煩,因?yàn)橐由下窂?,所以我們干脆把這個(gè)路徑設(shè)置到PATH變量里面,這樣我們使用服務(wù)就會(huì)變得比較方便,具體操作如下:
[root@centos6 bin]# vim /etc/profile.d/httpd24.sh PATH=/app/httpd24/bin:$PATH
然后我們運(yùn)行一下使它生效:
[root@centos6 bin]# . /etc/profile.d/httpd24.sh
現(xiàn)在我們?cè)谌我忭?yè)面都可以啟動(dòng)我們的服務(wù)。
[root@centos6 bin]# apachectl start
我們現(xiàn)在可以在另一臺(tái)機(jī)器上測(cè)試一下我們的服務(wù):
[root@centos7 ~]# curl 192.168.191.128 <html><body><h2>It works!</h2></body></html>
我們的頁(yè)面是保存在/app/httpd24/htdocs/這個(gè)文件夾里的,我們也可以根據(jù)自己的需要,把這個(gè)頁(yè)面修改一下~:
[root@centos6 httpd24]# cd htdocs/ [root@centos6 htdocs]# ls index.html [root@centos6 htdocs]# vim index.html <html><body><h2>Welcome to keer'home!</h2></body></html>
然后我們?cè)偃entos7上查看一下:
[root@centos7 ~]# curl 192.168.191.128 <html><body><h2>Welcome to keer'home!</h2></body></html>
已經(jīng)是我們修改過(guò)后的樣子了。
當(dāng)然,我們還是希望能夠?qū)懗煞?wù)腳本,這樣的話,我們使用起來(lái)就更加便利,現(xiàn)在我們的服務(wù)已經(jīng)啟動(dòng)起來(lái)了,我們可以用ps aux來(lái)查看一下:
[root@centos6 htdocs]# ps aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.0 19348 1560 ? Ss 00:22 0:01 /sbin/init root 2 0.0 0.0 0 0 ? S 00:22 0:00 [kthreadd] …… daemon 35258 0.0 0.0 76416 1436 ? S 00:53 0:00 /app/httpd24/bin/httpd -k start daemon 35259 0.0 0.0 76416 1436 ? S 00:53 0:00 /app/httpd24/bin/httpd -k start daemon 35260 0.0 0.1 76416 2104 ? S 00:53 0:00 /app/httpd24/bin/httpd -k start daemon 35261 0.0 0.1 76416 2084 ? S 00:53 0:00 /app/httpd24/bin/httpd -k start daemon 35262 0.0 0.1 76416 2084 ? S 00:53 0:00 /app/httpd24/bin/httpd -k start daemon 35264 0.0 0.0 76416 1440 ? S 00:54 0:00 /app/httpd24/bin/httpd -k start root 35326 13.0 0.0 110260 1152 pts/0 R+ 01:22 0:00 ps aux
在這里我們又發(fā)現(xiàn)了一個(gè)問(wèn)題,此時(shí)的httpd是以daemon的身份運(yùn)行的,我們當(dāng)然是希望它是由apache的身份來(lái)運(yùn)行,所以我們可以來(lái)修改一下:
我們先來(lái)查看一下apache這個(gè)用戶是否存在:
[root@centos6 htdocs]# id apache uid=48(apache) gid=48(apache) groups=48(apache)
如果不存在的話,我們可以使用useradd -r apache
來(lái)創(chuàng)建,因?yàn)閍pache是系統(tǒng)的服務(wù)用的賬號(hào),所以需要加上-r
然后我們就可以來(lái)修改配置文件了,配置文件在/app/httpd24/conf/這個(gè)文件夾里,我們進(jìn)去并把文件修改一下:
[root@centos6 ~]# cd /app/httpd24/conf/ [root@centos6 conf]# ls extra httpd.conf magic mime.types original [root@centos6 conf]# vim httpd.conf
打開(kāi)這個(gè)文件以后,我們把:
User daemon Group daemon
改成這樣:
User apache Group apache
這樣就可以了,我們現(xiàn)在把服務(wù)停止,重新打開(kāi),然后再用ps aux來(lái)查看一下:
[root@centos6 conf]# apachectl stop [root@centos6 conf]# apachectl start [root@centos6 conf]# ps aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.0 19348 1560 ? Ss 00:22 0:01 /sbin/init root 2 0.0 0.0 0 0 ? S 00:22 0:00 [kthreadd] …… apache 35352 0.0 0.0 76416 1436 ? S 01:33 0:00 /app/httpd24/bin/httpd -k start apache 35353 0.0 0.0 76416 1436 ? S 01:33 0:00 /app/httpd24/bin/httpd -k start apache 35354 0.0 0.0 76416 1436 ? S 01:33 0:00 /app/httpd24/bin/httpd -k start apache 35355 0.0 0.0 76416 1436 ? S 01:33 0:00 /app/httpd24/bin/httpd -k start apache 35356 0.0 0.0 76416 1436 ? S 01:33 0:00 /app/httpd24/bin/httpd -k start root 35357 3.0 0.0 110260 1152 pts/0 R+ 01:33 0:00 ps aux
這樣,我們的httpd就是以apache的身份來(lái)運(yùn)行的了。
當(dāng)然,我們還可以直接做成服務(wù),服務(wù)腳本也不需要我們自己寫,直接把系統(tǒng)自帶的httpd的服務(wù)腳本復(fù)制一份,修改一下就可以了,具體操作步驟如下:
[root@centos6 ~]# cd /etc/init.d [root@centos6 init.d]# ls abrt-ccpp cpuspeed htcacheclean lvm2-monitor ntpd rdma spice-vdagentd winbind abrtd crond httpd mdmonitor ntpdate restorecond sshd wpa_supplicant abrt-oops cups ip6tables messagebus portreserve rngd svnserve acpid dnsmasq iptables netconsole postfix rsyslog sysstat atd firstboot irqbalance netfs pppoe-server sandbox udev-post auditd functions kdump network psacct saslauthd vmware-tools blk-availability haldaemon killall NetworkManager quota_nld single vmware-tools-thinprint bluetooth halt lvm2-lvmetad nfs-rdma rdisc smartd wdaemon [root@centos6 init.d]# cp httpd httpd24 [root@centos6 init.d]# vim httpd24
文件里上面的內(nèi)容不需要改動(dòng),我們只需要修改一下路徑就可以了,也就是把
# Path to the apachectl script, server binary, and short-form for messages. apachectl=/usr/sbin/apachectl httpd=${HTTPD-/usr/sbin/httpd} prog=httpd pidfile=${PIDFILE-/var/run/httpd/httpd.pid} lockfile=${LOCKFILE-/var/lock/subsys/httpd} RETVAL=0 STOP_TIMEOUT=${STOP_TIMEOUT-10}
修改為:
# Path to the apachectl script, server binary, and short-form for messages. apachectl=/app/httpd24/bin/apachectl httpd=${HTTPD-/app/httpd24/bin/httpd} prog=httpd pidfile=${PIDFILE-/app/httpd24/logs/httpd.pid} lockfile=${LOCKFILE-/var/lock/subsys/httpd24} RETVAL=0 STOP_TIMEOUT=${STOP_TIMEOUT-10}
然后保存退出就可以了。
接下來(lái),就可以把這個(gè)服務(wù)添加到服務(wù)列表里了:
[root@centos6 init.d]# chkconfig --add httpd24 [root@centos6 init.d]# chkconfig httpd24 on [root@centos6 init.d]# chkconfig --list httpd24 httpd24 0:off 1:off 2:on 3:on 4:on 5:on 6:off
這樣,我們的httpd2.4版本就可以通過(guò)service來(lái)控制了。
至此,我們的服務(wù)的主要功能就實(shí)現(xiàn)了。
我們的實(shí)驗(yàn)圓滿完成。
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)億速云的支持。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。