LAMP兩種編譯安裝模式

pathfinder_cui發表於2015-08-24
PHP5.3.3以上支援基於fast獨立伺服器
rpm -qf /etc/my.cnf
hwclock -s
apache
  module
    prefork:libphp5.so
    worker,event:libphp5-zts.so

應用PHP模組的httpd配置檔案
vim /etc/httpd/conf.d/php.conf
<IfModule prefork.c>
  LoadModule php5_module modules/libphp5.so
</IfModule>
<IfModule worker.c>
  LoadModule php5_module modules/libphp5-zts.so
</IfModule>
AddHandler php5-script .php
AddType text/html .php
DirectoryIndex index.php

測試程式碼
vim index.php
<html>
     <head>
       <title> PHP Test Page</title>
     </head>
     <body>
          <h1>modular php</h1>
          <?php
               phpinfo();
          ?>
      </body>
</html>

注:index.php檔案不需要放在CGI目錄下

LAMP部署模式
  apache + php
     moodule
         prefork:libphp5.so
         worker ,event :libphp5-zts.so
     CGI
     fsatcgi
        php-fpm:啟動為服務程式
php-mysql
     $link=mysql_connect('127.0.0.1','root','mypass')
     if ($link);
         echo ""
     else
         echo ""
      mysql_close()

編譯安裝LAMP之一:php modules模式

安裝mysql
http://blog.itpub.net/29620572/viewspace-1763687/


安裝http
依賴更高版本的apr和apr-util,apr全稱為apache portable runtime
httpd2.4需要apr1.4以上版本
yum install -y pcre-devel gcc* wget lrzsz openssl-devel
wget /> wget /> wget /> tar xf apr-1.5.2.tar.gz
cd apr-1.5.2
./configure --prefix=/usr/local/apr
make && make install
cd

tar xf apr-util-1.5.4.tar.gz
cd apr-util-1.5.4
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
make && make install
cd

tar xf httpd-2.4.16.tar.gz
cd httpd-2.4.16
./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-modules=most --enable-mpms-shared=all --with-event
make && make install
--enable-so :支援動態載入模組
--enable-rewrite :支援url重寫
--with-zlib  :使用網路上的通用壓縮庫
--with-pcre :支援perl
--enable-modules :企業大多數或所有的module

安裝PHP
/> wget /> yum install -y *libxml2*  bzip2-libs bzip2 bzip2-devel
tar xf php-5.4.44.tar.gz
cd php-5.4.44
./configure --prefix=/usr/local/php --with-mysql=/mysql  --with-openssl --with-

mysqli=/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-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d  

--with-bz2 --enable-maintainer-zts

注:
1.這裡為了支援apache的worker或event這兩個MPM,編譯時使用了--enable-maintainer-zts選項
2.如果使用PHP5.3以上的版本,為了連線mysql資料庫,可以指定mysqlnd,這樣在本機就不需要先安裝mysql開發包

了。msqlnd從php5.3開始可用,可以編譯時繫結到它,並且5.4就是預設了。
#./configure --with-mysql=mysqlnd --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd

make && make install
為php提供配置檔案
cp php.ini-production /etc/php.ini

編輯apache配置檔案httpd.conf,以apache支援php
vim /etc/httpd/httpd.conf
AddType application/x-httpd-php  .php
AddType application/x-httpd-php-source .phps
DirectoryIndex  index.php index.phps index.html

cd /usr/local/apache/htdocs
<?php
  $link=mysql_connect('127.0.0.1','scott','tiger');
   if ($link)
     echo "Success...";
   else
     echo "failure...";
   mysql_close();
   phpinfo();
?>

配置PHP加速器
tar xf xcache-3.0.4.tar.gz
cd xcache-3.0.4
/usr/local/php/bin/phpize
 ./configure --enable-xcache --with-php-config=/usr/local/php/bin/php-config
make && make install
注意:Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-zts-20100525/

cp xcache.ini /etc/php.d/
vim /etc/php.d/xcache.ini
extension = /usr/local/php/lib/php/extensions/no-debug-zts-20100525/xcache.so

編譯安裝LAMP之一:php-fpm
同上,但安裝PHP時不同
./configure --prefix=/usr/local/php  --with-mysql=mysqlnd --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --with-openssl --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-libxml-dir=/usr --enable-xml --enable-sockets --enable-fpm  --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-bz2

為php提供配置檔案
cp php.ini-production /etc/php.ini

配置php-fpm
為php-fpm提供init指令碼
cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm

為php-fpm提供配置檔案
cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod +x /etc/init.d/php-fpm
chkconfig --add php-fpm
chkconfig php-fpm on
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檔案
listen
pm.max_children=50
pm.start_servers=5
pm.min_spare_servers=2
pm.max_space_servers=8
pid=/usr/local/php/var/run/php-fpm.pid
配置
grep -i  pid /etc/init.d/php-fpm

vim /usr/local/php/etc/php-fpm
pid=/usr/local/php/var/run/php-fpm.pid


vim /etc/httpd/httpd.conf
Listen 80
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
<IfModule dir_module>
    DirectoryIndex index.php index.html
</IfModule>
Include /etc/httpd24/extra/httpd-vhosts.conf
vim /etc/httpd24/extra/httpd-vhosts.conf
ProxyRequests off
ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/www/a.com/$1
注:
虛擬主機一定要配置Directory
ProxyRequests off:關閉正向代理
ProxyPassMatch:把所有.php結尾的檔案請求傳送到php-fpm至少需要知道執行的目錄和URI,
所以這裡直接在fcgi://127.0.0.1:9000後指明瞭這兩個引數,其他的引數的傳遞已經被mod_proxy_fcgi.so進行了封裝,不需要手工指定

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29620572/viewspace-1781491/,如需轉載,請註明出處,否則將追究法律責任。

相關文章