PHP、MeriaDB(MySQL)

技術小胖子發表於2017-11-08

下面介紹的是PHP、MeriaDB(MySQL)、編譯安裝AMP(httpd2.4、Meriadb、PHP)


一、PHP

1、web資源

 web資源分為動態、靜態兩種資源。靜態資源,即原始形式與響應一致。

 CGI ——————通用閘道器介面

 CGI協議是簡化的http協議,可以讓一個客戶端,從客戶端代理向網路伺服器上的程式傳輸資料。CGI描述了客戶端和伺服器程式之間資料傳輸的標準。

 web資料請求流程:————-httpd充當了伺服器程式的反向代理

    client(http) –> httpd –> cgi –> application process –> mysql –> MySQL


2、PHP基礎 ————–通用伺服器端指令碼程式語言

(1)、PHP

 通用伺服器端指令碼程式語言,專為web開發設計,將程式碼嵌入html文件中。PHP提供了命令列介面,可以當做一個shell來使用。

(2)、Zend Engine ———PHP語言的直譯器,為PHP提供記憶體和資源管理。

 Zend Engine中,【PHP程式碼的處理過程】為:

 PHP程式碼 —–> Zend opcode(二進位制格式,儲存於記憶體)———>opcode(用Zend Engine執行)

   1)、Scanning ———將PHP程式碼轉換為【語言片段】

   2)、Parsing ————-將語言片段轉換成【表示式】

   3)、Compilation ————-將表示式編譯成Opocdes

   4)、Execution —————執行Opcodes(每次一條)

 opcode ———–PHP指令碼編譯中間語言


(3)、PHP加速器 ————–PHP opcode快取加速器(6種)

  APC ————–不適用於PHP5.4

  eAccelerator —————包含了PHP loader

  Xcache —————快速、穩定

  Zend Optimizer ————-適用PHP5.2及以前

  Zend Guard Loader ————適用PHP5.3

  NuSphere PhpExpress


3、PHP原始碼的子目錄

  build ——————-編譯相關的檔案

  ext —————-擴充套件目錄,PHP函式的定義和實現

  main —————–PHP核心

  Zend ————-實現Zend引擎(實現語言執行環境)

  pear ———–PHP擴充套件與應用倉庫

  sapi ———–伺服器抽象層的程式碼

  TSRM ————–執行緒安全管理、*G巨集

  tests ————PHP測試指令碼集合

  win32 ————-Windows實現平臺


4、httpd與php的結合方式(4種):

  CGI ————–httpd主程式管理php程式;

  module —————將php編譯為httpd的擴充套件模組;

  MPM ———–prefork、event

  FastCGI ———fpm



二、MeriaDB(MySQL) ———–LAMP中的M,即MySQL(MariaDB)。

1、資料庫管理基礎

 DBMS ————-資料庫管理系統

 RDBMS ———-資料表,行為例項,列為欄位或域

 ANSI ———-資料庫系列標準(SQL-86、SQL-89、SQL-99、SQL-03)

 NoSQL ——-Redis、Memcached、MangoDB、Hbase(4類)


 RDBMS設計正規化:(資料庫的六種正規化) —————–越高的正規化資料庫冗餘越小

 1)、第一正規化(1NF)———–對域新增規範(無重複的域)

 在第一正規化中,資料庫表的每一列都是不可分割的資料項,不能是集合、陣列、記錄等。即實體中的某個屬性有多個值時,必須拆分為不同的屬性。

 2)、第二正規化(2NF)————-每個例項或記錄必須可以被唯一地區分

 在第二正規化中,選取一個能區分每個實體的屬性或屬性組,作為實體的唯一標識。第二正規化,要求實體的屬性完全依賴於主關鍵字(主鍵)。

 3)、第三正規化(3NF)————屬性不依賴於其它非主屬性

 在第三正規化中,要求一個關係中不能包含已在其它關係已包含的非主關鍵字資訊。

 4)、第四正規化(4NF)

 5)、第五正規化(5NF)———-稱完美正規化

 6)、巴德斯科正規化(BCNF)、。滿足最低要求的正規化是第一正規化(1NF)。在第一正規化的基礎上進一步滿足更多規範要求的稱為第二正規化(2NF),其餘正規化以次類推。一般說來,資料庫只需滿足第三正規化(3NF


 關係型資料庫管理系統:GreSQL、SyBase、DBII、InfoMIX、Oracle、MySQL、MariaDB

   CentOS 6:mysql-server-5.1

   CentOS 7:mariadb-server-5.5


2、SQL基礎

(1)、MeriaDB的資料模型 ————–二維關係

 SQL ————–Structured Query Language(結構化查詢語言)

 SQL介面處理的SQL語句:DDL(資料定義語言)、DML(資料操縱語言)、DCL(資料控制語言)。

    DDL ————-CREATE、ALTER、DROP

    DML ————-INSERT、DELETE、UPDATE、SELECT

    DCL ————-GRANT、REVOKE

(2)、ACID標準 —————–MySQL儲存引擎的屬性(事務)

  A ————-原子性

  C ————-一致性

  I ————-隔離性

  D ————-永續性

(3)、SQL約束(4種):

  主鍵約束 ————主鍵資料不能相同,不能為空

  外來鍵約束 —————是否能引用,取決於另一張表的主鍵資料

  唯一鍵約束 ————唯一標識記錄,主鍵不能相同,但可以為空

  檢查性約束 ——————取決於表示式

(4)SQL關係運算(3種)

  選擇 ————挑選行

  投影 ————挑選列

  連線 ————–多表關聯操作

(5)、SQL資料抽象(3種)

  物理層 ————決定資料的儲存格式

  邏輯層 ———–資料庫儲存的資料、資料之間的關係

  檢視層 ———-資料庫中部分資料


3、mysql命令

 MySQL的配置檔案生效順序:

    /etc/mysql/my.cnf –> /etc/my.cnf –> ~/.my.cnf 

(1)、mysql命令 ———————–互動式、命令列、客戶端程式

  格式:mysql [OPTIONS] [database]

  常用選項:

  -D ————使用哪一種資料庫嗎,可以不用空格進行分隔,預設為NULL

  -e `COMMAND` ————-執行命令並退出,用引號引出命令,兩種引號都可以。

  -h —————–指定連線的MySQL資料庫IP地址,也可以不用空格進行分隔,預設為localhost

  -p —————指定遠端連線到伺服器時所需的密碼,預設為空,也可以不用空格分隔

  -P ————-以指定埠號來訪問伺服器,預設為3306,可不用空格

  -u ————-指定連線至遠端MySQL伺服器的使用者名稱,預設為root

(2)、mysql賬戶 

  MySQL使用者賬戶由兩部分組成:`USERNAME`@`HOST`

  HOST可以使用兩個萬用字元: %(任意長度任意字元), _(任意單個字元)

  例:`root`@`172.16.%.%`

  字符集:計算機顯示的字元形狀和硬碟上的對映

  

  mysql_secure_installation命令 ———————完成MySQL的賬戶安全初始化


(3)、mysql的互動式命令:客戶端命令、伺服器端命令

  客戶端命令 ——–本地命令:clear、delimiter、go、ego、quit、exit、source、status、use(可不加結束符)

      clear ———–停止傳送當前鍵入

      delimiter ———–設定結束標記

      go ————–將前面的語句,送往伺服器執行

      ego ————-將前面的語句,送往伺服器執行,並將返回結果縱向顯示

      exit,quit ——-退出mysql程式

      status ————-獲取伺服器的狀態資訊

      use ————-選擇使用指定的資料庫

  

  伺服器端命令 ——-傳送到伺服器端執行再返回:DDL、DML、DCL

      注意:在執行伺服器命令時,每個語句必須以指定的結束符來結尾,預設是`;`。

  三個伺服器命令如下:

  DDL ———資料定義語言。主要用於管理資料庫的各元件,例如:資料庫、表、索引、檢視、使用者、儲存過程、儲存函式、觸發器、事件等。

     常用的伺服器命令:CREATE、ALTER、DROP、SHOW

  DML ———資料操縱語言。主要用於管理表中的資料,實現資料的增、刪、改、查等操作。

     常用的伺服器命令:INSERT、DELETE、UPDATE、SELECT

  DCL ———資料控制語言。主要用於管理資料的訪問授權。

     常用的伺服器命令:GRANT、REVOKE


  mysql> help COMMAND_KEYWORD ————-獲取幫助

  MariaDB [(none)]> help COMMAND_KEYWORD


4、表管理————–伺服器端

(1)、資料庫管理命令 mysql>

  create ———建立資料庫(資料庫名可能區分大小寫,也可能不區分,取決於檔案系統)

    格式:CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name [create_specification]

    mysql> show character set; —————檢視當前MySQL伺服器支援的【字符集】

    mysql> show collation; —————–檢視當前MySQL伺服器支援的各字符集對應的【排序規則】

  alter ———-修改資料庫屬性

    格式:ALTER {DATABASE | SCHEMA} [db_name] alter_specification …

  drop ———–刪除資料庫

    格式:DROP {DATABASE | SCHEMA} [IF EXISTS] db_name

(2)、表管理 mysql>

  表包括行和列:

    行,用於描述某個事物的某些屬性,表中可以沒有行,稱為空表。

    列,用來定義或描述某個具體的屬性,表中至少要有一列屬性,沒有列的表沒有意義。


  資料型別:定義了資料型別,才能決定資料的【儲存格式】,決定資料所能參與的【運算】,決定資料可以表示的【有效範圍】。


  數值型資料:(2類)

    精確數值型:INT(4位)、TINYINT、SMALLINT、MEDIUMINT、BIGINT

    近似數值型:FLOAT、DOUBLE

  

  字元型資料型別:(4類)

    定長字元型:CHAR、BINARY

    變長字元型:VARCHAR、VARBINARY

    物件儲存:TEXT、BLOB

    內建特殊型別:SET、ENUM

  

  日期時間型:DATE、TIME、DATETIME、TIMESTAMP、YEAR


  資料型別相關的修飾符:(2類)

    與整數有關的:UNSIGNED,無符號整數,必須緊跟精確數值型之後。

                  AUTO_INCREMENT,數值遞加1。

    通用修飾符:NOT NULL、DEFAULT value


(3)、建立表

  格式:CREATE TABLE [IF NOT EXISTS] tbl_name (create_definition,…) [table_options]

  create table TAB_NAME—————–建立表

  create_definition:欄位、鍵、索引

    PRIMARY KEY ———-主鍵約束

    UNIQUE KEY ———–唯一鍵約束

    FOREIGN KEY ———–外來鍵約束

  例:

  mysql> create table students (ID tinyint unsigned not null auto_increment primary key,Name char(30) not null,Age tinyint unsigned,Gender enum(`M`,`F`));


(4)、刪除表

  格式:DROP TABLE [IF EXISTS] tbl_name [, tbl_name] …

  drop table TAB_NAME ————–刪除一張表


(5)、修改表:修改各個欄位的屬性或定義。add進行新增,drop進行刪除。

  格式:ALTER TABLE tbl_name [alter_specification [, alter_specification] …]

  alter table TAB_NAME ———-修改表

  例:

  mysql> alter table students add Class varchar(50) not null; ———-新增欄位

  mysql> alter table students add unique key (Age); —————–索引欄位

  mysql> alter table students drop key Age;

  mysql> alter table students modify ID tinyint unsigned not null; —————修改子段屬性

  mysql> alter table students change Class Classes char(50) not null;

  mysql> alter table stutents add unique key (age); ————新增唯一鍵


(6)、查詢表

  desc ————查詢表


5、伺服器端管理命令 —————–DDL、DML、DCL

(1)DML

  1)、insert ———–新增資料。

  格式:INSERT [INTO] tbl_name [(col_name,…)] {VALUES | VALUE} (value1,value2,…),(…),…

  注意,向表中插入的是【字串】,需用【引號引用】,如果向表中插入的是數字,不能用引號引用。

  例:

  mysql> insert into students value (1,`little`,17,23,`M`); 

  mysql> insert into students (ID,Name,Classes) values (2,`Zhang Sanfeng`,”Wudang”),(3,`Zhang Wuji`,”Mingjiao”); 

  mysql> select * from students; ————查詢

 

  2)、select ———-單表查詢

  mysql> select * from TAB_NAME ————檢視錶的所有欄位

  mysql> select ID,name from students —————投影:只顯示我們需要的列。

  mysql> select ID as stu_ID,Name as stu_Name ———–指定別名,表的內容不變

  mysql> select * from TAB_NAME where clause ————選擇

    操作符:LIKE ————-模糊匹配

            RLIKE ————使用正規表示式對字串進行模式匹配

            IS NULL/IS NOT NULL ————-判斷指定欄位是否為空

    mysql> select * from students where Age < 40;

    mysql> select * from students where Age is null;

    mysql> select * from students where Name like `%ang%`;

    mysql> selcet * from students where rlike `^Z.*g$` ———–查詢較慢

  mysql> select * from TAB_NAME order by age desc —————排序

  

  3)、update ————–修改表的資料

  mysql> update students set age=age-10 where sex is not null;

  mysql> select * from students where ID in (1,2,3,4,5); ————-據離散條件選擇

  mysql> update students set age=age+5;

  mysql> update students set age=age-10 where gender is not null;

  mysql> update students set age=age-20 order by age desc limit 5;


  4)、delete ————-刪除表資料。需進行限定,防止全表刪除。

  mysql> delete from students where Age > 50;

  mysql> delete from students where Age <= 18;

  mysql> delete from students where age <= 18;

  mysql> delete from students order by id desc limit 5;


  5)、mysql> use mysql ————使用表


(2)、DCL

  1)、GRANT ———-授權(檢視、刪除等)

  mysql> grant select ON ysu.students to `little`@`172.16.%.%` identified by `little`;

  mysql> grant delete ON ysu.students to `little`@`172.16.%.%` identified by `little`;

  2)、REVOKE ———-回收許可權

  mysql> flush privileges;————手動重讀授權表,使授權生效


php 與 php-fpm不能共存



6、LAMP平臺快速架構(httpd、php模組化通訊) ————-專案

(1)、安裝軟體包

  CentOS 7:yum install httpd  php  php-mysql  mariadb-server

  CentOS 6:yum install httpd  php  php-mysql  mysql-server

(2)、建立虛擬主機

(3)、建立用於測試的賬戶 —————-在MySQL或MariaDB中

    mysql> create database wpdb;

    mysql> grant all on wpdb.* to `wpuser`@`172.16.%.%` identified by `wppass`;

(4)、測試php,測試php和mysql之間的通訊,將以下原始碼複製到以【index.php為檔名】的主頁檔案中。

  測試php:

  <?php 

    phpinfo();

  ?>

        

  測試mysql連線性:

  <?php

    $conn = mysql_connect(`172.16.100.71`,`testuser`,`testpass`);

  if($conn)

    echo “OK”;

  else

    echo “Failure”;

  ?>

(5)、將某個應用複製到虛擬主機的文件根目錄中,進行進一步測試。



三、編譯安裝AMP ———-httpd2.4、Meriadb

1、編譯安裝httpd2.4 

 例:編譯安裝httpd-2.4.27

(1)、編譯安裝apr

    # tar xf apr-1.5.2.tar.gz

    # cd apr-1.5.2

    # ./configure –prefix=/usr/local/apr152

    # make -j #

    # make install

(2)、編譯安裝apr-util

    # tar xf apr-util-1.5.4.tar.gz

    # cd apr-util-1.5.2

    # ./configure –prefix=/usr/local/apr-util154 –with-apr=/usr/local/apr152

    # make -j #

    # make install

(4)、編譯安裝httpd-2.4.27

    # tar xf httpd-2.4.27.tar.gz

    # cd httpd-2.4.27

    # ./configure –prefix=/usr/local/apache24 –sysconfdir=/etc/httpd24 –enable-so –enable-ssl –enable-cgi –enable-rewrite –enable-modules=most –enable-mpms-shared=all –with-mpm=prefork –with-pcre –with-zlib –with-apr=/usr/local/apr152 –with-apr-util=/usr/local/apr-util154

    # make -j #

    # make install

(5)、匯出

  1)、匯出二進位制檔案:——–防止二進位制不相容

    建立/etc/profile.d/httpd24.sh

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

  2)、匯出幫助文件(可選)

    編輯/etc/man.config

    MANPATH /usr/local/apache24/man

  3) 匯出標頭檔案:

    # ln -sv /usr/local/apache24/include/ /usr/include/httpd


(6)、如果想要使用service命令來啟動或關閉服務,則需要為httpd提供sysV風格的指令碼,指令碼內容如下:/etc/init.d/httpd

  注意:想要成功使用該指令碼管理服務,要在/etc/httpd24/httpd.conf配置檔案中新增以下指令:PIDFile “/var/run/httpd24.pid”

#!/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/httpd24/httpd.conf

# config: /etc/sysconfig/httpd24

# pidfile: /var/run/httpd24.pid


# Source function library.

. /etc/rc.d/init.d/functions


if [ -f /etc/sysconfig/httpd24 ]; then

  . /etc/sysconfig/httpd24

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/apache24/bin/apachectl

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

prog=httpd

pidfile=${PIDFILE-/var/run/httpd24.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


# chmod +x /etc/rc.d/init.d/httpd

# chkconfig –add httpd

# chkconfig httpd on



2、編譯安裝Meriadb —————通用二進位制格式的MariaDB包

(1)、編譯安裝meriadb-5.5

# tar xf mariadb-5.5.57-linux-x86_64.tar.gz -C /usr/local

# groupadd -r -g 306 msyql

# useradd -r -u 306 -g mysql mysql

# cd /usr/local

# ln -sv /usr/local/mariadb-5.5.57-linux-x86_64 mysql

# cd mysql

# chown mysql. -R .

# mkdir /mydata/data -pv

# chown mysql. /mydata/data

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

  新增配置條目:———-/etc/my.cnf

  innodb_file_per_table = ON

  skip_name_resolve = ON

  datadir = /mydata/data

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


(2)、匯出二進位制檔案

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

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

# source /etc/profile.d/maria5557.sh


(3)、匯出庫檔案

mysql-x86_64.conf檔案移除或改名為非.conf結尾的檔名;

# vim /etc/ld.so.conf.d/mariadb5557.conf

/usr/local/mysql/lib

# ldconfig -v


(4)、匯出標頭檔案

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


(5)、初始化資料庫

# scripts/mysql_install_db –user=mysql –datadir=/mydata/data 


(6)、啟動服務:

# service mysqld start

# chkconfig –add mysqld

# chkconfig mysqld on



3、編譯安裝php-5.6.31:

  FastCGI實現方式為:php-fpm。centos6不支援FCGI模組,centos7支援FCGI模組。

  fpm的配置檔案:/etc/php-fpm.d/*.conf  /etc/php-fpm.conf

  需要依賴於:libxml2-devel, gd-devel, freetype-devel, libmcrypt-devel

(1)、安裝php-5.6

  # tar xf php-5.6.31.tar.gz

  # cd php-5.6.31

  # ./configure –prefix=/usr/local/php56 –enable-fpm –with-mysql=/usr/local/mysql –with-mysqli=/usr/local/mysql/bin/mysql_config –with-openssl –enable-mbstring –enable-xml –enable-sockets –with-freetype-dir –with-libxml-dir=/usr –with-zlib –with-apxs2=/usr/local/apache24/bin/apxs –with-config-file-path=/etc/php56.ini –with-config-file-scan-dir=/etc/php56.d –with-gd –with-jpeg-dir –with-png-dir –with-mcrypt

  # make -j #

  # make install

  # cp php.ini-production /etc/php56.ini

  # mkdir /etc/php56.d

  # cp sapi/fpm/php-fpm.conf /etc/php56.d/

  # vim /etc/php56.d/php-fpm.conf

    user = nobody

    group = nobody

    listen = 127.0.0.1:9000

    listen.allowed_clients = 127.0.0.1

    pm = dynamic

    pm.max_children = 5

    pm.start_servers = 2

    pm.min_spare_servers = 1

    pm.max_spare_servers = 3

    pm.status_path = /fpm-status

    pm.max_requests = 500

    pid = /usr/local/php56/var/run/php-fpm.pid 


    php_value[session.save_handler] = files —————-pm方式的php程式儲存session的路徑

    php_value[session.save_path] = /var/lib/php56/session


(2)、pm方式的php程式儲存session的路徑          

    # mkdir /var/lib/php56/session

    # chown nobody.nobody /var/lib/php56/session


(3)、為php-fpm提供SysV風格指令碼,並將其新增至服務列表

  # 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


(4)、修改/etc/rc.d/init.d/php-fpm

   1)、新增:scan_conf_dir=/etc/php56.d

   2)、修改:

    php_fpm_CONF=${exec_prefix}/php-fpm.conf 

    改為:

    php_fpm_CONF=${scan_conf_dir}/php-fpm.conf


(5)、啟動服務

  # service php-fpm start



4、httpd和fastCGI相容通訊 ——————專案

  FastCGI實現方式為:php-fpm。centos6不支援FCGI模組,centos7支援FCGI模組。

  fpm的配置檔案:/etc/php-fpm.d/*.conf  /etc/php-fpm.conf


  # yum install php-fpm php-pdo php-gd php-mbstring php-mysql

  兩個服務程式的配置檔案:/etc/php-fpm.conf, /etc/php-fpm.d/*.conf

  服務程式的配置檔案:(global、www兩段)————-/etc/php-fpm.d/www.conf

  [global]:

  pid = /run/php-fpm/php-fpm.pid

      

  [www]: ————-/etc/php-fpm.d/www.conf配置檔案中的pool的配置內容

  user = apache

  group = apache

  listen = 127.0.0.1:9000

  listen.backlog = 100

  listen.allowed_clients = 127.0.0.1

  pm = dynamic

  pm.max_children = 50

  pm.start_servers = 5

  pm.min_spare_servers = 5

  pm.max_spare_servers = 35

  pm.status_path = /fpm-status

  pm.max_requests = 500

        


5、配置httpd和php-fpm結合 ———————專案

(1)、httpd的配置

<VirtualHost 172.16.72.1:80>

  DocumentRoot “/myweb/vhosts/www”

  ServerName www.qhdlink.com

  DirectoryIndex index.php

  ProxyRequests Off

  ProxyPassMatch ^/(.*.php) fcgi://127.0.0.1:9000/myweb/vhosts/www/$1

  <Directory “/myweb/vhosts/www”>

    Options None

    AllowOverride None

    Require all granted

  </Directory>

</VirtualHost>


(2)、設定php加速訪問 ————–2種安裝方式

編譯安裝:

下載xcache的原始碼 http://xcache.lighttpd.net

編譯xcache:

# tar xcache-3.2.0.tar.gz

# cd xcache-3.2.0

# phpize

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

# make -j # 

# make install


EPEL安裝:———–直接使用rpm包安裝,rpm包在EPEL源中

# yum install php-xcache

     本文轉自little_ding 51CTO部落格,原文連結:http://blog.51cto.com/12496428/1967402,如需轉載請自行聯絡原作者



相關文章