總結之:CentOS 6.5 LAMP分主機平臺的搭建及測試

前言

   前面的文章我們談到過了LAMP的基礎原理以及很多的相關知識了、尤其是httpd、這個強大的、牛氣轟轟的web服務器想必大們都再熟悉不過了吧、對他的介紹我們也談了很多了、這裏不再做介紹、那接下來我們就是分主機來實現LAMP平臺的搭建以及動靜頁面的測試、話不多說、我們下面來實現吧!

正文

   準備工作:
   apr-1.5.0.tar.bz2
   apr-util-1.5.2.tar.bz2
   pcre-devel-7.8-6.el6.x86_64 (用yum安裝)
   httpd-2.4.9.tar.bz2 (httpd 2.4的版本)
   ==========程序包分三臺主機存放、以上是HTTPD的===============


   bzip2-devel、libmcrypt-devel、libxml2-deve (這三個是安裝php所需要的開發包、用yum裝)
   php-5.4.26.tar.bz2 (php 5.4的版本)
   ============以上是PHP的=======================


  mysql-5.5.33-linux2.6-x86.tar.gz (mysql 5.5.33的版本)
   ============以上是mysql的=======================
wKioL1M2LUfAeYllAADnh7meSO4488.jpg


   以上準備了好多的程序包呀、但他們不是都放在一臺主機上的、上面我們有說明的哦、這裏還要注意的是服務器配置安裝的順序問題,如果是在同一臺主機上安裝搭建LAMP平臺主話,那麼就必須把php放到最後去安裝,因爲php的安裝要依賴於httpd和要用到的mysql、而我們這裏分別置於不同的主機上實現LAMP平臺,因此沒有太多的順序要求,但是,還是建議建議先安裝httpd、mysql然後再安裝php。
   以下是LAMP的工作過程中使用到的協議以及工作圖:
wKioL1M2LCqi0Cd5AAJbbBNhwWM147.jpg

補充:

(1)構建MPM爲靜態模塊
   在全部平臺中,MPM都可以構建爲靜態模塊。在構建時選擇一種MPM,鏈接到服務器中。如果要改變MPM,必須重新構建。爲了使用指定的MPM,請在執行configure腳本 時,使用參數 --with-mpm=NAME。NAME是指定的MPM名稱。編譯完成後,可以使用 ./httpd -l 來確定選擇的MPM。 此命令會列出編譯到服務器程序中的所有模塊,包括 MPM。

(2)構建 MPM 爲動態模塊

   在Unix或類似平臺中,MPM可以構建爲動態模塊,與其它動態模塊一樣在運行時加載。 構建 MPM 爲動態模塊允許通過修改LoadModule指令內容來改變MPM,而不用重新構建服務器程序。在執行configure腳本時,使用--enable-mpms-shared選項即可啓用此特性。當給出的參數爲all時,所有此平臺支持的MPM模塊都會被安裝。還可以在參數中給出模塊列表。默認MPM,可以自動選擇或者在執行configure腳本時通過--with-mpm選項來指定,然後出現在生成的服務器配置文件中。編輯LoadModule指令內容可以選擇不同的MPM。

httpd 2.4編譯安裝過程

   1、解決依賴關係
   prel兼容的正則表達式庫
   # yum -y install pcre-devel
   # yum -y groupinstall "Server Platform Development"
   # yum -y groupinstall "Development tools"

   2、編譯安裝apr
   # tar xf apr-1.5.0.tar.bz2
   # cd apr-1.5.0
   # ./configure --prefix=/usr/local/apr
   # make && make install

   3、編譯安裝apr-util
   # tar xf apr-util-1.5.3.tar.bz2
   # cd apr-util-1.5.3
   # ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
   # make && make install

   4、編譯安裝httpd 2.4
   # tar xf httpd-2.4.9.tar.bz2
   # cd httpd-2.4.9
   # ./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd24 --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/ --enable-modules=most --enable-mpms-shared=all --with-mpm=event
   # make && make install


--prefix=/usr/local/apache指定安裝路徑、不使用默認路徑
--sysconfdir=/etc/httpd24指定配置文件的路徑、24表示版本、爲了不跟我本機上的2.2的重複
--enable-so表示基於DSO動態加載模塊的
--enable-ssl這項是支持https協議的
--enable-cgi支持CGI機制的
--enable-rewrite支持URL重寫的
--with-zlibzlib是一個網絡上發送數據報文時的一個通用壓縮庫的API
--with-pcre通常支持Perl所用到的一個庫
--with-apr=/usr/local/apr指定新的apr的路徑
--with-apr-util=/usr/local/apr-util/指定新的apr-util的路徑
--enable-modules=mostmost表示啓用大多數常用的模塊
--enable-mpms-shared=all所有的MPM模塊都編譯
--with-mpm=event明確指定啓用event模塊


後續的配置:
   1) 導出頭文件
   # ln -sv /usr/local/apache/include  /usr/include/httpd
   2) 導出庫文件
       沒生成就不用導出了
   3) 導出man手冊
       # vim /etc/man.config
       MANPATH /usr/local/apache/man
   4) 輸出二進制程序
       # vim /etc/profile.d/httpd.sh
       export PATH=/usr/local/apache/bin:$PATH

爲httpd2.4提供服務腳本    
   我們可以每次開機後都手動去啓動httpd服務,這個很明顯不符合我們的正常需求,因此我們需要給httpd2.4提供服務腳本,並且加到系統自動啓動服務中、我們可以自己手工編寫腳本,也可以使用httpd2.2(系統自自帶的httpd服務)的服務腳本,稍加修改,就可以爲httd24服務了。

   這裏我借用了httd2.2的服務腳本,進行簡單修改。爲了區別原有的服務腳本httpd,這裏複製httpd爲httpd24
   注意:服務腳本存放在/etc/init.d目錄下,必須要可執行權限
   # cp /etc/init.d/httpd /etc/init.d/httpd24
   # vim /etc/init.d/httpd24

   httpd24的安裝路徑爲/usr/local/apache,且沒有sbin,只有bin因此修改下面的路徑爲當前路徑
   apachectl=/usr/local/apache/bin/apachectl
   httpd=${HTTPD-/usr/local/apache/bin/httpd}

wKioL1M2LYOjjMoLAADl92-Rh_s512.jpg
   添加至系統服務、並開機自動啓動
   # chkconfig --add httpd24
   # chkconfig  httpd24 on

   修改配置文件、主要是添加一條PidFile的文件路徑。這裏系統讀取PidFile的順序是配置文件、服務腳本,如果配置文件沒有,再去×××腳本。
   # vim /etc/httpd24/httpd.conf    
   PidFile "/var/run/httpd/httpd.pid"

wKiom1M2LeHSzQgDAABvO-g9Nvs341.jpg


   OK、啓動服務看有沒有80端口處於監聽狀態:    wKioL1M2Ld3z_jYjAAEuneWuzGA870.jpg


mysql 5.5編譯安裝過程

   1、準備數據存放的文件系統、這裏我們新建一個分區來專門存放數據文件、新建一個邏輯卷,並將其掛載至/data、這個應該很熟悉了、這裏不做過多的解釋、什麼可以留言交流。

############這些不做過多的解析、一看就明白了################
# mkdir /data
# fdisk /dev/sda
n p 3  +20G t  3 8e w
# pvcreate /dev/sda3
# vgcreate myvg /dev/sda3
# lvcreate -L 10G -n mydata myvg
# mke2fs -t ext4 /dev/myvg/mydata
# vim /etc/fstab
/dev/myvg/mydata    /data    ext4    defaults,noatime 0 0
# monut -a
# cd /data/
# mkdir mydata


   2、新建用戶以安全方式運行進程:    

# groupadd -r mysql
# useradd -g mysql -r -s /sbin/nologin -M -d /mydata/data mysql
# chown -R mysql:mysql /mydata/data


   3、安裝並初始化mysql-5.5.33    

# tar xf mysql-5.5.33-linux2.6-i686.tar.gz -C /usr/local
# cd /usr/local/
# ln -sv mysql-5.5.33-linux2.6-i686  mysql
# cd mysql
# chown -R mysql:mysql  .
# scripts/mysql_install_db --user=mysql --datadir=/mydata/data
# chown -R root  .


   4、爲mysql提供主配置文件:    

# cd /usr/local/mysql
# cp support-files/my-large.cnf  /etc/my.cnf


   並修改此文件中thread_concurrency的值爲你的CPU個數乘以2,比如這裏使用如下行:
   thread_concurrency = 2

   另外還需要添加如下行指定mysql數據文件的存放位置:
   datadir = /mydata/data

   5、爲mysql提供sysv服務腳本:    

# cd /usr/local/mysql
# cp support-files/mysql.server  /etc/rc.d/init.d/mysqld
# chmod +x /etc/rc.d/init.d/mysqld


   添加至服務列表、而後就可以啓動服務測試使用了:    

# chkconfig --add mysqld
# chkconfig mysqld on 
# service mysqld start


   爲了使用mysql的安裝符合系統使用規範,並將其開發組件導出給系統使用,這裏還需要進行如下步驟:
   6、輸出mysql的man手冊至man命令的查找路徑、編輯/etc/man.config,添加如下行即可:
   MANPATH  /usr/local/mysql/man

   7、輸出mysql的頭文件至系統頭文件路徑/usr/include:
   這可以通過簡單的創建鏈接實現:
   # ln -sv /usr/local/mysql/include  /usr/include/mysql

   8、輸出mysql的庫文件給系統庫查找路徑:
   # echo '/usr/local/mysql/lib' > /etc/ld.so.conf.d/mysql.conf

   而後讓系統重新載入系統庫:
   # ldconfig

   9、修改PATH環境變量,讓系統可以直接使用mysql的相關命令:
   # vim /etc/profile.d/mysql.sh
   export PATH=/usr/local/mysql/bin:$PATH

   啓動服務、查看監聽的端口、3306:    wKiom1M2L2yhMCHhAAHkNCaBCDk881.jpg
wKioL1M2L23iMQCBAAIz137hw7M873.jpg

php 5.4編譯安裝過程

   1、解決依賴關係、請配置好yum源(可以是本地系統光盤)後執行如下命令:
   # yum -y groupinstall "Desktop Platform Development"
   # yum -y install bzip2-devel libmcrypt-devel

   2、編譯安裝php-5.4.26
   # tar xf php-5.4.26.tar.bz2
   # cd php-5.4.26
   # ./configure --prefix=/usr/local/php --with-mysql=mysqlnd --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml  --enable-sockets --enable-fpm --with-mcrypt  --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-bz2


--prefix=/usr/local/php指定安裝路徑
--with-mysql=mysqlnd
--with-pdo-mysql=mysqlnd
--with-mysqli=mysqlnd
數據庫與php不在一個服務器上,指定此種方式,安裝數據庫連接驅動
--enable-mbstring多字節字串、像我們的中文就是多字節字串
--with-freetype-dir支持freetype、就要裝freetype-devel、跟字體相關的、字體解析工具

--with-jpeg-dir

--with-png-dir

處理jpeg、png圖片的、php可以動態生成jpeg圖片
--with-zlib是個壓縮庫、在互聯網傳輸時用來壓縮傳輸的
--with-libxml-dir=/usr這個libxml是用來解析xml的、指定/usr下
--enable-xml支持xml的
--enable-sockets支持基於sockets通信的
--enable-fpm使用fpm服務
--with-mcryptlibmcrypt-devel這個程序包所指定的
--with-config-file-path=/etc指定配置文件的存放路徑的
--with-config-file-scan-dir=/etc/php.d去掃描指定目錄下以.d結束的文件
--with-bz2支持bz2壓縮格式

wKiom1M2LLWwZXmCAAL3jyd6JBM346.jpg


說明:
   1、這裏爲了支持apache的worker或event這兩個MPM,編譯時使用了--enable-maintainer-zts選項。
   2、如果使用PHP5.3以上版本,爲了鏈接MySQL數據庫,可以指定mysqlnd,這樣在本機就不需要先安裝MySQL或MySQL開發包了。mysqlnd從php 5.3開始可用,可以編譯時綁定到它(而不用和具體的MySQL客戶端庫綁定形成依賴),但從PHP 5.4開始它就是默認設置了。
   # ./configure --with-mysql=mysqlnd --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd

   # make
   # make intall

   爲php提供配置文件:
   # cp php.ini-production /etc/php.ini


配置php-fpm

   爲php-fpm提供Sysv init腳本,並將其添加至服務列表:
   # cp sapi/fpm/init.d.php-fpm  /etc/rc.d/init.d/php-fpm
   # chmod +x /etc/rc.d/init.d/php-fpm
   # chkconfig --add php-fpm
   # chkconfig php-fpm on

wKioL1M2L-XjCPltAAGXKwTniHw155.jpg

   爲php-fpm提供配置文件:
   # cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf

   編輯php-fpm的配置文件:
   # vim /usr/local/php/etc/php-fpm.conf
   配置fpm的相關選項爲你所需要的值,並啓用pid文件
   pm.max_children = 50
   pm.start_servers = 5
   pm.min_spare_servers = 2
   pm.max_spare_servers = 8
   pid加在[global]這個區域內
   pid = /usr/local/php/var/run/php-fpm.pid

   再把配置文件中所監聽的IP改爲本主機的IP
   listen = 172.16.251.134:9000

wKiom1M2MEWCLuxjAAEM15wPdDk277.jpg


   接下來就可以啓動php-fpm了:
   # service php-fpm start

   使用如下命令來驗正(如果此命令輸出有中幾個php-fpm進程就說明啓動成功了):
   # ss -tnl | grep 9000
   # ps aux | grep php-fpm    wKioL1M2MF6g0N36AAJhqxmMi6o569.jpg


編輯apache配置文件httpd.conf,以apache支持php

    # vim /etc/httpd24/httpd.conf
    1、添加如下二行
      AddType application/x-httpd-php  .php
      AddType application/x-httpd-php-source  .phps
wKioL1M2MPiQA0nqAADCjZW7tns214.jpg


    2、定位至DirectoryIndex index.html 修改爲:
       DirectoryIndex  index.php  index.html

wKiom1M2MhTwYEu-AABTa9v4LfA760.jpg


    3、啓用httpd的相關模塊
       在Apache httpd 2.4以後已經專門有一個模塊針對FastCGI的實現,此模塊爲mod_proxy_fcgi.so,它其實是作爲mod_proxy.so模塊的擴充,因此,這兩個模塊都要加載
   LoadModule proxy_module modules/mod_proxy.so
   LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so    

wKiom1M2MMzhl9pqAADdPYOYigM868.jpg


   4、關閉正向代理

   ProxyRequests Off:關閉正向代理
   ProxyPassMatch:把以.php結尾的文件請求發送到php-fpm進程,php-fpm至少需要知道運行的目錄和URI,所以這裏直接在fcgi://xxx.x.x.x:9000後指明瞭這兩個參數,其它的參數的傳遞已經被mod_proxy_fcgi.so進行了封裝,不需要手動指定。

wKiom1M2MeuR-18wAAF1bA7lgiU032.jpg


   而後重新啓動httpd,或讓其重新載入配置文件即可測試php是否已經可以正常使用。


最後在php的指定的fcgi的路徑上提供一個php的測試頁面:    

# vim /usr/local/apache/htdocs/index.php  
<?php
      $link = mysql_connect('172.16.251.171','wei','wei');
      if ($link)
          echo "Connection Success....."
      else
          echo "Connection Failrue....."
      mysql_close();
      phpinfo();
?>


wKiom1M2MqCBKsxmAAEoSuq45M8575.jpg


爲了說明問題、我們還要在httpd服務器上提供一個靜態的html頁面:

   # vim /usr/local/apache/htdocs/test.html

   <h2>tanxw.blog.51cto.com</h2>

wKiom1M2MsSQETzjAABQMfOEbTM387.jpg


然後再測試一下看看效果:    wKioL1M2MtPwy1IPAAIwjphzAII766.jpg

wKioL1M2Mvez903XAADIxOZqpT0626.jpg


結束:

   OK、做到這裏算是分主機LAMP平臺搭建算是有個大概了吧、頁面訪問應該說沒有什麼問題了、都正常可以訪問、東西好像有點多、不過都是前前的知識了、安裝程序包比較多點而了、最後、如果各位大神發現有什麼不妥或做得不好的可以留言哦、歡迎交流學習、在此謝謝您的關注!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章