LAMP基于編譯安裝方式實現(httpd與php以fastcgi方式結合)3

概述

    在某些現有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目錄,方便管理

    blob.png    

    2、查看解壓出來的目錄中,關于安裝指南的說明,其中INSTALL-BINARY有詳細的安裝的步驟

    1.png

    3、添加系統用戶mysql,作為mariadb運行時的用戶身份,修改mysql目錄的屬主屬組為mysql用戶,讓該mariadb程序對目錄有寫權限

    blob.png

    4、創建mariadb數據存放目錄,修改目錄屬主屬組為mysql

    blob.png

    5、為mariadb提供配置文件,修改配置文件中的數據目錄指向我們準備的數據目錄

    blob.png    

    blob.png

    6、通用二進制格式安裝時,需要執行數據庫初始化腳本

    blob.png

    7、導出PATH環境變量,庫文件,頭文件

    blob.png

    blob.png    

    blob.png

    8、提供服務腳本,利用service命令啟動數據庫服務

    blob.png

    9、執行第一次啟動數據庫時的安全初始化命令,增強其安全性,測試數據庫是否工作正常

    blob.png

    blob.png

第二章    編譯安裝httpd-2.4

    1、準備編譯安裝的環境,安裝Development Tools和Server Platform Development

    blob.png

    2、安裝httpd程序依賴的程序包

    3.png    

    3、下載httpd-2.4源碼包,解壓,執行編譯安裝

    blob.png

    4.png

    編譯選項說明:

--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

    blob.png

    4、導出PATH環境變量,頭文件,man手冊所在路徑

    blob.png

    blob.png    

    blob.png

    5、啟動,測試httpd服務是否正常

    blob.png

第三章    編譯安裝php-5.4

    php基于module方式和基于fastcgi方式與httpd結合時的區別主要在編譯安裝php時所啟用的選項的不同,本處以php-fpm的方式(fastcgi)方式為主,介紹其編譯安裝過程,對module方式,也會有相應的說明

    1、安裝php依賴的軟件包

    11.png

    2、下載php源碼包,解壓,編譯安裝

    blob.png

    1.png

    編譯選項說明:

--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即可

    blob.png

    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腳本

    1111.png

    

    5、根據需要,修改php-fpm配置文件和服務腳本

    blob.png

    blob.png

    

第四章    修改httpd的配置文件,讓其能支持反向代理php請求到php-fpm進行處理

    1、修改httpd配置文件,啟動反向代理相關模塊,重啟服務

    blob.png

    blob.png

    2、提供測試頁面,驗證lamp環境是否工作正常

        在httpd的配置文件中加入如下配置,將php的資源反代給php-fpm處理

        此示例中為編輯中心主機的配置,如果是虛擬主機,則可以在httpd主配置文件中啟用Include中相關虛擬主機的配置文件,然后根據實際需要編輯虛擬主機的配置文件

    blob.png

    blob.png

    blob.png

    blob.png

原創文章,作者:M20-1倪文超,如若轉載,請注明出處:http://www.www58058.com/51722

(0)
M20-1倪文超M20-1倪文超
上一篇 2016-10-17 21:41
下一篇 2016-10-17 22:27

相關推薦

  • N25-第九周作業

    1、寫一個腳本,判斷當前系統上所有用戶的shell是否為可登錄shell(即用戶的shell不是/sbin/nologin);分別統計這兩類用戶的個數;通過字符串比較來實現; #!/bin/bash     echo “可登錄類型有有$(awk -F: ‘/[^\<nologin\>…

    Linux干貨 2017-03-11
  • 文件壓縮和軟件包管理

    Linux壓縮打包 壓縮是一種通過特定的算法來減小計算機文件大小的機制。有利于文件在網絡上的傳輸,節約帶寬。在Linux中,壓縮是以后綴名區分文件的。(Linux中很少見)壓縮文件都會呈現醒目的紅色。 注意!以下壓縮軟件只能壓縮文件而不能壓縮目錄。不能對目錄直接壓縮! compress命令 compress這個命令是非常老舊的一款命令,現在基本已經不用了 而…

    Linux干貨 2016-08-24
  • sed

    簡介     sed 是一種流編輯器,它一次處理一行內容。處理時,把當前處理的行存儲在臨時緩沖區中,稱為“模式空間”(pattern space),接著用sed命令處理緩沖區中的內容,處理完成后,把緩沖區的內容送往屏幕。接著處理下一行,這樣不斷重復,直到文件末尾。文件內容并沒有 改變,除非你使用重定向存儲輸出。Sed主…

    Linux干貨 2016-03-22
  • 第二周作業

    1、Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。     文件管理類命令:cp、mv、rm     (1)cp:復制命令      單源復制(源文件為文本文件)    &n…

    Linux干貨 2017-01-18
  • 馬哥教育網絡班21期+第14周課程練習

    iptables關鍵點 表:filter(過濾,防火墻);nat(網絡地址轉換);mangle(拆解報文,做出修改,封裝報文);raw(關閉nat表啟用的鏈接追蹤機制);上述是根據功能來區分的,寫規則要明白要實現的功能 鏈:PREROUTING,INPUT,FORWARD,OUTPUT,POSTROUTING 數據流向:流入PREROUTING–…

    Linux干貨 2016-08-26
  • python 10第一周博客作業

    1. 修改提示符格式 PS1=”\[\e[1;5;41;33m\][\u@\h \W]\\$\[\e[0m\]” 2.命令別名:alias NAME=’VALUE’ ? 如果想永久有效,要定義在配置文件中 僅對當前用戶:~/.bashrc ? 對所有用戶有效:/etc/bashrc 3.日期和時間:相關命令 d…

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