概述
在某些現有rpm包不能滿足需求的時候,可能需要編譯安裝LAMP環境,本篇就介紹下php與httpd結合方式為fastcgi方式結合時的編譯安裝,同時,由于httpd與php以module方式結合時,僅是編譯選項有所差別,故也會簡單說明下編譯選項的差異
環境
CentOS7系統,IP為10.1.32.72
httpd:編譯安裝,httpd-2.4
php5:編譯安裝,php-5.4
mariadb:通用二進制格式安裝,mariadb-5.5
第一章 通用二進制格式安裝mariadb-5.5
1、下載通用二進制格式的mariadb軟件包,解壓到/usr/local目錄,并將解壓出來的目錄以軟鏈接方式連接到mysql目錄,方便管理
2、查看解壓出來的目錄中,關于安裝指南的說明,其中INSTALL-BINARY有詳細的安裝的步驟
3、添加系統用戶mysql,作為mariadb運行時的用戶身份,修改mysql目錄的屬主屬組為mysql用戶,讓該mariadb程序對目錄有寫權限
4、創建mariadb數據存放目錄,修改目錄屬主屬組為mysql
5、為mariadb提供配置文件,修改配置文件中的數據目錄指向我們準備的數據目錄
6、通用二進制格式安裝時,需要執行數據庫初始化腳本
7、導出PATH環境變量,庫文件,頭文件
8、提供服務腳本,利用service命令啟動數據庫服務
9、執行第一次啟動數據庫時的安全初始化命令,增強其安全性,測試數據庫是否工作正常
第二章 編譯安裝httpd-2.4
1、準備編譯安裝的環境,安裝Development Tools和Server Platform Development
2、安裝httpd程序依賴的程序包
3、下載httpd-2.4源碼包,解壓,執行編譯安裝
編譯選項說明:
--prefix 指明程序安裝目錄 --sysconfdir 指明配置文件存放目錄 --enable-so 表示啟用模塊的動態裝卸載功能 --enable-ssl 表示啟用ssl功能,此項可能需要先安裝openssl-devel包 --enable-cgi 表示啟用支持cgi機制的功能 --enable-rewrite 表示支持url重寫功能 --enable-modules=most 表示啟用的http模塊有哪些,most表示啟動大多數 --enable-mpms-shared=all 表示以共享方式啟用哪些MPM模塊(prefork、worker、event), all表示所有的,此項為httpd2.4獨有的選項,因為只有2.4才支持MPM的動態裝卸載,2.2的MPM為靜態的,只有編譯進去,才能使用 --with-pmp=prefork 表示默認啟動的MPM是哪種 --with-zlib 表示依賴zlib,用于支持壓縮功能 沒用=等號指明zlib的路徑,則系統會自動到被依賴的文件的默認的路徑去尋找, 如果被依賴的文件不是rpm安裝,或不放在默認路徑下,則需要手動利用=等號指明路徑 --with-pcre 表示依賴的pcre,用于支持url重寫時支持正則表達式 --with-apr 依賴的apr --with-apr-util 依賴的apr-util
4、導出PATH環境變量,頭文件,man手冊所在路徑
5、啟動,測試httpd服務是否正常
第三章 編譯安裝php-5.4
php基于module方式和基于fastcgi方式與httpd結合時的區別主要在編譯安裝php時所啟用的選項的不同,本處以php-fpm的方式(fastcgi)方式為主,介紹其編譯安裝過程,對module方式,也會有相應的說明
1、安裝php依賴的軟件包
2、下載php源碼包,解壓,編譯安裝
編譯選項說明:
--prefix 指明安裝路徑 --with-mysql 指明依賴的mysql的路徑 --with-openssl 指明依賴的openssl,用于支持ssl通信 --with-mysqli 指明依賴的mysqli,mysqli是mysql的另外一個訪問接口 --with-freetype-dir 用于支持顯示的字體,可能會要安裝freetype-devel --with-png-dir 用于顯示支持png格式的圖片 --with-jpeg-dir 用于顯示支持jpeg格式的圖片 --enable-mbstring 用于讓mysql支持中文 --with-zlib 用于支持壓縮功能 --with-libxml 用于分析xml格式 --enable-xml 表示支持xml --enable-sockets 表示支持以sockets方式進行通信 --with-apxs2 指明apxs文件的路徑,apxs文件作用是第三方模塊可以借助該文件與httpd建立關聯關系 相當于一個銜接器的作用 --with-mcrypt 表示支持加密庫 --with-config-file-path=/etc 表示配置文件的存放路徑 --with-config-file-scan-dir=/etc/php.d 表示還要掃描哪個目錄下的.ini結尾的文件作為配置文件的組成部分 --with-bz2 表示支持bz2壓縮 如果httpd使用的MPM為worker或event,則需要啟用該選項 --enable-maintainer-zts 當啟用的MPM為worker或event時,需要啟動該選項,因為此處我們是以prefork的MPM,所以不用此項 --with 之類的選項,會到對應依賴的文件的默認安裝路徑下去尋找,如果程序不是安裝在默認路徑下,則需要用=等號指定位置,如果沒有安裝對應程序,則需要手動安裝,一般編譯時用到的程序是程序的devel包 如果httpd與php結合的方式為php-fpm,則需要將--with-apxs2=/usr/local/apache24/bin/apxs去掉,然后啟用--enable-fpm選項
3、提供php的配置文件
在源碼包解壓出來的目錄中,有提供php的樣例配置文件,復制到/etc/php.ini即可
4、提供php-fpm的配置文件,提供php-fpm的服務腳本(如果php和httpd的結合方式為module,則無需此步驟)
在源碼包解壓目錄下的sapi/fpm/目錄下有php-fpm.conf的配置文件樣例和php-fpm服務腳本樣例
centos6風格的樣例為:init.d.php-fpm
centos7風格的unit文件的樣例為:php-fpm.service
centos7也支持使用centos6風格的init腳本
5、根據需要,修改php-fpm配置文件和服務腳本
第四章 修改httpd的配置文件,讓其能支持反向代理php請求到php-fpm進行處理
1、修改httpd配置文件,啟動反向代理相關模塊,重啟服務
2、提供測試頁面,驗證lamp環境是否工作正常
在httpd的配置文件中加入如下配置,將php的資源反代給php-fpm處理
此示例中為編輯中心主機的配置,如果是虛擬主機,則可以在httpd主配置文件中啟用Include中相關虛擬主機的配置文件,然后根據實際需要編輯虛擬主機的配置文件
原創文章,作者:M20-1倪文超,如若轉載,請注明出處:http://www.www58058.com/51722