CentOS7下編譯安裝Apache

在Linux中通過編譯源代碼進行安裝軟件,需要GCC(GNU Compiler Collection,GNU編譯器套件)的支持。
通過yum安裝GCC

[root@localhost ~]# yum install gcc

C程序源碼編譯安裝三個步驟:
第一步:./configure
  (1)通過選項傳遞參數,指定啟用特性、安裝路徑等;執行時會參考用戶的指定以及Makefile.in文件生成makefile;
   –help:獲取其支持使用的選項
   選項分類:
    安裝路徑設定:
     –prefix=/PATH/TO/SOMEWHERE:指定默認安裝位置;默認為/usr/local/
     –sysconfdir=/PATH/TO/SOMEWHERE:指定配置文件安裝位置

    System types:交叉編譯時,指定目標系統類型

    Optional Features: 可選特性
     –disable-FEATURE
     –enable-FEATURE[=ARG]

    Optional Packages: 可選包
     –with-PACKAGE[=ARG]
     –without-PACKAGE       
  (2)檢查依賴到的外部環境
 第二步:make
  根據makefile文件,構建應用程序
 第三步:make install

在Apache官網下載源碼包進行編譯安裝,下載地址:http://httpd.apache.org/download.cgi

[root@localhost ~]# wget http://mirrors.tuna.tsinghua.edu.cn/apache//httpd/httpd-2.4.23.tar.bz2
[root@localhost ~]# tar xf httpd-2.4.23.tar.bz2
[root@localhost ~]# cd httpd-2.4.23
[root@localhost httpd-2.4.23]# ./configure --prefix=/usr/local/apache2 --sysconfdir=/usr/local/conf/apache2.conf
configure: error: APR not found.  Please read the documentation.

Apache在安裝時需要依賴一些環境,這里報錯提示需要安裝APR(Apache Portable Runtime),下載地址:http://apr.apache.org/download.cgi

[root@localhost ~]# wget http://mirror.bit.edu.cn/apache//apr/apr-1.5.2.tar.bz2
[root@localhost ~]# tar xf apr-1.5.2.tar.bz2
[root@localhost ~]# cd apr-1.5.2
[root@localhost apr-1.5.2]# ./configure --prefix=/usr/local/apr
[root@localhost apr-1.5.2]# make
[root@localhost apr-1.5.2]# make install
[root@localhost apr-1.5.2]# cd ../httpd-2.4.23/
[root@localhost httpd-2.4.23]# ./configure --prefix=/usr/local/apache2 --sysconfdir=/usr/local/conf/apache2.conf
configure: error: APR not found.  Please read the documentation.

依舊報上面錯誤,這是因為編譯安裝自定義了APR的安裝目錄,所以需要通過–with-apr手動指定APR安裝目錄

[root@localhost httpd-2.4.23]# ./configure --prefix=/usr/local/apache2 --sysconfdir=/usr/local/conf/apache2.conf --with-apr=/usr/local/apr
configure: error: APR-util not found.  Please read the documentation.

這次報錯提示缺少APR-util環境,下載地址:http://apr.apache.org/download.cgi

[root@localhost ~]# wget http://mirror.bit.edu.cn/apache//apr/apr-util-1.5.4.tar.bz2
[root@localhost ~]# tar xf apr-util-1.5.4.tar.bz2
[root@localhost ~]# cd apr-util-1.5.4
[root@localhost apr-util-1.5.4]# ./configure --prefix=/usr/local/apr-util
configure: error: APR could not be located. Please use the --with-apr option.

報錯提示編譯APR-util需要指定APR路徑

[root@localhost apr-util-1.5.4]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
[root@localhost apr-util-1.5.4]# make
[root@localhost apr-util-1.5.4]# make install

有了以上經驗,再次編譯Apache時指定APR-util路徑

[root@localhost httpd-2.4.23]# ./configure --prefix=/usr/local/apache2 --sysconfdir=/usr/local/conf/apache2.conf --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util
configure: error: pcre-config for libpcre not found. PCRE is required and available from http://pcre.org/

此處報錯提示缺少PCRE環境,下載地址:https://sourceforge.net/projects/pcre/files/pcre
注意:此處應安裝PCRE;如果安裝PCRE2會報如下錯誤:

configure: error: Did not find pcre-config script at /usr/local/pcre.

[root@localhost ~]# wget https://sourceforge.net/projects/pcre/files/pcre/8.39/pcre-8.39.tar.bz2
[root@localhost ~]# tar xf pcre-8.39.tar.bz2
[root@localhost ~]# cd pcre-8.39
[root@localhost pcre-8.39]# ./configure --prefix=/usr/local/pcre
configure: error: You need a C++ compiler for C++ support.

此處報錯提示需要C++編譯器,通過yum安裝gcc-c++

[root@localhost pcre-8.39]# yum install gcc-c++
[root@localhost pcre-8.39]# ./configure --prefix=/usr/local/pcre
[root@localhost pcre-8.39]# make
[root@localhost pcre-8.39]# make install

再次編譯Apache,指定PCRE路徑

[root@localhost httpd-2.4.23]# ./configure --prefix=/usr/local/apache2 --sysconfdir=/usr/local/conf/apache2.conf --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-pcre=/usr/local/pcre
[root@localhost httpd-2.4.23]# make
[root@localhost httpd-2.4.23]# make install

至此,Apache編譯安裝完成了,接下來進行安裝后的配置:
(1)導出二進制程序目錄至PATH環境變量中:
  編輯文件/etc/profile.d/apache.sh
   export PATH=$PATH:/usr/local/apache2/bin
(2)導出頭文件:
  基于符號鏈接的方式實現:
   ln -sv /usr/local/apache2/include/ /usr/include/apache
(3)導出庫文件路徑:
  編輯文件/etc/ld.so.conf.d/NAME.conf,添加新的庫文件所在目錄至此文件中
   讓系統重新生成緩存:ldconfig [-v]
(4)導出幫助手冊:
  編輯/etc/man_db.conf文件,添加一個MANPATH(CentOS7下自動識別man手冊)

啟動Apache服務命令:apachectl start

使用ss -tnl命令查看系統是否監聽于80端口,使用iptables -F命令臨時清除防火墻規則,最后使用瀏覽器訪問服務器ip,若出現

It works!

則表示Apache服務啟動成功,安裝到此結束。

原創文章,作者:蘿卜,如若轉載,請注明出處:http://www.www58058.com/43274

(0)
蘿卜蘿卜
上一篇 2016-09-05
下一篇 2016-09-05

相關推薦

  • Linux基礎知識

    命令的語法通用格式: # COMMAND OPTIONS ARGUMENTS COMMAND:  發起一命令:請求內核將某個二進制程序運行為一個進程; 程序 –> 進程 靜態 –> 動態(有生命周期) 命令本身是一個可執行的程序文件:二進制格式的文件,有可能會調用共享庫文件; 多數系統程序文件都存放在:/bin,…

    Linux干貨 2016-10-29
  • linux添加用戶

    今天給大家說一下linux添加用戶,大家可能覺得添加用戶很簡單,’adduser 用戶名’就這個命令搞掂了。那么大家知道這個命令幫我們完成了那些事情呢,今天就給大家普及一下 添加一個linux用戶需要關系到以下幾個文件: 保存用戶組的/etc/group文件。 保存用戶ID和密碼的/etc/passwd文件。 在home目錄下生產一個…

    Linux干貨 2017-05-28
  • 磁盤分區管理

    進行磁盤分區之前首先要了解什么是磁盤分區:         磁盤分區是在磁盤上劃分幾個邏輯部分,盤片一旦劃分成數個分區,不同類的目錄與文件可以存儲進不同的分區。越多分區,也就有更多不同的地方,可以將文件的性質區分得更細,按照更為細分的性質,存儲在不同的地方以管理文件;但太多分區就…

    2017-08-21
  • iptables基礎實戰練習

    (1) 放行ssh (端口:22) 1 iptables -A INPUT -d 192.168.42.153 -p tcp –dport 22 -j ACCEPT 2 iptables -A OUTPUT -s 192.168.42.153 -p tcp –sport 22 -j ACCEPT (2)修改默認規則鏈(關閉所有端口) 1 iptables…

    2017-09-10
  • 腳本編程部分_第十周練習

    Q1:寫一個腳本: (1) 能接受四個參數:start, stop, restart, status;start: 輸出“starting 腳本名 finished.”其余參數類似; (2) 其它任意參數,均報錯退出; #!/bin/bash # read -p "The following choices&…

    Linux干貨 2017-01-01
  • 來馬哥教育后

    來北京三天了,說實話,我長了不少見識,甚至可以說是見過了以前一些從沒想到過的事情,我拼了命往大城市來,如今如我所愿了,我來的時候發誓對自己說:我要留在北京,我也要積累足夠的資本讓自己真正成為大城市的上層社會人士,現在吃多少苦我都無所謂。 我以前在建筑工地的時候想:我將來能學IT是最幸福的事了。當時真是這么想的,等我真到馬哥教育,我發現,我把問題想的太簡單,就…

    Linux干貨 2018-03-26
欧美性久久久久