本文所做的所有操作是在一部新安裝的CentOS6.9系統上。
1.環境與配置
環境說明:VMware上安裝的CentOS6.9系統,兩張系統盤做成的yum源 配置:編譯生成的所有的文件都存放在/usr/local/httpd22/這個目錄下
2.安裝GCC編譯器
[root@localhost ~]# yum grouplist | grep "Development tools" Development tools #安裝Developmnt tools這個軟件包組 [root@localhost ~]# yum groupinstall -y "Development tools" Loaded plugins: fastestmirror Setting up Group Process Loading mirror speeds from cached hostfile ... #中間省略 Package 1:make-3.81-23.el6.x86_64 already installed and latest version Package 1:pkgconfig-0.23-9.1.el6.x86_64 already installed and latest version Package binutils-2.20.51.0.2-5.46.el6.x86_64 already installed and latest version Resolving Dependencies --> Running transaction check ---> Package autoconf.noarch 0:2.63-5.1.el6 will be installed --> Processing Dependency: perl >= 5.005_03 for package: autoconf-2.63-5.1.el6.noarch --> Processing Dependency: perl >= 5.005 for package: autoconf-2.63-5.1.el6.noarch ... #中間省略 Verifying : elfutils-0.164-2.el6.x86_64 106/113 Verifying : 1:perl-Module-Pluggable-3.90-144.el6.x86_64 107/113 Verifying : byacc-1.9.20070509-7.el6.x86_64 108/113 Verifying : libXft-2.3.2-1.el6.x86_64 109/113 Verifying : libedit-2.11-4.20080712cvs.1.el6.x86_64 110/113 Verifying : libICE-1.0.6-1.el6.x86_64 111/113 Verifying : perl-XML-Parser-2.36-7.el6.x86_64 112/113 Verifying : libxcb-1.12-4.el6.x86_64 113/113 ... #中間省略 ppl.x86_64 0:0.10.2-11.el6 rsync.x86_64 0:3.0.6-12.el6 systemtap-client.x86_64 0:2.9-7.el6 systemtap-devel.x86_64 0:2.9-7.el6 systemtap-runtime.x86_64 0:2.9-7.el6 unzip.x86_64 0:6.0-5.el6 xz.x86_64 0:4.999.9-0.5.beta.20091007git.el6 xz-lzma-compat.x86_64 0:4.999.9-0.5.beta.20091007git.el6 zip.x86_64 0:3.0-1.el6_7.1 Complete!
可以看到這次總共安裝了113個軟件包。
3.解壓httpd源碼包,并進入軟件包目錄內
#解壓軟件包 [root@localhost ~]# ll -h httpd-2.2.32.tar.bz2 -rw-r--r--. 1 root root 5.6M Apr 20 16:56 httpd-2.2.32.tar.bz2 [root@localhost ~]# tar xf httpd-2.2.32.tar.bz2 [root@localhost ~]# ll -h total 5.6M drwxr-xr-x. 11 1001 1001 4.0K Jan 10 01:36 httpd-2.2.32 -rw-r--r--. 1 root root 5.6M Apr 20 16:56 httpd-2.2.32.tar.bz2 #進入解壓后的目錄 [root@localhost ~]# cd httpd-2.2.32 [root@localhost httpd-2.2.32]# ll total 1172 -rw-r--r--. 1 1001 1001 14882 Nov 22 2004 ABOUT_APACHE -rw-r--r--. 1 1001 1001 18613 Jul 6 2012 acinclude.m4 -rw-r--r--. 1 1001 1001 56952 Oct 6 2010 Apache.dsw drwxr-xr-x. 6 1001 1001 4096 Jan 10 01:36 build -rw-r--r--. 1 1001 1001 2644 Aug 24 2007 BuildAll.dsp ... #中間省略 drwxr-xr-x. 3 1001 1001 4096 Jan 10 01:36 server drwxr-xr-x. 5 1001 1001 4096 Jan 10 01:36 srclib drwxr-xr-x. 4 1001 1001 4096 Jan 10 01:36 support drwxr-xr-x. 2 1001 1001 4096 Jan 10 01:36 test -rw-r--r--. 1 1001 1001 8183 Oct 18 2005 VERSIONING
4.編譯安裝
[root@localhost httpd-2.2.32]# ./configure --prefix=/usr/local/httpd22 ... #中間省略 config.status: creating support/envvars-std config.status: creating support/log_server_status config.status: creating support/logresolve.pl config.status: creating support/phf_abuse_log.cgi config.status: creating support/split-logfile config.status: creating build/rules.mk config.status: creating build/pkg/pkginfo config.status: creating build/config_vars.sh config.status: creating include/ap_config_auto.h config.status: executing default commands
可以看到中間沒有報錯,可以進入下一步了。
[root@localhost httpd-2.2.32]# make && make install ... #中間省略 make[2]: Leaving directory `/root/httpd-2.2.32/modules/mappers' make[2]: Entering directory `/root/httpd-2.2.32/modules' make[2]: Leaving directory `/root/httpd-2.2.32/modules' make[1]: Leaving directory `/root/httpd-2.2.32/modules' Making install in support make[1]: Entering directory `/root/httpd-2.2.32/support' make[2]: Entering directory `/root/httpd-2.2.32/support' make[2]: Leaving directory `/root/httpd-2.2.32/support' make[1]: Leaving directory `/root/httpd-2.2.32/support' make[1]: Entering directory `/root/httpd-2.2.32' Installing configuration files mkdir /usr/local/httpd22/conf mkdir /usr/local/httpd22/conf/extra mkdir /usr/local/httpd22/conf/original mkdir /usr/local/httpd22/conf/original/extra Installing HTML documents mkdir /usr/local/httpd22/htdocs Installing error documents mkdir /usr/local/httpd22/error Installing icons mkdir /usr/local/httpd22/icons mkdir /usr/local/httpd22/logs Installing CGIs mkdir /usr/local/httpd22/cgi-bin Installing header files Installing build system files Installing man pages and online manual mkdir /usr/local/httpd22/man mkdir /usr/local/httpd22/man/man1 mkdir /usr/local/httpd22/man/man8 mkdir /usr/local/httpd22/manual make[1]: Leaving directory `/root/httpd-2.2.32'
好了,編譯安裝已經完成,接下來就要對系統進行配置了。
5.把httpd的可執行程序加入系統環境變量
#加入系統環境變量以后使用httpd就不再需要每次都輸入其絕對路徑,方便快捷。 [root@localhost httpd-2.2.32]# vi /etc/profile.d/httpd.sh #在/etc/profile.d/這個目錄新建一個httpd.sh的文件,加入以下內容: PATH=$PATH:/usr/local/httpd22/bin export PATH 然后保存退出,執行以下命令,使這個文件生效。 [root@localhost httpd-2.2.32]# source /etc/profile.d/httpd.sh
6.關閉系統防火墻
[root@localhost httpd-2.2.32]# service iptables stop iptables: Setting chains to policy ACCEPT: filter [ OK ] iptables: Flushing firewall rules: [ OK ] iptables: Unloading modules:
7.啟動httpd
[root@localhost httpd-2.2.32]# apachectl start httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain for ServerName #這個報錯可以暫時不用理會,不關系到本次試驗的成敗 [root@localhost httpd-2.2.32]# netstat -tunlp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1333/sshd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1412/master tcp 0 0 :::80 :::* LISTEN 27285/httpd tcp 0 0 :::22 :::* LISTEN 1333/sshd tcp 0 0 ::1:25
可以看到系統中的80端口已經開啟
打開系統瀏覽器,輸入虛擬機的IP地址,回車,可以看到以下界面,說明apache已經在工作了。
#進入apache存放默認存放網頁的目錄 [root@localhost httpd-2.2.32]# cd /usr/local/httpd22/htdocs/ [root@localhost htdocs]# ls index.html [root@localhost htdocs]# vi index.html #編輯index.html文件,把原有內容換成以下內容 <html><body><h1>Hello world!</h1></body></html>
刷新瀏覽器,可以看到網頁內容變了,再次確認apache在工作中。
8.把httpd的庫文件加入到系統的庫中,這樣別的軟件包就也使用這些庫文件了。
[root@localhost htdocs]# vi /etc/ld.so.conf.d/httpd.conf [root@localhost htdocs]# ldconfig #讓系統生成庫文件的緩存
9.把httpd的man文檔加入到系統的man庫中,方便隨時調用
[root@localhost htdocs]# vi /etc/man.config 43 MANPATH /usr/man 44 MANPATH /usr/share/man 45 MANPATH /usr/local/man 46 MANPATH /usr/local/share/man 47 MANPATH /usr/X11R6/man 48 MANPATH /usr/local/httpd22/man #在第47行下邊加入httpd的man文件的地址
大功告成!!So easy吧!
原創文章,作者:renpingsheng,如若轉載,請注明出處:http://www.www58058.com/73809
文章詳細的介紹了httpd的編譯安裝的過程,流程寫的很詳細,666