天天看點

初接觸Linux,LAMP的構架

今天給大家帶來的是lamp的構架

一、lamp簡介

           lamp(linux- apache-mysql-php)網站架構是目前國際流行的web架構,該架構包括:linux作業系統,apache網絡伺服器,mysql資料庫,perl、php或者python程式設計語言,所有組成産品均是開源軟體,是國際上成熟的架構架構,很多流行的商業應用都是采取這個架構。lamp具有通用、跨平台、高性能、低價格的 優勢,是以lamp無論是性能、品質還是價格都是企業搭建網站的首選平台。

二、相關說明

   1、本篇(lamp系列之一)主要介紹整個平台架構的搭建:apache2.4.9的編譯安裝,mysql-5.5.33的安裝,php-5.4.26的編譯安裝,以及整個平台的互聯互通;第二篇将介紹《lamp的性能測試以及安裝xcache,為php加速》。

   2、為了模拟環境的真實性,實驗中使用3台伺服器,apache伺服器,php伺服器和mysql資料庫伺服器

   3、關于ip:apache(172.16.251.93),php(172.16.150.150),mysql(172.16.251.104)

   4、介于在本文中會使用到名稱解析,而關于dns的博文在本部落格中已經有兩篇,是以這裡為了友善,不再搭建dns伺服器,而是使用修改hosts檔案來做名稱解析

三、apache2.4.9的編譯安裝

   1、解決依賴關系

       httpd-2.4.9需要較新版本的apr和apr-util,是以需要事先對其進行更新。事先我們還應該裝好開發包組和pcre。

1

2

3

<code>yum -y</code><code>install</code><code>pcre-devel</code>

<code>yum -y groupinstall</code><code>"development tools"</code>

<code>yum -y groupinstall</code><code>"server platform development"</code>

    1)編譯安裝apr

4

<code># tar xf apr-1.5.0.tar.bz2</code>

<code># cd apr-1.5.0</code>

<code># ./configure --prefix=/usr/local/apr</code>

<code># make &amp;&amp; make install</code>

    2)編譯安裝apr-util

<code># tar xf apr-util-1.5.3.tar.bz2</code>

<code># cd apr-util-1.5.3</code>

<code># ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr</code>

   2、編譯安裝httpd-2.4.9

<code># tar xf httpd-2.4.9.tar.bz2</code>

<code># cd httpd-2.4.9</code>

<code># ./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</code>

   在httpd-2.4.9的安裝路徑選擇上,為了不和系統的httpd沖突,我們指定其安裝路徑為/usr/local/apache,配置檔案裝到/etc/httd24中,同時一會兒的服務也要改為httpd24

   選項解釋說明:--prefix指定安裝路徑,--sysconfdir指定配置檔案目錄,--enalbe-so支援基于dmo的方式動态加載子產品,--enable-ssl支援https協定,--enable-cgi支援cgi機制,--enable-rewrite支援url重寫,--with-zlib支援網頁資料壓縮,--enable-modules=most啟用大多數的常用子產品,--with-mpm=event預設的mpm子產品為event

   3、修改httpd的主配置檔案,設定其pid檔案的路徑

      因為在httpd2.4中,其pid的位置變的很詭異,不再是在/var/run下,是以我們就給它修改到/var/run下,其實不改也無妨,隻要設定對了就好了

<code>vim</code><code>/etc/httpd/httpd</code><code>.conf</code>

<code>添加如下項</code>

<code>pidfile “/var/run/http24.pid”</code>

   4、提供sysv服務腳本/etc/rc.d/init.d/http24

   這個腳本就不寫了,直接稍微改改httpd的服務腳本就好了,先拷貝一份

   修改httpd的腳本,改為适合httd24的,隻需把這幾個變量改了就好了,下面的start(),stop()等參數都是調用的這幾個變量,是以别的無需修改。儲存退出後不需要再給執行權限了,已經有了。

初接觸Linux,LAMP的構架

   5、把httpd24添加到系統服務,并測試

6、導出頭檔案

7、導出man幫助手冊

 8、輸出二進制程式

<code>#vim /etc/profile.d/httpd.sh</code>

<code>export</code><code>path=</code><code>/usr/local/apache/bin</code><code>:$path</code>

<code>#. /etc/profile.d/httpd.sh</code>

四、安裝mysql-5.5.33

1、準備資料存放的檔案系統

       因為資料總是在動态增長的,是以我們要建立一個邏輯卷來儲存資料。使用/dev/sdb1這個分區來建立邏輯卷。

    1)準備磁盤為lvm格式

    2)建立lvm并格式化

 2、設定開機自動挂載

       這裡假設其邏輯卷的挂載目錄為/data,而後需要建立/data/mydata目錄做為mysql資料的存放目錄。

   3、檢視挂載情況

   4、為mysql準備系統使用者群組

初接觸Linux,LAMP的構架

   5、進入/data挂載目錄,建立mydata資料存放的目錄,并修改屬主和屬組

  6、解壓mysql并為其建立一個連結,以後更新的時候,直接改連結位址就可以了

 7、進入/usr/local/mysql檔案夾,修改屬主與屬組

8、初始化系統庫,進入到/usr/local/mysql

9、為mysql提供主配置檔案,并修改此檔案中thread_concurrency的值為你的cpu個數乘以2,另外還需要添加如下行指定mysql資料檔案的存放位置

<code># cd /usr/local/mysql</code>

<code># cp support-files/my-large.cnf  /etc/my.cnf</code>

 10、為mysql提供sysv服務腳本并添加為系統服務

5

<code># cp support-files/mysql.server  /etc/rc.d/init.d/mysqld</code>

<code># chmod +x /etc/rc.d/init.d/mysqld</code>

<code># chkconfig --add mysqld</code>

<code># chkconfig mysqld on</code>

11、啟動mysql服務,看能否正常啟動

12、後續操作

為了使用mysql的安裝符合系統使用規範,并将其開發元件導出給系統使用,這裡還需要進行如下步驟:

   1)輸出mysql的man手冊至man指令的查找路徑:

       編輯/etc/man.config,添加如下行即可:

       manpath  /usr/local/mysql/man

   2)輸出mysql的頭檔案至系統頭檔案路徑/usr/include:

       這可以通過簡單的建立連結實作:

       # ln -sv /usr/local/mysql/include  /usr/include/mysql

   3)輸出mysql的庫檔案給系統庫查找路徑:

       # echo ‘/usr/local/mysql/lib‘ &gt; /etc/ld.so.conf.d/mysql.conf

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

       # ldconfig

   4)修改path環境變量,讓系統可以直接使用mysql的相關指令。具體實作過程這裡不再給出。

       # vim /etc/profile.d/mysql.sh

       #export path=/usr/local/mysql/bin:$path

       #. /etc/profile.d/mysql.sh

五、編譯安裝php-5.4.26

 1、編譯安裝php ,步驟和上面的都一樣,就不再給圖了,隻給步驟

因為我們這裡php和mysql伺服器是分開部署的,不在本地,是以得考慮到資料庫的連接配接問題。

說明:如果使用php5.3以上版本,為了連結mysql資料庫,可以指定mysqlnd,這樣在本機就不需要先安裝mysql或mysql開發包了。mysqlnd從php 5.3開始可用,可以編譯時綁定到它(而不用和具體的mysql用戶端庫綁定形成依賴),但從php 5.4開始它就是預設設定了。

<code># tar xf php-5.4.26.tar.bz2</code>

<code># cd php-5.4.26</code>

<code># ./configure --prefix=/usr/local/php --with-openssl --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 --with-mysql=mysqlnd --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd</code>

<code># make</code>

<code># make intall</code>

2、為php提供配置檔案(我的php解壓在了/root/soft下,安裝在了/usr/local/php下)

<code>cp</code><code>/root/soft/php-5</code><code>.4.26</code><code>/php</code><code>.ini-production</code><code>/etc/php</code><code>.ini</code>

3、 編輯apache配置檔案httpd.conf,以apache支援php

<code># vim /etc/httpd24/httpd.conf</code>

<code>addtype application</code><code>/x-httpd-php</code><code>.php</code>

<code>addtype application</code><code>/x-httpd-php-source</code><code>.phps</code>

   定位至directoryindex index.html

   修改為:directoryindex  index.php  index.html

六、配置php-fpm

因為apache伺服器連接配接php伺服器是通過fastcgi協定的,是以我們還需通過php-fpm對其進行配置。

   1、為php-fpm提供sysv init腳本,并将其添加至服務清單:

<code># cp /root/soft/php-5.4.26/sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php-fpm</code>

<code># chmod +x /etc/rc.d/init.d/php-fpm</code>

<code># chkconfig --add php-fpm</code>

<code># chkconfig php-fpm on</code>

 2、為php-fpm提供配置檔案:

<code># cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf</code>

3、配置php-fpm的相關選項,并啟用pid檔案

<code>pm.max_children = 50</code>

<code>pm.start_servers = 5</code>

<code>pm.min_spare_servers = 2</code>

<code>pm.max_spare_servers = 8</code>

<code>pid =</code><code>/usr/local/php/var/run/php-fpm</code><code>.pid</code>

4、修改fpm的預設監聽端口

   預設情況下,fpm監聽在127.0.0.1的9000端口,也可以使用如下指令驗正其是否已經監聽在相應的套接字。

   # netstat -tnlp | grep php-fpm

   tcp   0  0  127.0.0.1:9000   0.0.0.0:*   listen   689/php-fpm

是以我們要把監聽端口改到我們的php伺服器上

<code>vim</code><code>/usr/local/php/etc/php-fpm</code><code>.conf</code>

listen = 172.16.9.147:9000

接下來就可以啟動php-fpm并驗證其否成功監聽了

     使用如下指令來驗正(如果此指令輸出有中幾個php-fpm程序就說明啟動成功了):

   # ps aux | grep php-fpm

七、配置httpd-2.4.9

1、啟用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

   2、配置虛拟主機支援使用fcgi

     1)要使用虛拟主機,首先要關閉中心主機,再開啟虛拟主機的子產品兒,也是在/etc/httpd24/httpd.conf中

2)配置虛拟主機

<code>vim</code><code>/etc/httpd24/extra/httpd-vhosts</code><code>.conf</code>

proxypassmatch:把以.php結尾的檔案請求發送到php-fpm程序,php-fpm至少需要知道運作的目錄和uri,是以這裡直接在fcgi://127.0.0.1:9000後指明了這兩個參數,其它的參數的傳遞已經被mod_proxy_fcgi.so進行了封裝,不需要手動指定。是以在apache伺服器和php伺服器都應該建立/www/shuishui.com/這個目錄,然後把網頁檔案放到這個目錄中來,apache下要儲存靜态的index.html和動态的index.php,php伺服器上隻需儲存動态的index.php即可。

   3、繼續編輯apache的主配置檔案,讓apache能識别php格式的頁面,并支援php格式的首頁

<code>vim</code><code>/etc/httpd24/httpd</code><code>.conf</code>

1)添加如下二行

      addtype application/x-httpd-php  .php

      addtype application/x-httpd-php-source  .phps

   2)定位至 directoryindex index.html

      修改為:directoryindex  index.php  index.html

八、測試apache伺服器與php伺服器的互連

在apache伺服器與php伺服器下的/www/shuishui.com/目錄中分别建立index.php。apache中的index.php隻需要有這個名就可以,因為它會去調用php伺服器中的php.index,是以php伺服器中的index.php必須要有内容。

給php伺服器中的首頁檔案來個測試頁,并重新開機下服務:

<code>service httpd24 restart</code>

到windows上去通路下www.shuishui.com試試,下面就是見證奇迹的時刻

apache與pah伺服器的互聯成功

   補充:apache httpd 2.4以前的版本中,要麼把php作為apache的子產品運作,要麼添加一個第三方子產品支援php-fpm實作。

九、測試php伺服器與mysql伺服器的互聯

1、在php伺服器上的index.php中加入連接配接mysql伺服器的選項

  2、測試能否成功連上mysql資料庫

哎,失敗了!這是為什麼呢?為什麼呢?雖然在index.php中要求連接配接資料庫,可是你想使用人家mysql的資源,也不獲得mysql的授權,這怎麼可以?除非你想黑了它。沒那技術就去拿授權吧!

   3、在mysql伺服器上授權

4、再來,重新連接配接