服務項目:網站建設、仿站、程序開發、APP開發設計、移動網站開發設計、企業網站設計、電子商務網站開發、網站維護、網站推廣、UX/UI 、HTML5、CSS3、JS / Jquery ...
          四川浚浚科技有限公司
          四川浚浚科技有限公司 (開發設計官網)TEL : 15308000360 / QQ : 38585404

          您的位置:首頁 > 技術經驗 > 服務器 > 正文

          LAMP平臺詳述 環境安裝配置
          技術支持服務電話:15308000360 【7x24提供運維服務,解決各類系統/軟硬件疑難技術問題】

          LAMP平臺相關組件功能簡述

          編譯安裝LAMP平臺

          編譯安裝LAMP之以FastCGI方式與php整合

          使用ab命令進行壓力測試

          ####################################### LAMP平臺相關組件功能簡述

          一、httpd

             作為一款web服務器本身它僅能處理靜態請求和內容,例如:html、css、圖片等……

          二、php

             PHP是腳本編程語言,php解析器,其內部的 Zend引擎將執行分為兩段:

             第一段:詞法分析、語法分析

                     用戶第一次訪問PHP頁面時候動態編譯為opcode

             第二段:執行opcode。

          三、xcache

             每個用戶請求php都會生成一個進程用于處理和回應,由于進程之間無法共享opcode,opcode在內存空間中,所以當進程消亡時opcode會隨之丟失 ,在實際生成環境中有大量用戶請求目標是完全相同的,如果每個請求都需要動態生成opcode這不僅是一種巨大的資源浪費也會延長對用戶請求的響應時間,因此 為了使進程之間能共享opcode,引用緩存器例如:APC、eAccelerator、XCache。

          四、php如何與mysql進行交互

             php解釋器(模塊)本身僅具備解釋php腳本的功能,真正跟mysql交互的是PHP程序,由此程序驅動訪問mysql(php53-mysql)。

          五、httpd與php的交互方式

             CGI,這種方式把php直接編譯成httpd的模塊,每個httpd請求進程對應一個php(cgi)進程,httpd動態創建進程需要時間,并且額外的進程會占用資源開銷,進程間通信的結果返回httpd進程,httpd負責銷毀進程。由httpd負責子進程的創建和回收。 

             PHP_MOD,這種方式php作為http進程內部模塊運行,需要時候動態加載模塊。

             fastcgi(httpd作為客戶端想php服務器發起請求,php服務器內部管理和銷毀進程)fpm,監聽在一個套接字上,Daemon進程。

           

          編譯安裝LAMP平臺

          一、準備環境、所需軟件包版本、安裝順序。

          平臺基于redhat5.8

          httpd所需軟件包:

             apr-1.4.6.tar.bz2  

             apr-util-1.4.1.tar.bz2              

             httpd-2.4.3.tar.bz2

          mysql所需軟件包:

             mysql-5.5.28-linux2.6-i686.tar.gz(通用二進制格式)

          php所需軟件包:

             libmcrypt-2.5.7-5.el5.i386.rpm    

             libmcrypt-devel-2.5.7-5.el5.i386.rpm

             mhash-0.9.2-6.el5.i386.rpm

             mhash-devel-0.9.2-6.el5.i386.rpm

             php-5.4.13.tar.bz2

          xcache所需軟件包:

             xcache-2.0.0.tar.bz2

          phpMyAdmin所需軟件包:

             phpMyAdmin-3.5.1-all-languages.tar.bz2

          安裝順序 httpd --> mysql --> php

          二、編譯安裝httpd-2.4.4

          1、解決依賴關系

          ##########################安裝apr##########################
          tar xf apr-1.4.6.tar.bz2
          ./configure --prefix=/usr/local/apr
          make && make install
          ##########################安裝apr-util#####################
          tar xf apr-util-1.4.1.tar.bz2
          ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
          make && make install
          ##########################安裝pcre-devel###################
          yum install pcre-devel

          2、編譯安裝httpd-2.4.4

          tar xf httpd-2.4.4.tar.bz2
          ./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
          make && make install

          3、修改Pid文件的路徑以迎合啟動腳本

          vim /etc/httpd/httpd.conf
          PidFile "/var/run/httpd.pid" //添加如下行

          4、提供SysV服務腳本 /etc/rc.d/init.d/httpd,內容如下: 

          #!/bin/bash
          #
          # httpd        Startup script for the Apache HTTP Server
          #
          # chkconfig: - 85 15
          # description: Apache is a World Wide Web server.  It is used to serve \
          #          HTML files and CGI.
          # processname: httpd
          # config: /etc/httpd/conf/httpd.conf
          # config: /etc/sysconfig/httpd
          # pidfile: /var/run/httpd.pid
          # Source function library.
          . /etc/rc.d/init.d/functions
          if [ -f /etc/sysconfig/httpd ]; then
                  . /etc/sysconfig/httpd
          fi
          # Start httpd in the C locale by default.
          HTTPD_LANG=${HTTPD_LANG-"C"}
          # This will prevent initlog from swallowing up a pass-phrase prompt if
          # mod_ssl needs a pass-phrase from the user.
          INITLOG_ARGS=""
          # Set HTTPD=/usr/sbin/httpd.worker in /etc/sysconfig/httpd to use a server
          # with the thread-based "worker" MPM; BE WARNED that some modules may not
          # work correctly with a thread-based MPM; notably PHP will refuse to start.
          # Path to the apachectl script, server binary, and short-form for messages.
          apachectl=/usr/local/apache/bin/apachectl
          httpd=${HTTPD-/usr/local/apache/bin/httpd}
          prog=httpd
          pidfile=${PIDFILE-/var/run/httpd.pid}
          lockfile=${LOCKFILE-/var/lock/subsys/httpd}
          RETVAL=0
          start() {
                  echo -n $"Starting $prog: "
                  LANG=$HTTPD_LANG daemon --pidfile=${pidfile} $httpd $OPTIONS
                  RETVAL=$?
                  echo
                  [ $RETVAL = 0 ] && touch ${lockfile}
                  return $RETVAL
          }
          stop() {
              echo -n $"Stopping $prog: "
              killproc -p ${pidfile} -d 10 $httpd
              RETVAL=$?
              echo
              [ $RETVAL = 0 ] && rm -f ${lockfile} ${pidfile}
          }
          reload() {
              echo -n $"Reloading $prog: "
              if ! LANG=$HTTPD_LANG $httpd $OPTIONS -t >&/dev/null; then
                  RETVAL=$?
                  echo $"not reloading due to configuration syntax error"
                  failure $"not reloading $httpd due to configuration syntax error"
              else
                  killproc -p ${pidfile} $httpd -HUP
                  RETVAL=$?
              fi
              echo
          }
          # See how we were called.
          case "$1" in
            start)
              start
              ;;
            stop)
              stop
              ;;
            status)
                  status -p ${pidfile} $httpd
              RETVAL=$?
              ;;
            restart)
              stop
              start
              ;;
            condrestart)
              if [ -f ${pidfile} ] ; then
                  stop
                  start
              fi
              ;;
            reload)
                  reload
              ;;
            graceful|help|configtest|fullstatus)
              $apachectl $@
              RETVAL=$?
              ;;
            *)
              echo $"Usage: $prog {start|stop|restart|condrestart|reload|status|fullstatus|graceful|help|configtest}"
              exit 1
          esac
          exit $RETVAL

          5、為腳本添加執行權限,開機自動啟動

          chmod +x /etc/rc.d/init.d/httpd
          chkconfig --add httpd
          chkconfig --level 35 httpd on
          chkconfig --list httpd

          6、為命令添加搜索路徑

          vim /etc/profile.d/httpd.sh
          export PATH=$PATH:/usr/local/apache/bin   //加入本行內容

          7、 修改mpm_module為prefork、檢查語法并重啟服務

          vim /etc/httpd/httpd.conf
          #LoadModule mpm_event_module modules/mod_mpm_event.so       注釋
          LoadModule mpm_prefork_module modules/mod_mpm_prefork.so    添加
          httpd -t                    檢查語法
          service httpd restart       重啟服務

          至此httpd安裝完成:

          三、安裝mysql-5.5.28 

          1、創建mysql用戶和mysql組

          groupadd -r -g 306 mysql
          useradd -g 306 -r -u 306 mysql

          2、創建鏈接文件 

          tar xf mysql-5.5.28-linux2.6-i686.tar.gz  -C /usr/local
          cd /usr/local
          ln -sv mysql-5.5.28-linux2.6-i686  mysql
          chown -R mysql.mysql /usr/local/mysql/*3

          3、為數據目錄創建lvm

          fdisk /dev/sdb            略過步驟
          partprobe  /dev/sdb       檢測
          pvcreate /dev/sdb1        創建物理塊
          vgcreate myvg /dev/sdb1   創建卷組
          lvcreate -n mydata -L 5G  myvg    創建邏輯卷
          lvs
          mke2fs -j /dev/myvg/mydata    格式化
          mkdir /mydata           
          vim /etc/fstab         添加開機自啟動
          /dev/myvg/mydata   /mydata    ext3    defaults     0 0
          mount -a    掛載
          mount
          mkdir /mydata/data    創建數據目錄
          chown -R mysql.mysql /mydata/data/    修改數據目錄屬主與屬組
          chmod o-rx /mydata/data/              修改其他人對此目錄權限

          4、初始化mysql

          scripts/mysql_install_db --user=mysql --datadir=/mydata/data/
          chown -R root /usr/local/mysql/*

          5、添加啟動腳本、主配置文件、命令路徑、庫文件、頭文件

          #########################添加啟動腳本########################
          cp support-files/mysql.server /etc/init.d/mysqld
          chkconfig --add mysqld
          ########################添加主配置文件#######################
          cp support-files/my-large.cnf /etc/my.cnf
          vim /etc/my.cnf
          datadir = /mydata/data   定義數據目錄位置
          #########################添加命令############################
          vim /etc/profile.d/mysql.sh
          export PATH=$PATH:/usr/local/mysql/bin    //添加本行內容
          ########################添加庫文件###########################
          echo '/usr/local/mysql/lib' > /etc/ld.so.conf.d/mysql.conf
          ########################添加頭文件###########################
          ln -sv /usr/local/mysql/include /usr/include/mysql

          至此mysql安裝完成:

          三、安裝php-5.4.13(php作為httpd模塊運行)

          1、解決依賴

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

          2、編譯安裝php-5.4.13

          tar xf php-5.4.13
          ./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-opensll --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-path=/etc --with-config-file-scan-dir=/etc/php.d --with-bz2 --enable-maintainer-zts
          #--enable-maintainer-zts(event worker基于線程工作類型的時候需要此選項)
          make && make install
          cp php.ini-production /etc/php.ini  創建配置文件

          3、結合php和httpd

          vim  /etc/httpd/httpd.conf
          DirectoryIndex index.php index.html        //添加index.php
          AddType application/x-httpd-php .php        //添加本行內容
          AddType application/x-httpd-php-source .phps //添加本行內容

          4、測試php是否正常工作

          vim /usr/local/apache/htdocs/index.php
          <?php
                  phpinfo();
          ?>

          5、測試php是否能正常訪問mysql

          <?php
                  $conn=mysql_connect('localhost','root','');
                  if($conn)
                          echo "Success....";
                  else
                          echo "Failure....";
          ?>

          四、編譯安裝xcache-2.0.0

          1、編譯安裝xcache

          tar xf xcache-2.0.0.bz2
          cd xcacge
          /usr/local/php/bin/phpize  準備好php擴展編譯以備編譯,讓擴展本身識別php
          ./configure --enable-xcache --with-php-config=/usr/local/php/bin/php-config
          make && make install

          2 、 整合php和xcache 

          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   復制安裝完成的內容后加xcache.so

          重啟httpd,至此xcache安裝完成:

          五、httpd2.4.4虛擬主機配置

          1 、中心主機和虛擬主機不能共存

          注釋中心主機
          #DocumentRoot "/usr/local/apache/htdocs"
          開啟虛擬主機選項
          # Virtual hosts
          Include /etc/httpd/extra/httpd-vhosts.conf

          2 、創建虛擬主機 vim /etc/httpd/extra/httpd-vhosts.conf

          <VirtualHost *:80>
              ServerName www.soulboy.com   
              DocumentRoot "/www/soulboy.com"
              <Directory "/www/soulboy.com">    如不聲明目錄權限則默認拒絕
                  Options none   
                  AllowOverride none
                  Require all granted
              </Directory>
              ErrorLog "/var/log/httpd/soulboy.com-error_log"
              CustomLog "/var/log/httpd/soulgirl.com-error_log" combined
          </VirtualHost>
          <VirtualHost *:80>
              ServerName www.soulgirl.com
              DocumentRoot "/www/soulgirl.com"
              <Directory "/www/soulgirl.com">
                  Options none
                  AllowOverride none
                  Require all granted
              </Directory>
              ErrorLog "/var/log/httpd/soulgirl.com-error_log"
              CustomLog "/var/log/httpd/soulgirl.com-error_log" common
          </VirtualHost>

          3 、測試虛擬主機是否生效

          五、部署phpMyAdmin-3.5.1

          1 、加壓到虛擬主機目錄并重新修改目錄名,并創建和修改配置文件

          tar xf phpMyAdmin-3.5.1-all-languages.tar.bz2/ -C /www/soulgirl.com
          cd /www/soulgirl.com
          mv phpMyAdmin-3.5.1-all-languages / pma       修改目錄名方便訪問
          cd pma
          cp config.sample.inc.php config.inc.php       創建配置文件
          penssl rand -base64 10        生成10位的隨機數
          vim config.inc.php            把生成的隨機數復制到配置文件中
          $cfg['blowfish_secret'] = 'QkMTw3ZlpJlBKA'

          2 、修改mysql用戶密碼

          mysqladmin -uroot password 'redhat'

          3 、測試phpMyAdmin部署是否正常

          至此說明php和httpd工作正常:

          至此說明mysql工作正常:

           

          編譯安裝LAMP之以FastCGI方式與php整合

          一、編譯安裝httpd-2.4.4

          安裝步驟同上

          二、mysql-5.6.10

          安裝步驟同上

          三、 編譯安裝php-5.4.13

          1 、解決依賴關系

          yum -y groupinstall "X Software Development"
          rpm -ivh libmcrypt-2.5.7-5.el5.i386.rpm libmcrypt-devel-2.5.7-5.el5.i386.rpm mhash-0.9.9-1.el5.centos.i386.rpm mhash-devel-0.9.9-1.el5.centos.i386.rpm

          2 、編譯安裝php-5.4.13

          tar xf 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 --enable-fpm --with-mcrypt  --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-bz2
          make
          make intall
          cp php.ini-production /etc/php.ini    為php提供配置文件:

          3 、配置php-fpm 

          ###################為php-fpm添加腳本#######################
          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
          ##################為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 = 5        最小空閑進程數
          pm.max_spare_servers = 8        最大空閑進程數
          pid = /usr/local/php/var/run/php-fpm.pid     PidFile路徑
          #################啟動php-fpm##############################
          service php-fpm start
          ps aux | grep php-fpm
          netstat -tnlp | grep php-fpm
          默認情況下,fpm監聽在127.0.0.1的9000端口,也可以使用如下命令驗正其是否已經監聽在相應的套接字。

          四、 配置httpd-2.4.4

          1 、配置php-fpm

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

          2 、配置httpd識別php頁面

          vim /etc/httpd/httpd.conf
          1、添加如下二行
             AddType application/x-httpd-php  .php
             AddType application/x-httpd-php-source  .phps
          2、定位至DirectoryIndex index.html
             修改為:
              DirectoryIndex  index.php  index.html
          3、注釋中心主機
              #DocumentRoot "/usr/local/apache/htdocs"
          4、刪除注釋,開啟支持虛擬主機功能
              # Virtual hosts
              Include /etc/httpd/extra/httpd-vhosts.conf

          3 、配置虛擬主機支持使用fcgi 

          ProxyRequests Off
          ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/PATH/TO/DOCUMENT_ROOT/$1

          4 、配置虛擬主機支持fastcgi

          <VirtualHost *:80>
              DocumentRoot "/www/soulboy"
              ServerName www.soulboy.com
              ProxyRequests Off
              ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/www/soulboy/$1
              <Directory "/www/soulboy">
                  Options none
                  AllowOverride none
                  Require all granted
              </Directory>
              ErrorLog "logs/dummy-host.example.com-error_log"
              CustomLog "logs/dummy-host.example.com-access_log" common
          </VirtualHost>

          5 、測試以上配置是否正常

          <h1>www.soulboy.com</h1>
          <?php
           $conn=mysql_connect('localhost','root','redhat');
                  if($conn)
                          echo "Success....";
                  else
                          echo "Failure....";
           phpinfo();
          ?>

          至此說明一切正常:

          五、編譯安裝 xcache-3.0.1

          tar xf xcache-3.0.1.tar.bz2
          cd xcache-3.0.1
          /usr/local/php/bin/phpize
          ./configure --enable-xcache --with-php-config=/usr/local/php/bin/php-config
          make && make install
          mkdir /etc/php.d/
          cp xcache.ini /etc/php.d/
          service php-fpm restart

           

          使用ab命令進行壓力測試

          一、安裝xcache之前

          ab -c 100 -n 1000 http://www.soulboy.com/pma/index.php

          二、安裝xcache之后(以同樣的并發量測試)

          ab -c 100 -n 1000 http://www.soulboy.com/pma/index.php

           



          上一篇:Nginx反向代理的配置
          下一篇:nginx反向代理配置及優化

          相關熱詞搜索:lamp linux apache mysql php
          主站蜘蛛池模板: 免费一级毛片在级播放| 国产精品无码电影在线观看| 久久国产精品免费一区二区三区| 欧美极品少妇×XXXBBB| 你看桌子上都是你流的| 中文字幕无码乱码人妻系列蜜桃 | 深夜福利一区二区| 国产日韩av在线播放| 91精品视频免费| 天天干天天色综合| 一级特黄aaa大片在线观看视频| 日本a级作爱片金瓶双艳| 久久桃花综合桃花七七网| 朝鲜女人性猛交| 亚洲人成人77777网站| 欧美日韩亚洲成色二本道三区| 亚洲综合五月天欧美| 男生吃女生的jiojio| 十九岁日本电影免费完整版观看| 老湿机香蕉久久久久久| 国产内射爽爽大片视频社区在线| jizz黄色片| 国产精品女上位在线观看| 91精品视频网| 国产麻豆精品手机在线观看| 中文字幕日韩一区二区三区不卡| 日韩人妻无码一区二区三区综合部| 亚洲aaa视频| 机机对在一起30分钟软件下载| 亚洲人成无码网www| 欧美国产精品不卡在线观看| 亚洲日韩亚洲另类激情文学| 精品国产麻豆免费人成网站| 国产91青青成人a在线| 视频一区二区三区在线观看| 国产在热线精品视频国产一二| 91精品成人福利在线播放| 国产成人精品三级在线| 黄在线观看www免费看| 国产毛片一级国语版| 性xxxxfeixxxxx欧美|