天天看點

源碼安裝LAMP,以Module方式使用PHP并使用xcache 2.0.0加速PHP

  • 介紹LAMP

   LAMP(Linux-Apache-MySQL-PHP)網站架構是目前國際流行的Web架構,該架構包括:Linux作業系統,Apache網絡伺服器,MySQL資料庫,Perl、PHP或者Python程式設計語言,所有組成産品均是開源軟體,是國際上成熟的架構架構,很多流行的商業應用都是采取這個架構,和Java/J2EE架構相比,LAMP具有Web資源豐富、輕量、快速開發等特點,微軟的.NET架構相比,LAMP具有通用、跨平台、高性能、低價格的優勢,是以LAMP無論是性能、品質還是價格都是企業搭建網站的首選平台。

首先,安裝順序為apache--->mysql--->php

環境:RHEL5.8 I386

          Development Libraries

          Development Tools

軟體包:    httpd: 2.4.4

                 php: 5.4.13

                 MySQL: 5.6.10 通用二進制包

準備:

       確定你的系統沒有安裝lamp環境,如mysql,httpd,php

  • 安裝
  • apache2.4的安裝

   由于apache2.4需要apr,apr-utils較新版本,這裡我們使用源碼包編譯安裝

   apr-1.4.6.tar.gz

   apr-util-1.4.1.tar.gz

   tar xf apr-util-1.4.1.tar.gz &&tar xf apr-1.4.6.tar.gz

   cd apr-1.4.6

   ./configure --prefix=/usr/local/apr

   make &&make install

   cd ../apr-util-1.4.1

   ./cofigure --prefix=/usr/local/apr-utils --with-apr=/usr/local/apr

   tar xf httpd-2.4.4.tar.bz2

   cd httpd-2.4.4

   ./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd --enable-so --enable-rewirte --enable-ssl --enable-cgi --enable-cgid --enable-modules=most --enable-mods-shared=most --enable-mpms-shared=all --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util

   為了友善以後使用,制做sysV風格服務啟動腳本:    

一般情況,如果是手動編譯的話,apache是沒有啟動腳本的,也就是說使用者不能通過簡單的/etc/init.d/httpd(start|stop|restart)來啟動/關閉/重新啟動。其實在源碼裡已經有啟動的腳本,我們要修改下即可,把Apache加入系統SysV服務中來。

在源碼httpd-2.x.x/build/rpm中存在httpd.init拷貝指令如下:    

cp httpd.init/etc/init.d/httpd

拷貝之後,注意其中有三處主要的地方需要修改下的:

httpd=${HTTPD-/usr/local/apache/bin/httpd}

pidfile=${PIDFILE-/usr/local/apache/logs/${prog}.pid}

CONFFILE=/usr/local/apache/conf/httpd.conf

請根據自己的實際情況更改相應的路徑!

然後運作如下指令:

chmod +x/etc/init.d/httpd

chkconfig--add httpd

chkconfig --level2345 httpd on

這樣一來,啟動、停止、重新開機Apache就可以用以下方式了:

/etc/init.d/httpdstart

/etc/init.d/httpdstop

/etc/init.d/httpdrestart

輸出PATH變量

       vim /etc/profile.d/httpd.sh

           export PATH=$PATH:/usr/local/apache/bin

  • 安裝mysql

   tar xvf mysql-5.5.28-linux2.6-i686.tar.gz

   mv mysql-5.5.28-linux2.6-i686 /usr/local

   ln -s mysql-5.5.28-linux2.6-i686 /usr/local/mysql

   注:以上是官方要求的

   useradd -r mysql

   cp support-files/my-large.cnf /etc/my.cnf

   chown -R mysql:mysql .

   scripts/mysql_install_db --user=mysql

   注:如果你的data不打算放在預設的檔案系統上,也可以加上--datadir=/data/db

           如果你修改了預設目錄,需要修改/etc/my.cnf檔案

           在【mysqld】 項下增加

           datadir = /data/db

   chown -R root:mysql .

   chown -R mysql:mysql /data/db

   chmod -R 750 .

   cp support-files/mysql.server /etc/init.d/mysqld  

   mysql指令工具

   vim /etc/profile.d/mysqld.sh

       export PATH=$PATH:/usr/local/mysql/bin

   man手冊設定

      vim /etc/man.config

       新增一行:

           MANPATH /usr/local/mysql/man

   lib庫檔案設定

       vim /etc/ld.so.conf.d/mysql.conf

       新增一行:

           /usr/local/mysql/lib

   重新加載系統庫檔案

       lddconfig -v

   include頭檔案設定

       ln -s /usr/local/mysql/include /usr/include/mysql

  • 安裝php

   tar xvf php-5.4.13.tar.bz2

   cd php-5.4.13

   ./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-openssl --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --enable-sockets --with-apxs2=/usr/local/apache/bin/apxs --with-mcrypt    --with-config-file-scan-dir=/etc/php.d --with-bz2 --enable-maintainer-zts

   此處安裝會報錯:

configure: error: mcrypt.h not found.Please reinstall libmcrypt.

   我們需要安裝加密庫需要的軟體包:

   rpm -ivh mhash-devel-0.9.2-6.el5.i386.rpm mhash-0.9.2-6.el5.i386.rpm libmcrypt-devel-2.5.7-5.el5.i386.rpm libmcrypt-2.5.7-5.el5.i386.rpm

   此時,php安裝完畢

  • 整合

要使得apache與php能工作,還需要為httpd做相應設定

vim /etc/httpd/httpd.conf

   LoadModule php5_module        modules/libphp5.so

   AddType application/x-httpd-php .php

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

   DirectoryIndex index.html index.php

   重新開機或啟動httpd服務

   測試服務是否都正常

   vim /usr/local/apache/htdocs/index.php

       <?php

           $conn=mysql_connect('localhost','root','');

           if($conn)

               echo "OK";

           else

               echo "Error";

        ?>

               phpinfo();

       ?>

安裝xcache2.0.0

   tar xvf xcache-3.0.4.tar.gz

   cd xcache-3.0.4

   ls

   cat INSTALL

   /usr/local/php/bin/phpize

   ./configure --enable-xcache --with-php-config=/usr/local/php/bin/php-config

   mkdir /etc/php.d

   cp xcache.ini /etc/php.d/

   vim /etc/php.d/xcache.ini

    zend_extension = /usr/local/php/lib/php/extensions/no-debug-zts-20100525/xcache.so

    ;zend_extension_ts = c:/php/extensions/php_xcache.dll

   上面路徑是在安裝完php後的最後一條提示

   回到首頁,可以看到xcache己加載進來了

  • 其它解說:

對于源碼安裝的apache如果我們需要使用虛拟主機,需要修改/etc/httpd/httpd.conf

啟用Include /etc/httpd/extra/httpd-vhosts.conf,然後在/etc/httpd/extra/httpd-vhosts.conf中設定虛拟主機

在設定ACL時,需與apache2.2差別開來,它們的差別比較多

如果需要啟用ssl,也要啟用相應的子產品

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

在這裡我們需要弄清LAMP工作機制:

   在apache需要解析PHP腳本時才會用到PHP解析器,PHP與apahe有多種工作機制

1、Modules方式,也就是本文的配置過程

2、fastCGI(在PHP中也稱FPM)

3、還有Apache的CGI

   這裡就不講這些機制的具體配置,以後有時間再編了,但是大多數生産環境用到的都是三層結構,也就是使用的是fastCGI模式。