目錄
- 前言
- 一、LAMP平臺的編譯安裝
- 1.1 LAMP概述
- 1.2 搭建LAMP平臺順序
- 1.3 編譯安裝的優點
- 1.4 編譯安裝程序
- 二、編譯安裝Apache
- 2.1 Apache簡介
- 2.2.1 Apache起源
- 2.2.2 主要特點
- 2.2.3 軟體版本
- 1.X
- 2.X
- 2.3 原始碼編譯安裝程序
- 2.3.1 準備作業
- 2.3.2 安裝依賴性關系包
- 2.3.3 configure配置
- 2.3.4 make編譯和make install
- 2.3.5 優化執行路徑
- 2.3.6添加 httpd 系統服務
- 2.3.7httpd.conf修改組態檔
- 2.3.8 關閉防火墻,開啟httpd服務
- 2.3.9 驗證
前言
LAMP是指一組通常一起使用來運行動態網站或者服務器的自由軟體名稱首字母縮寫:
- Linux,作業系統
- Apache,網頁服務器
- MariaDB或MySQL,資料庫管理系統(或者資料庫服務器)
- PHP、Perl或Python,腳本語言
一、LAMP平臺的編譯安裝
1.1 LAMP概述
LAMP架構是目前成熟的企業網站應用模式之一,指的是協同作業的一整臺系統和相關軟體,能夠提供動態web站點服務及其應用開發環境
1.2 搭建LAMP平臺順序
在構建LAMP平臺時,各組件的安裝順序依次為Linux,Apache,MySQL,PHP,其中Apache和MySQL的安裝并沒有嚴格的順序要求,而PHP環境的安裝一般放到最后,負責溝通web服務器和資料庫系統以協同作業
1.3 編譯安裝的優點
- 具有較大的自由度,功能可定制
- 可及時獲得最新的軟體版本
- 普遍適用于大多數Linux版本,便于一直使用
1.4 編譯安裝程序

- 解包
開源軟體的源代碼包一般為 TarBall 形式,擴展名為“.tar.gz”或“.tar.bz2”,都可以使用 tar 命令進行解壓釋放,對于只有“.gz”擴展名的源代碼包,表示只經過壓縮而并未使用 tar 歸檔, 這樣的檔案只需使用 gzip 進行解壓縮即可,在 Linux 作業系統中,通常將各種軟體的源代碼目錄保存到“/usr/src/”目錄中,以便于集中管理,釋放后的軟體包目錄一般包括軟體名和版本資訊(如 httpd-2.4.25),解包前先安裝編譯環境和依賴包, - 配置
在編譯應用程式之前,需要進入源代碼目錄,通過目錄下的腳本檢查安裝環境,并且對 軟體的安裝目錄、功能選擇等引數進行預先配置,
環境檢查與配置作業通常由源代碼目錄中的 configure 腳本檔案來完成,可用的各種配置引數可以通過在源代碼目錄中執行“./configure --help”命令進行查看,對不同的軟體程式來說,其配置引數存在區別,但是有一個“–prefix”形式的引數卻是大多數開源軟體通用的, 該配置引數用于指定軟體包安裝的目標檔案夾,如果沒有指定任何配置引數,“configure”腳本將采用軟體默認的值進行配置, - 編譯
編譯的程序主要是根據 Makefile 檔案內的配置資訊(若上一步的配置操作失敗,將無法進行編譯),將源代碼檔案進行編譯生成二進制的程式模塊、元件、可執行檔案等, 配置完成后,只要在源代碼目錄中執行“make”命令即可執行編譯操作,編譯的程序比配置程序需要更長的時間,期間同樣會顯示大量的執行程序資訊, - 安裝
編譯完成以后,就可以執行如下的“make install”命令將軟體的執行程式、組態檔、幫助檔案等相關檔案復制到 Linux 作業系統中了,即應用程式的最后“安裝”程序,安裝程序需要的時間相對要短一些,期間也會顯示安裝的程序資訊,
二、編譯安裝Apache
2.1 Apache簡介
2.2.1 Apache起源
- 源于A Patchy Server,著名的開源web服務軟體
- 1955年時,發布Apache服務程式的1.0版本
- 由Apache軟體基金會(ASF)負責維護
- 最新的名稱為“Apache HTTP Server”
- 官方站點:http://httpd.apache.org/
2.2.2 主要特點
- 開放源代碼,跨平臺應用
- 支持多種網頁編程語言
- 模塊化設計,運行穩定,良好的安全性
2.2.3 軟體版本
1.X
- 目前最高版本是1.3,運行穩定
- 向下兼容性較好,但缺乏一些較新的功能
2.X
- 目前最高的版本是2.4
- 具有更多的特性
- 與1.X相比,配置管理風格存在較大差異
2.3 原始碼編譯安裝程序
2.3.1 準備作業
安裝Apache所需軟體:可以從官網下載
下載地址:http://httpd.apache.org/download.cgi
- apr-1.6.2.tar.gz
- apr-util-1.6.0.tar.gz
- httpd-2.4.29.tar.gz
然后將上面3個包傳到opt目錄下,我這里使用的是Xftp工具傳輸

傳輸完成后進入opt目錄下查看安裝包
[root@localhost ~]# cd /opt
[root@localhost opt]# ll
總用量 8020
-rw-r--r-- 1 root root 1071074 8月 4 17:33 apr-1.6.2.tar.gz
-rw-r--r-- 1 root root 565507 8月 4 17:33 apr-util-1.6.0.tar.gz
-rw-r--r-- 1 root root 6567926 8月 4 17:33 httpd-2.4.29.tar.bz2
drwxr-xr-x. 2 root root 6 3月 26 2015 rh
解壓安裝包
[root@localhost opt]# tar xf apr-1.6.2.tar.gz
[root@localhost opt]# tar xf apr-util-1.6.0.tar.gz
[root@localhost opt]# tar xf httpd-2.4.29.tar.bz2
將跨平臺組件包移動到原始碼包目錄下
[root@localhost opt]# mv apr-1.6.2 httpd-2.4.29/srclib/apr
[root@localhost opt]# mv apr-util-1.6.0 httpd-2.4.29/srclib/apr-util
注:apr和apr-util是跨平臺工具包,放到httpd下面,為上層的應用程式提供一個可以跨越多作業系統平臺使用的底層支持介面庫,更好的支持各種編程語言的使用
2.3.2 安裝依賴性關系包
[root@localhost opt]#
yum -y install \
gcc \ ##c語言的原始碼編譯器
gcc-c++ \ ##c++原始碼編譯器
make \ ##make工具用于將源代碼檔案轉化成二進制可執行性檔案
pcre-devel \ ##支持正則運算式
expat-devel \ ##支持標簽性語言,識別xml格式的檔案
perl ##支持perl語言
2.3.3 configure配置
[root@localhost opt]# cd /opt/httpd-2.4.29/
./configure \
--prefix=/usr/local/httpd \
--enable-so \
--enable-rewrite \
--enable-charset-lite \
--enable-cgi
| 配置模塊 | 解釋說明 |
|---|---|
| –prefix | 指定將 httpd 服務程式安裝到哪個目錄下,如/usr/local/httpd |
| –enable-so | 啟用動態加載模塊支持,使 httpd 具備進一步擴展功能的能力, |
| –enable-rewrite | 啟用網頁地址重寫功能,用于網站優化及目錄遷移維護, |
| –enable-charset-lite | 啟動字符集支持,以便支持使用各種字符集編碼的網 |
| –enable-cgi | 啟用 CGI 腳本程式支持,便于擴展網站的應用訪問能力, |
2.3.4 make編譯和make install
[root@localhost httpd-2.4.29]# make -j3 ##-j3是你核心數,最大不要超過虛擬機的核心數
[root@localhost httpd-2.4.29]# make install
此命令步驟也可以寫為
[root@localhost httpd-2.4.29]# make -j3 && make install
| 命令 | 解釋說明 |
|---|---|
| make | 將源代碼轉化成可執行性二進制檔案 |
| make install | 安裝 |
2.3.5 優化執行路徑
[root@host3 httpd-2.4.29]# ln -s /usr/local/httpd/conf/httpd.conf /etc/
##做一個組態檔的軟鏈接,方便呼叫和對組態檔的修改
[root@host3 httpd-2.4.29]# ln -s /usr/local/httpd/bin/ * /usr/local/bin
##將http的bin目錄下的命令進行軟鏈接,放到環境變數的目錄下,方便命令在全域的使用
[root@host3 httpd-2.4.29]# httpd -v
##查看下當前http版本
2.3.6添加 httpd 系統服務
[root@localhost system]# cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd
[root@localhost system]# vi /etc/init.d/httpd ###插入以下代碼
#chkconfig: 35 85 21
#description: Apache is a World Wide Web server
//35級別自動運行 第85個啟動 第21個關閉
[root@localhost system]# chkconfig --add httpd ###添加為系統服務
[root@localhost system]# chkconfig --list httpd ###查看http服務自啟狀態 該輸出結果只顯示Sysv服務,
并不包含原生 systemd 服務,SysV 配置資料可能被原生 systemd 配置覆寫
在/lib/systemd/system/目錄下,建立一個以.service 結尾的單元(unit)組態檔,用于控制由 systemd 管理或監控的 httpd 服務
[root@localhost ~]# cd /lib/systemd/system/
[root@localhost system]# vim httpd.service
[Unit]
Description=The Apache HTTP Server //描述
After=network.target //描述服務類別
[Service]
Type=forking //后臺運行形式
PIDFile=/usr/local/httpd/logs/httpd.pid //PID檔案位置
ExecStart= /usr/local/bin/apachectl $OPTIONS //啟動服務
ExecrReload= /bin/kill -HUP $MAINPID //根據PID多載配置
[Install]
WantedBy=multi-user.target
2.3.7httpd.conf修改組態檔
[root@localhost system]# vi /usr/local/httpd/conf/httpd.conf
ServerName www.51xit.top:80 ###這一行更改下
2.3.8 關閉防火墻,開啟httpd服務
[root@localhost init.d]# systemctl stop firewalld.service
[root@localhost init.d]# setenforce 0
[root@localhost system]# systemctl start httpd.service ##啟動httpd服務
[root@localhost system]# systemctl enable httpd.service ##開機自啟http
[root@localhost system]# systemctl is-enabled httpd.service ##檢查HTTP單元是否啟動
此時http服務已開啟
2.3.9 驗證
[root@host3 system]# netstat -anpt | grep 80
tcp 0 0 192.168.197.139:80 0.0.0.0:* LISTEN 69155/httpd
##在生產環境中不適用netstst命令,而是使用lsof命令
登陸網頁

驗證成功!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/139525.html
標籤:其他
