<output id="r87xx"></output>
    1. 
      
      <mark id="r87xx"><thead id="r87xx"><input id="r87xx"></input></thead></mark>
        •   

               當(dāng)前位置:首頁(yè)>軟件介紹>LNMP之nginx1.4.6+php5.5.11+mysql5.6.17+mecache+opcache編譯安裝 查詢:
               
          LNMP之nginx1.4.6+php5.5.11+mysql5.6.17+mecache+opcache編譯安裝

                  可能要用到的軟件:

                  libiconv-1.13.tar.gz

                  libmcrypt-2.5.8.tar.gz

                  mcrypt-2.6.8.tar.gz

                  mhash-0.9.9.9.tar.gz

                  memcache-2.2.5.tgz

                  PDO_MYSQL-1.0.2.tgz

                  imagick-3.1.2.tgz

                  pcre-8.21.tar.gz

                  mysql-5.6.17.tar.gz

                  ImageMagick.tar.gz

                  php-5.5.11.tar.gz

                  nginx-1.4.6.tar.gz

                  系統(tǒng)安裝需求: 

                  

                  centos 6.4 *86_64

                  

                  mini 安裝

                  安裝解決依賴關(guān)系:

                  yum install -y wget gcc gcc-c++ autoconf libjpeg libjpeg-devel perl perl* perl-CPAN libpng libpng-devel

                  freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2

                  bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn

                  libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers

                  png jpeg autoconf gcc cmake make gcc-c++ gcc ladp ldap* ncurses ncurses-devel zlib zlib-devel

                  zlib-static pcre pcre-devel pcre-static openssl openssl-devel perl libtoolt openldap-devel libxml2-devel

                  ntpdate cmake gd* gd2 ImageMagick-devel jpeg jpeg* pcre-dev* fontconfig libpng libxml2 zip unzip gzip

                  下載所有使用到的軟件:

                  wget http://ftp.gnu.org/gnu/libiconv/libiconv-1.13.tar.gz

                  wget

                  wget http://jaist.dl.sourceforge.net/project/mcrypt/MCrypt/2.6.8/mcrypt-2.6.8.tar.gz

                  wget http://jaist.dl.sourceforge.net/project/mhash/mhash/0.9.9.9/mhash-0.9.9.9.tar.gz

                  wget

                  wget http://pecl.php.net/get/imagick-3.1.2.tgz

                  wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.21.tar.gz

                  wget

                  wget https://lnamp-web-

                  NGINX1.4.6: http://nginx.org/download/nginx-1.4.6.tar.gz

                  MYSQL5.6.17

                  http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.17.tar.gz

                  PHP5.5.11

                  http://us1.php.net/get/php-5.5.11.tar.gz/from/this/mirror

                  先前分別在兩臺(tái)機(jī)器上編譯過(guò)兩次不同 MYSQL 版本:

                  MYSQL5.6.12和 MYSQL5.6.17 編譯命令 都是如下:

                  cmake

                  -DCMAKE_INSTALL_PREFIX=/usr/local/mysql

                  -DMYSQL_DATADIR=/usr/local/mysql/data

               

                  -DSYSCONFDIR=/etc

                  -DWITH_MYISAM_STORAGE_ENGINE=1

                

                  -DWITH_INNOBASE_STORAGE_ENGINE=1  

                  

                  -DWITH_MEMORY_STORAGE_ENGINE=1

                  -DWITH_READLINE=1

                  -DMYSQL_UNIX_ADDR=/tmp/mysqld.sock

                  -DMYSQL_TCP_PORT=3306

                  -DENABLED_LOCAL_INFILE=1

                   

                  -DWITH_PARTITION_STORAGE_ENGINE=1

                  -DEXTRA_CHARSETS=all

                  -DDEFAULT_CHARSET=utf8

                  -DDEFAULT_COLLATION=utf8_general_ci

                  完成后,繼續(xù)下面的操作

                   

                  cd /usr/local/mysql

                  chown -R mysql:mysql . (為了安全安裝完成后請(qǐng)修改權(quán)限給 root 用戶)

                  scripts/mysql_install_db --user=mysql (先進(jìn)行這一步再做如下權(quán)限

                  的修改) 

                  chown -R root:mysql . (將權(quán)限設(shè)置給 root 用戶,并設(shè)置給 mysql 組,

                  取消其他用戶的讀寫執(zhí)行權(quán)限,僅留給 mysql "rx"讀執(zhí)行權(quán)限,其他用戶無(wú)

                  任何權(quán)限) 

                  chown -R mysql:mysql ./data

                  (給數(shù)據(jù)庫(kù)存放目錄設(shè)置成 mysql 用戶

                  mysql 組,并賦予 chmod -R ug+rwx 讀寫執(zhí)行權(quán)限,其他用戶權(quán)限一律刪除

                  僅給 mysql 用戶權(quán)限)

                  下面的命令是可選的,將 mysql 的配置文件拷貝到/etc 

                  cp support-files/my-medium.cnf /etc/my.cnf (原始老版本是此操作,

                  5.6.12版本的是如下文件地址) 

                  cp support-files/my-default.cnf

                  /etc/my.cnf

                  (并給/etc/my.cnf

                  +x 權(quán)限 同時(shí)刪除 其他用戶的寫權(quán)限,僅僅留給 root 和工作組 rx 權(quán)限,其

                  他一律刪除連 rx 權(quán)限都刪除)

                  #修改 my.cnf 配置

                  vim /etc/my.cnf

                  #[mysqld] 添加:

                  datadir=/data/mysql

                  default-storage-engine=MyISAM

                  啟動(dòng) mysql:

                  [c-sharp]view plaincopy 

                  bin/mysqld_safe --user=mysql &

                  #啟動(dòng) mysql,看是否成功

                   netstat -tnl|grep 3306 

                  

                  [c-sharp]view plaincopy

                  ?? bin/mysqld_safe --user=mysql &

                  ?? #啟動(dòng) mysql,看是否成功

                  ?? netstat -tnl|grep 3306

                  上面是一種啟動(dòng) mysql 的方法,還有一種簡(jiǎn)單的方便,如下:

                  [c-sharp]view plaincopy 

                  #將 mysql 的啟動(dòng)服務(wù)添加到系統(tǒng)服務(wù)中

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

                  #現(xiàn)在可以使用下面的命令啟動(dòng) mysql

                  service mysql start

                  #停止 mysql 服務(wù)

                  service mysql stop

                  #重啟 mysql 服務(wù)

                  service mysql restart

                  將 mysql 服務(wù)添加到開(kāi)機(jī)啟動(dòng)項(xiàng),讓 mysql 服務(wù)開(kāi)機(jī)啟動(dòng)

                  [c-sharp]view plaincopy

                  chkconfig --add mysql

                  修改默認(rèn) root 賬戶密碼,默認(rèn)密碼為空

                  修改密碼 cd 切換到 mysql 所在目錄

                  cd /usr/local/mysql

                  #./bin/mysqladmin -u root password

                  回車在接下來(lái)的提示中設(shè)置新密碼即可。。

                  #啟動(dòng) MySQL

                  /usr/local/mysql/bin/mysqld_safe –defaults-file=/etc/my.cnf &

                  #或者

                  /etc/init.d/mysql start (service mysql start)

                  #測(cè)試 MySQL 是否啟動(dòng)

                  # 1)查看是否有進(jìn)程 mysql

                  ps -ef | grep mysql

                  # 2)查看端口是否運(yùn)行

                  netstat -tnl | grep 3306

                  # 3)讀取 mysql 版本信息 

                  

                  mysqladmin version

                  PHP5.4.8常用編譯命令

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

                  --with-apxs2=/usr/local/apache2/bin/apxs

                  #此行僅在 apache+php 下使

                  用,nginx+php 時(shí)請(qǐng)去掉

                  --with-config-file-path=/usr/local/php/etc

                  --with-mysql=/usr/local/mysql

                  --with-mysqli=/usr/local/mysql/bin/mysql_config

                  --with-iconv-dir

                  --with-jpeg-dir

                  --with-png-dir

                  --with-zlib

                  --with-libxml-dir

                  --enable-xml

                  --disable-rpath

                  --enable-bcmath

                  --enable-shmop

                  --enable-sysvsem

                  --enable-inline-optimization

                  --with-curl

                  --with-curlwrappers

                  --enable-mbregex

                  --enable-fpm

                  --enable-mbstring

                  --with-mcrypt

                  --with-gd

                  --with-freetype-dir

                  --enable-gd-native-ttf

                  --with-openssl

                  --with-mhash

                  --enable-pcntl

                  --enable-sockets

                  --with-ldap

                  --with-ldap-sasl

                  --with-xmlrpc

                  --enable-zip

                  --enable-soap

                  --enable-session

                  --with-gettext

                  --enable-pdo

                  --with-pdo-mysql  

                  

                  --enable-shared

                  --enable-ftp

                  --enable-exif

                  --with-pear

                  php5.5之后新增下面可選命令

                  --enable-opcache

                  線上服務(wù)器可以加入以下命令關(guān)閉調(diào)試模式:

                  --disable-debug

                  php5.5.11 后 無(wú) 法 識(shí) 別 的 廢 舊 編 譯 選 項(xiàng) ( 如 果 提 示 WRING 警 告 無(wú) 法 識(shí) 別

                  --with-curlwrappers 無(wú)視即可):

                  --with-curlwrappers

                  使用 NGINX 處理請(qǐng)去掉下面一行,下面一行僅在 APACHE 下使用

                  --with-apxs2=/usr/local/apache2/bin/apxs

                  使用 NGINX 可以加入下面兩行指定 FPM 運(yùn)行賬戶權(quán)限:

                  --with-fpm-user=www

                  --with-fpm-group=www

                  PHP 編譯選項(xiàng)說(shuō)明:

                  """ 安裝路徑 """

                  --prefix=/usr/local/php

                  """ php.ini 配置文件路徑 """

                  --with-config-file-path=/etc

                  """ 優(yōu)化選項(xiàng) """

                  --enable-inline-optimization

                  --disable-debug

                  --disable-rpath

                  --enable-shared

                  """ 啟用 opcache,默認(rèn)為 ZendOptimizer+(ZendOpcache) """

                  --enable-opcache

                  """ FPM """

                  --enable-fpm

                  --with-fpm-user=www

                  --with-fpm-group=www

                  """ MySQL """

                  --with-mysql=mysqlnd

                  --with-mysqli=mysqlnd

                  --with-pdo-mysql=mysqlnd

                  """ 國(guó)際化與字符編碼支持 """

                  --with-gettext

                  --enable-mbstring

                  --with-iconv  

                  

                  """ 加密擴(kuò)展 """

                  --with-mcrypt

                  --with-mhash

                  --with-openssl

                  """ 數(shù)學(xué)擴(kuò)展 """

                  --enable-bcmath

                  """ Web 服務(wù),依賴 libxml """

                  --enable-soap

                  --with-libxml-dir

                  """ 進(jìn)程控制 """

                  --enable-pcntl

                  --enable-shmop

                  --enable-sysvsem

                  """ socket & curl """

                  --enable-sockets

                  --with-curl

                  """ 壓縮與歸檔 """

                  --with-zlib

                  --enable-zip

                  --with-bz2

                  """ GNU Readline 命令行快捷鍵綁定 """

                  --with-readline

                  """ 禁用 SQLite 支持?jǐn)U展 """

                  --without-sqlite3

                  --without-pdo-sqlite

                  """ 更多 PHP 擴(kuò)展與應(yīng)用庫(kù) """

                  --with-pear

                  在 Linux 下安裝 PHP,源代碼方式安裝

                  需要配置很多參數(shù)。這里列出常用配置參數(shù),并詳細(xì)用中文解釋說(shuō)明了。給大家一些參考

                  編譯 PHP 的時(shí)候慎用 –with-curlwrappers 參數(shù)

                  ./configure

                  --prefix=/usr/local/PHP

                  --with-apxs2=/usr/local/apache/bin/apxs

                  版本

                  php 安裝目錄

                  表示使用 apache2.0以上版本,apxs 表示使用的 apache1.0

                  --with-config-file-path=/usr/local/PHP/etc

                  --with-MySQL=/usr/local/mysql

                  --with-MySQLi=/usr/local/mysql/bin/mysql_config

                  --enable-safe-mode

                  指定 php.ini 位置

                  mysql 安裝目錄,對(duì) mysql 的支持

                  mysqli 文件目錄,優(yōu)化支持

                  打開(kāi)安全模式

                  --enable-ftp

                  打開(kāi) ftp 的支持 

                  

                  --enable-zip

                  --with-bz2

                  --with-jpeg-dir

                  --with-png-dir

                  --with-freetype-dir

                  --without-iconv

                  --with-libXML-dir

                  --with-XMLrpc

                  --with-zlib-dir

                  --with-gd

                  --enable-gd-native-ttf

                  --with-curl

                  --with-curlwrappers

                  --with-ttf

                  --with-xsl

                  軟件

                  --with-gettext

                  --with-pear

                  --enable-calendar

                  --enable-mbstring

                  --enable-bcmath

                  --enable-sockets

                  --enable-exif

                  --enable-magic-quotes

                  --disable-rpath

                  --disable-debug

                  

                  打開(kāi)對(duì) zip 的支持

                  打開(kāi)對(duì) bz2文件的支持

                  打開(kāi)對(duì) jpeg 圖片的支持

                  打開(kāi)對(duì) png 圖片的支持

                  打開(kāi)對(duì) freetype 字體庫(kù)的支持

                  關(guān)閉 iconv 函數(shù),種字符集間的轉(zhuǎn)換

                  打開(kāi) libxml2庫(kù)的支持

                  打開(kāi) xml-rpc 的 c 語(yǔ)言

                  打開(kāi) zlib 庫(kù)的支持

                  打開(kāi) gd 庫(kù)的支持

                  支持 TrueType 字符串函數(shù)庫(kù)

                  打開(kāi) curl 瀏覽工具的支持

                  運(yùn)用 curl 工具打開(kāi) url 流

                  打開(kāi) freetype1.*的支持,可以不加了

                  打開(kāi) XSLT 文件支持,擴(kuò)展了 libXML2庫(kù) ,需要 libxslt

                  打開(kāi) gnu 的 gettext 支持,編碼庫(kù)用到

                  打開(kāi) pear 命令的支持,PHP 擴(kuò)展用的

                  打開(kāi)日歷擴(kuò)展功能

                  多字節(jié),字符串的支持

                  打開(kāi)圖片大小調(diào)整,用到 zabbix 監(jiān)控的時(shí)候用到了這個(gè)模塊

                  打開(kāi) sockets 支持

                  圖片的元數(shù)據(jù)支持

                  魔術(shù)引用的支持

                  關(guān)閉額外的運(yùn)行庫(kù)文件

                  關(guān)閉調(diào)試模式

                  --with-mime-magic=/usr/share/file/magic.mime

                  --enable-opcache //PHP5.5X+新增代碼加速功能

                  CGI 方式安裝才用的參數(shù)

                  魔術(shù)頭文件位置

                  --enable-fpm

                  --enable-fastCGI

                  --enable-force-CGI-redirect

                  --with-ncurses

                  --enable-pcntl

                  mhash 和 mcrypt 算法的擴(kuò)展

                  --with-mcrypt

                  --with-mhash

                  --with-gmp

                  --enable-inline-optimization

                  --with-openssl

                  打上 PHP-fpm 補(bǔ)丁后才有這個(gè)參數(shù),CGI 方式安裝的啟動(dòng)程序

                  支持 fastcgi 方式啟動(dòng) PHP

                  同上 ,幫助里沒(méi)有解釋

                  支持 ncurses 屏幕繪制以及基于文本終端的圖形互動(dòng)功能的動(dòng)態(tài)庫(kù)

                  freeTDS 需要用到的,可能是鏈接 mssql 才用到

                  算法

                  算法

                  openssl 的支持,加密傳輸時(shí)用到的 

                  

                  --enable-dbase

                  --with-pcre-dir=/usr/local/bin/pcre-config

                  --disable-dmalloc

                  perl 的正則庫(kù)案安裝位置

                  --with-gdbm

                  --enable-sigchild

                  --enable-sysvsem

                  --enable-sysvshm

                  --enable-zend-multibyte

                  dba 的 gdbm 支持

                  支持 zend 的多字節(jié)

                  --enable-mbregex

                  --enable-wddx

                  --enable-shmop

                  --enable-soap

                  準(zhǔn)備 PHP 的配置文件

                  1# cd /home/down/php-5.5.11

                  2# cp php.ini-production /usr/local/php/etc/php.ini

                  準(zhǔn)備 php_fpm 的配置文件 

                  # cd /usr/local/php/etc/ 

                  # cp php-fpm.conf.defaultphp-fpm.conf 

                  # vim php-fpm.conf 

                  修改 php-fpm.conf 配置文件

                  內(nèi)容去掉如下前面的分號(hào),并根據(jù)實(shí)際硬件配置進(jìn)行更改,這里僅做簡(jiǎn)單配置,下面會(huì)有 PHP-FPM 的詳細(xì)的

                  優(yōu)化配置講解

                  pid = run/php-fpm.pid

                  error_log = log/php-fpm.log

                  listen = 127.0.0.1:9000

                  pm.max_children = 40

                  pm.start_servers = 12

                  pm.min_spare_servers = 4

                  pm.max_spare_servers = 20

                  pm.max_requests = 1000 

                  

                  使用 php-fpm 啟動(dòng) php

                  (需要注意的是啟動(dòng)配置文件需要給用戶組+rx 權(quán)限尤其要添加到服務(wù)器項(xiàng)的+x 權(quán)限,否

                  則會(huì)因沒(méi)有可執(zhí)行權(quán)限而產(chǎn)生的異常錯(cuò)誤)

                  Php-fpm 代碼

                  php5.5X+版本提供了 php-fpm 的管理工具,可以很方便的 start,stop,restart

                  Php-fpm 代碼

                  // 個(gè)人習(xí)慣把 php 相關(guān)命令丟在這

                  #cd /usr/local/php/sbin/

                  // 在安裝文件中復(fù)制該文件

                  #cp /home/down/php-5.5.11/sapi/fpm/init.d.php-fpm

                  ./

                  #chmod 755 init.d.php-fpm

                  // start | stop | restart

                  #./init.d.php-fpm start

                  另一種 PHP-FPM 啟動(dòng)方式:

                  測(cè)試 php/php-fpm 是否安裝成功:

                  #測(cè)試 php-fpm 配置(實(shí)際路徑根據(jù)自己 PHP 安裝路徑自行替換)

                  /usr/local/php/sbin/php-fpm-t

                  /usr/local/php/sbin/php-fpm-c/usr/local/php/etc/php.ini

                  -y/usr/local/php/etc/php-fpm.conf -t

                  出現(xiàn)類似如下提示證明測(cè)試通過(guò),PHP/php-fpm 安裝成功

                  [18-Apr-2014

                  23:20:15]

                  NOTICE:

                  configuration

                  file

                  /usr/local/php/etc/php-fpm.conf test is successful

                  ( 一 點(diǎn) 小 插 曲 : 第 一 次 測(cè) 試 時(shí) 啟 動(dòng) 時(shí) 出 現(xiàn) 如 下 錯(cuò) 誤 , vim

                  /usr/local/php/etc/php-fpm.conf 打開(kāi)找到第52行發(fā)現(xiàn)52行的修改注釋忘記

                  加注釋符號(hào)分號(hào)“;”了,OK 搞定 

                  

                  Starting

                  

                  php-fpm

                  

                  [18-Apr-2014

                  

                  23:09:15]

                  

                  ERROR:

                  [/usr/local/php/etc/php-fpm.conf:52]

                  value

                  is

                  NULL

                  for

                  a

                  ZEND_INI_PARSER_ENTRY

                  [18-Apr-2014 23:09:15] ERROR: failed to load configuration file

                  '/usr/local/php/etc/php-fpm.conf'

                  [18-Apr-2014 23:09:15] ERROR: FPM initialization failed)

                  #啟動(dòng) php-fpm

                  /usr/local/php/sbin/php-fpm

                  /usr/local/php/sbin/php-fpm-c/usr/local/php/etc/php.ini

                  -y/usr/local/php/etc/php-fpm.conf

                  #關(guān)閉 php-fpm

                  kill-INT `cat/usr/local/php/var/run/php-fpm.pid`

                  #重啟 php-fpm

                  kill-USR2 `cat/usr/local/php/var/run/php-fpm.pid`

                  為 php-fpm 提供 Sysv init 腳本,并將其添加至服務(wù)列表 致使開(kāi)機(jī)自

                  動(dòng)啟動(dòng)

                    

                  # cd/home/down/php-5.5.11

                  # cp sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/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

                  完成如上操作即可在命令行使用 service php-fpm start | stop | restart 進(jìn)行 啟動(dòng)|

                  停止|重啟操作 php-fpm 了 

                  

                  php-fpm.conf 重要參數(shù)詳解

                  pid = run/php-fpm.pid

                  #pid 設(shè)置,默認(rèn)在安裝目錄中的 var/run/php-fpm.pid,建議開(kāi)啟

                  error_log = log/php-fpm.log

                  #錯(cuò)誤日志,默認(rèn)在安裝目錄中的 var/log/php-fpm.log

                  log_level = notice

                  #錯(cuò)誤級(jí)別. 可用級(jí)別為: alert(必須立即處理), error(錯(cuò)誤情況), warning

                  (警告情況), notice(一般重要信息), debug(調(diào)試信息). 默認(rèn): notice.

                  emergency_restart_threshold = 60

                  emergency_restart_interval = 60s

                  #表示在 emergency_restart_interval 所設(shè)值內(nèi)出現(xiàn) SIGSEGV 或者 SIGBUS 錯(cuò)誤

                  的 php-cgi 進(jìn)程數(shù)如果超過(guò) emergency_restart_threshold 個(gè),php-fpm 就會(huì)優(yōu)

                  雅重啟。這兩個(gè)選項(xiàng)一般保持默認(rèn)值。

                  process_control_timeout = 0

                  #設(shè)置子進(jìn)程接受主進(jìn)程復(fù)用信號(hào)的超時(shí)時(shí)間. 可用單位: s(秒), m(分), h(小

                  時(shí)), 或者 d(天) 默認(rèn)單位: s(秒). 默認(rèn)值: 0.

                  daemonize =yes

                  #后臺(tái)執(zhí)行 fpm,默認(rèn)值為 yes,如果為了調(diào)試可以改為 no。在 FPM 中,可以使用

                  不同的設(shè)置來(lái)運(yùn)行多個(gè)進(jìn)程池。 這些設(shè)置可以針對(duì)每個(gè)進(jìn)程池單獨(dú)設(shè)置。

                  listen = 127.0.0.1:9000

                  #fpm 監(jiān)聽(tīng)端口,即 nginx 中 php 處理的地址,一般默認(rèn)值即可??捎酶袷綖?

                  'ip:port', 'port', '/path/to/unix/socket'. 每個(gè)進(jìn)程池都需要設(shè)置.

                  listen.backlog = -1

                  #backlog 數(shù),-1表示無(wú)限制,由操作系統(tǒng)決定,此行注釋掉就行。backlog 含義

                  參考:http://www.3gyou.cc/?p=41

                  listen.allowed_clients = 127.0.0.1 

                  

                  #允許訪問(wèn) FastCGI 進(jìn)程的 IP,設(shè)置 any 為不限制 IP,如果要設(shè)置其他主機(jī)的

                  nginx 也能訪問(wèn)這臺(tái) FPM 進(jìn)程,listen 處要設(shè)置成本地可被訪問(wèn)的 IP。默認(rèn)值

                  是 any。每個(gè)地址是用逗號(hào)分隔. 如果沒(méi)有設(shè)置或者為空,則允許任何服務(wù)器請(qǐng)

                  求連接

                  listen.owner = www

                  listen.group = www

                  listen.mode = 0666

                  #unix socket 設(shè)置選項(xiàng),如果使用 tcp 方式訪問(wèn),這里注釋即可。

                  user = www

                  group = www

                  #啟動(dòng)進(jìn)程的帳戶和組

                  pm = dynamic#對(duì)于專用服務(wù)器,pm 可以設(shè)置為 static。

                  # 如 何 控 制 子 進(jìn) 程 , 選 項(xiàng) 有 static 和 dynamic 。 如 果 選 擇 static , 則 由

                  pm.max_children 指定固定的子進(jìn)程數(shù)。如果選擇 dynamic,則由下開(kāi)參數(shù)決定:

                  pm.max_children#,子進(jìn)程最大數(shù)

                  pm.start_servers#,啟動(dòng)時(shí)的進(jìn)程數(shù)

                  pm.min_spare_servers#,保證空閑進(jìn)程數(shù)最小值,如果空閑進(jìn)程小于此值,則

                  創(chuàng)建新的子進(jìn)程

                  pm.max_spare_servers#,保證空閑進(jìn)程數(shù)最大值,如果空閑進(jìn)程大于此值,此

                  進(jìn)行清理

                  pm.max_requests = 1000

                  #設(shè)置每個(gè)子進(jìn)程重生之前服務(wù)的請(qǐng)求數(shù). 對(duì)于可能存在內(nèi)存泄漏的第三方模塊

                  來(lái)說(shuō)是非常有用的. 如果設(shè)置為

                  '0' 則 一 直 接 受 請(qǐng) 求 . 等 同 于

                  PHP_FCGI_MAX_REQUESTS 環(huán)境變量. 默認(rèn)值: 0.

                  pm.status_path =/status

                  #FPM 狀態(tài)頁(yè)面的網(wǎng)址. 如果沒(méi)有設(shè)置, 則無(wú)法訪問(wèn)狀態(tài)頁(yè)面. 默認(rèn)值: none.

                  munin 監(jiān)控會(huì)使用到

                  ping.path =/ping 

                  

                  #FPM 監(jiān)控頁(yè)面的 ping 網(wǎng)址. 如果沒(méi)有設(shè)置, 則無(wú)法訪問(wèn) ping 頁(yè)面. 該頁(yè)面用

                  于外部檢測(cè) FPM 是否存活并且可以響應(yīng)請(qǐng)求. 請(qǐng)注意必須以斜線開(kāi)頭 (/)。

                  ping.response = pong

                  #用于定義 ping 請(qǐng)求的返回相應(yīng). 返回為 HTTP 200 的 text/plain 格式文本.

                  默認(rèn)值: pong.

                  request_terminate_timeout = 0

                  # 設(shè) 置 單 個(gè) 請(qǐng) 求 的 超 時(shí) 中 止 時(shí) 間 . 該 選 項(xiàng) 可 能 會(huì) 對(duì) php.ini 設(shè) 置 中 的

                  'max_execution_time'因?yàn)槟承┨厥庠驔](méi)有中止運(yùn)行的腳本有用. 設(shè)置為

                  '0' 表示 'Off'.當(dāng)經(jīng)常出現(xiàn)502錯(cuò)誤時(shí)可以嘗試更改此選項(xiàng)。

                  request_slowlog_timeout = 10s

                  #當(dāng)一個(gè)請(qǐng)求該設(shè)置的超時(shí)時(shí)間后,就會(huì)將對(duì)應(yīng)的 PHP 調(diào)用堆棧信息完整寫入到

                  慢日志中. 設(shè)置為 '0' 表示 'Off'

                  slowlog = log/$pool.log.slow

                  #慢請(qǐng)求的記錄日志,配合 request_slowlog_timeout 使用

                  rlimit_files = 1024

                  #設(shè)置文件打開(kāi)描述符的 rlimit 限制. 默認(rèn)值: 系統(tǒng)定義值默認(rèn)可打開(kāi)句柄是

                  1024,可使用 ulimit -n 查看,ulimit -n 2048修改。

                  rlimit_core = 0

                  #設(shè)置核心 rlimit 最大限制值. 可用值: 'unlimited' 、0或者正整數(shù). 默認(rèn)值:

                  系統(tǒng)定義值.

                  chroot =

                  #啟動(dòng)時(shí)的 Chroot 目錄. 所定義的目錄需要是絕對(duì)路徑. 如果沒(méi)有設(shè)置, 則

                  chroot 不被使用.

                  chdir =

                  #設(shè)置啟動(dòng)目錄,啟動(dòng)時(shí)會(huì)自動(dòng) Chdir 到該目錄. 所定義的目錄需要是絕對(duì)路徑.

                  默認(rèn)值: 當(dāng)前目錄,或者/目錄(chroot 時(shí))

                  catch_workers_output =yes

                  #重定向運(yùn)行過(guò)程中的 stdout 和 stderr 到主要的錯(cuò)誤日志文件中. 如果沒(méi)有設(shè) 

                  

                  置, stdout 和 stderr 將會(huì)根據(jù) FastCGI 的規(guī)則被重定向到 /dev/null . 默認(rèn)

                  值: 空.

                  PHP-FPM 常見(jiàn)錯(cuò)誤及解決辦法整理

                  如果 file_get_contents 請(qǐng)求的遠(yuǎn)程資源如果反應(yīng)過(guò)慢,file_get_contents 就

                  會(huì)一直卡在那里不會(huì)超時(shí)。我們知道 php.ini 里面 max_execution_time 可以設(shè)

                  置 PHP 腳本的最大執(zhí)行時(shí)間,但是,在 php-cgi(php-fpm) 中,該參數(shù)不會(huì)起

                  效。真正能夠控制 PHP 腳本最大執(zhí)行時(shí)間的是 php-fpm.conf 配置文件中的

                  request_terminate_timeout 參數(shù)。

                  request_terminate_timeout 默認(rèn)值為 0 秒,也就是說(shuō),PHP 腳本會(huì)一直執(zhí)行

                  下去。這樣,當(dāng)所有的 php-cgi 進(jìn)程都卡在 file_get_contents() 函數(shù)時(shí),這

                  臺(tái) Nginx+PHP 的 WebServer 已經(jīng)無(wú)法再處理新的 PHP 請(qǐng)求了,Nginx 將給用

                  戶返回“502 Bad Gateway”。修改該參數(shù),設(shè)置一個(gè) PHP 腳本最大執(zhí)行時(shí)間是

                  必要的,但是,治標(biāo)不治本。例如改成 30s,如果發(fā)生 file_get_contents() 獲

                  取網(wǎng)頁(yè)內(nèi)容較慢的情況,這就意味著 150 個(gè) php-cgi 進(jìn)程,每秒鐘只能處理 5

                  個(gè) 請(qǐng) 求 , WebServer 同 樣 很 難 避 免 ”502 Bad Gateway” 。 解 決 辦 法 是

                  request_terminate_timeout 設(shè) 置 為 10s 或 者 一 個(gè) 合 理 的 值 , 或 者 給

                  file_get_contents 加一個(gè)超時(shí)參數(shù)。

                  $ctx= stream_context_create(array(

                  

                  'http'=>array(

                 

                  )

                  'timeout'=> 10

                  //設(shè)置一個(gè)超時(shí)時(shí)間,單位為秒

                  ));

                 

                  file_get_contents($str, 0,$ctx);

                  max_requests 參數(shù)配置不當(dāng),可能會(huì)引起間歇性502錯(cuò)誤:

                  pm.max_requests = 1000

                  設(shè)置每個(gè)子進(jìn)程重生之前服務(wù)的請(qǐng)求數(shù). 對(duì)于可能存在內(nèi)存泄漏的第三方模塊

                  來(lái) 說(shuō) 是 非 常 有 用 的 . 如 果 設(shè) 置 為 ’0′ 則 一 直 接 受 請(qǐng) 求 . 等 同 于

                  PHP_FCGI_MAX_REQUESTS 環(huán)境變量. 默認(rèn)值: 0.

                  這段配置的意思是,當(dāng)一個(gè) PHP-CGI 進(jìn)程處理的請(qǐng)求數(shù)累積到 500 個(gè)后,自動(dòng) 

                  

                  重啟該進(jìn)程。

                  但是為什么要重啟進(jìn)程呢?

                  一般在項(xiàng)目中,我們多多少少都會(huì)用到一些 PHP 的第三方庫(kù),這些第三方庫(kù)經(jīng)

                  常存在內(nèi)存泄漏問(wèn)題,如果不定期重啟 PHP-CGI 進(jìn)程,勢(shì)必造成內(nèi)存使用量不

                  斷增長(zhǎng)。因此 PHP-FPM 作為 PHP-CGI 的管理器,提供了這么一項(xiàng)監(jiān)控功能,對(duì)

                  請(qǐng)求達(dá)到指定次數(shù)的 PHP-CGI 進(jìn)程進(jìn)行重啟,保證內(nèi)存使用量不增長(zhǎng)。

                  正是因?yàn)檫@個(gè)機(jī)制,在高并發(fā)的站點(diǎn)中,經(jīng)常導(dǎo)致 502 錯(cuò)誤,我猜測(cè)原因是

                  PHP-FPM 對(duì)從 NGINX 過(guò)來(lái)的請(qǐng)求隊(duì)列沒(méi)處理好。不過(guò)我目前用的還是 PHP

                  5.3.2,不知道在 PHP 5.3.3 中是否還存在這個(gè)問(wèn)題。

                  目前我們的解決方法是,把這個(gè)值盡量設(shè)置大些,盡可能減少 PHP-CGI 重新

                  SPAWN 的次數(shù),同時(shí)也能提高總體性能。在我們自己實(shí)際的生產(chǎn)環(huán)境中發(fā)現(xiàn),內(nèi)

                  存泄漏并不明顯,因此我們將這個(gè)值設(shè)置得非常大(204800)。大家要根據(jù)自己

                  的實(shí)際情況設(shè)置這個(gè)值,不能盲目地加大。

                  話說(shuō)回來(lái),這套機(jī)制目的只為保證 PHP-CGI 不過(guò)分地占用內(nèi)存,為何不通過(guò)檢

                  測(cè)內(nèi)存的方式來(lái)處理呢?我非常認(rèn)同高春輝所說(shuō)的,通過(guò)設(shè)置進(jìn)程的峰值內(nèi)在占

                  用量來(lái)重啟 PHP-CGI 進(jìn)程,會(huì)是更好的一個(gè)解決方案。

                  3,php-fpm 的慢日志,debug 及異常排查神器:

                  request_slowlog_timeout 設(shè)置一個(gè)超時(shí)的參數(shù),slowlog 設(shè)置慢日志的存放位

                  置

                  1 tail-f/var/log/www.slow.log

                  上面的命令即可看到執(zhí)行過(guò)慢的 php 過(guò)程。

                  大家可以看到經(jīng)常出現(xiàn)的網(wǎng)絡(luò)讀取超過(guò)、Mysql 查詢過(guò)慢的問(wèn)題,根據(jù)提示信息

                  再排查問(wèn)題就有很明確的方向了。

                  php-fpm 優(yōu)化

                  1、php-fpm 優(yōu)化參數(shù)介紹

                  他們分別是:pm、pm.max_children、pm.start_servers、pm.min_spare_servers、

                  pm.max_spare_servers。

                  pm:表示使用那種方式,有兩個(gè)值可以選擇,就是 static(靜態(tài))或者 dynamic

                  (動(dòng)態(tài))。

                  在更老一些的版本中,dynamic 被稱作 apache-like。這個(gè)要注意看配置文件的 

                  

                  說(shuō)明。

                  下面4個(gè)參數(shù)的意思分別為:

                   

                  pm.max_children:靜態(tài)方式下開(kāi)啟的 php-fpm 進(jìn)程數(shù)量

                  pm.start_servers:動(dòng)態(tài)方式下的起始 php-fpm 進(jìn)程數(shù)量

                  pm.min_spare_servers:動(dòng)態(tài)方式下的最小 php-fpm 進(jìn)程數(shù)

                  pm.max_spare_servers:動(dòng)態(tài)方式下的最大 php-fpm 進(jìn)程數(shù)量

                  區(qū)別: 

                  如果 dm 設(shè)置為 static,那么其實(shí)只有 pm.max_children 這個(gè)參數(shù)生效。

                  系統(tǒng)會(huì)開(kāi)啟設(shè)置數(shù)量的 php-fpm 進(jìn)程。

                  如果 dm 設(shè)置為 dynamic,那么 pm.max_children 參數(shù)失效,后面3個(gè)參數(shù)生效。

                  系統(tǒng)會(huì)在 php-fpm 運(yùn)行開(kāi)始 的時(shí)候啟動(dòng) pm.start_servers 個(gè) php-fpm 進(jìn)程,

                  然后根據(jù)系統(tǒng)的需求動(dòng)態(tài)在 pm.min_spare_servers 和 pm.max_spare_servers

                  之間調(diào)整 php-fpm 進(jìn)程數(shù)

                  2、服務(wù)器具體配置

                  對(duì)于我們的服務(wù)器,選擇哪種執(zhí)行方式比較好呢?事實(shí)上,跟 Apache 一樣,運(yùn)

                  行的 PHP 程序在執(zhí)行完成后,或多或少會(huì)有內(nèi)存泄露的問(wèn)題。

                  這也是為什么開(kāi)始的時(shí)候一個(gè) php-fpm 進(jìn)程只占用3M 左右內(nèi)存,運(yùn)行一段時(shí)間

                  后就會(huì)上升到20-30M 的原因了。

                  對(duì)于內(nèi)存大的服務(wù)器(比如8G 以上)來(lái)說(shuō),指定靜態(tài)的 max_children 實(shí)際上更

                  為妥當(dāng),因?yàn)檫@樣不需要進(jìn)行額外的進(jìn)程數(shù)目控制,會(huì)提高效率。

                  因?yàn)轭l繁開(kāi)關(guān) php-fpm 進(jìn)程也會(huì)有時(shí)滯,所以內(nèi)存夠大的情況下開(kāi)靜態(tài)效果會(huì)更

                  好。數(shù)量也可以根據(jù) 內(nèi)存/30M 得到,比如8GB 內(nèi)存可以設(shè)置為100,

                  那么 php-fpm 耗費(fèi)的內(nèi)存就能控制在 2G-3G 的樣子。如果內(nèi)存稍微小點(diǎn),比如

                  1G,那么指定靜態(tài)的進(jìn)程數(shù)量更加有利于服務(wù)器的穩(wěn)定。

                  這樣可以保證 php-fpm 只獲取夠用的內(nèi)存,將不多的內(nèi)存分配給其他應(yīng)用去使

                  用,會(huì)使系統(tǒng)的運(yùn)行更加暢通。

                  對(duì)于小內(nèi)存的服務(wù)器來(lái)說(shuō),比如256M 內(nèi)存的 VPS,即使按照一個(gè)20M 的內(nèi)存量來(lái)

                  算,10個(gè) php-cgi 進(jìn)程就將耗掉200M 內(nèi)存,那系統(tǒng)的崩潰就應(yīng)該很正常了。

                  因此應(yīng)該盡量地控制 php-fpm 進(jìn)程的數(shù)量,大體明確其他應(yīng)用占用的內(nèi)存后,給

                  它指定一個(gè)靜態(tài)的小數(shù)量,會(huì)讓系統(tǒng)更加平穩(wěn)一些?;蛘呤褂脛?dòng)態(tài)方式,

                  因?yàn)閯?dòng)態(tài)方式會(huì)結(jié)束掉多余的進(jìn)程,可以回收釋放一些內(nèi)存,所以推薦在內(nèi)存較

                  少的服務(wù)器或 VPS 上使用。具體最大數(shù)量根據(jù) 內(nèi)存/20M 得到。

                  比 如 說(shuō) 512M 的 VPS , 建 議 pm.max_spare_servers 設(shè) 置 為 20 。 至 于

                  pm.min_spare_servers,則建議根據(jù)服務(wù)器的負(fù)載情況來(lái)設(shè)置,比如服務(wù)器上只

                  是部署 php 環(huán)境的話,比較合適的值在5~10之間。 

                  

                  本服務(wù)器配置

                  1、服務(wù)器基本信息:

                  硬盤:數(shù)據(jù)盤30G、系統(tǒng)盤20G

                  內(nèi)存:1.5G

                  CPU:雙核

                  系統(tǒng):CentOS 6.3 64位

                  帶寬:獨(dú)享2M

                  2、部署的應(yīng)用

                  Git、SVN、Apache、Tomcat、PHP、Nginx、Mysql、JDK

                  3、優(yōu)化后的參數(shù)

                  1 pm = dynamic

                  2 pm.start_servers = 5

                  3 pm.min_spare_servers = 2

                  4 pm.max_spare_servers = 8

                  

                  NGINX 安裝配置

                  ./configure --user=www --group=www --prefix=/usr/local/nginx

                  --with-http_stub_status_module

                  --with-http_ssl_module

                  --with-http_realip_module

                  --with-http_image_filter_module

                  --with-http_gzip_static_module

                  --with-http_flv_module

                  --with-pcre

                  檢查是否安裝成功

                  cd

                  /usr/local/nginx/sbin

                  ./nginx -t

                  結(jié)果顯示:

                  nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is

                  ok

                  nginx: configuration file /usr/local/nginx/conf/nginx.conf test is

                  successful 

                  

                  啟動(dòng) nginx

                  cd

                  /usr/local/nginx/sbin 目錄下面 輸入 ./nginx 啟動(dòng) nginx

                  檢查是否啟動(dòng)成功

                  ie 瀏覽器中輸入 http://192.168.15.132 (切換成自己的 IP 地址即可)

                  停止 nginx

                  pkill -9 nginx

                  將 NGINX 添加為系統(tǒng)服務(wù):

                  1、編寫腳本,名為 nginx

                  vim /etc/init.d/nginx

                  chmod 755 /etc/init.d/nginx

                  chkconfig --add nginx

                  chkconfig nginx on

                  更換 NGINX 啟動(dòng)方式 測(cè)試是否成功

                  service nginx start

                  service nginx stop

                  service nginx restart

                  啟動(dòng)

                  停止

                  重啟

                  /etc/init.d/nginx 的內(nèi)容如下:

                  #!/bin/sh

                  #

                  # nginx - this script starts and stops the nginxdaemon

                  #

                  # chkconfig:

                  - 8515

                  # description: Nginx is an HTTP(S) server, HTTP(S) reverse

                  #

                  proxy and IMAP/POP3 proxy server

                  # processname: nginx

                  #config:

                  #config:

                  #pidfile:

                  /etc/nginx/nginx.conf

                  /etc/sysconfig/nginx

                  /var/run/nginx.pid

                  # Source function library.

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

                  # Source networking configuration.

                  . /etc/sysconfig/network 

                  

                  # Check that networking is up.

                  [ "$NETWORKING" = "no" ] && exit0

                  nginx="/usr/local/nginx/sbin/nginx"

                  prog=$(basename $nginx)

                  NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"

                  [ -f /etc/sysconfig/nginx ] && ./etc/sysconfig/nginx

                  lockfile=/var/lock/subsys/nginx

                  start() {

                  [ -x $nginx] || exit 5

                  [ -f$NGINX_CONF_FILE ] || exit 6

                  echo -n$"Starting $prog: "

                  daemon$nginx -c $NGINX_CONF_FILE

                  retval=$?

                  echo

                  [ $retval-eq 0 ] && touch$lockfile

                  return$retval

                  }

                  stop() {

                  echo -n$"Stopping $prog: "

                  killproc$prog -QUIT

                  retval=$?

                  echo

                  [ $retval-eq 0 ] && rm -f$lockfile

                  return$retval

                  killall -9 nginx

                  }

                  restart() {

                  configtest|| return $?

                  stop

                  sleep1

                  start

                  }

                  reload() {

                  configtest|| return $?

                  echo -n$"Reloading $prog: "

                  killproc$nginx -HUP 

                  

                  RETVAL=$?

                  echo

                  }

                  force_reload() {

                  restart

                  }

                  configtest() {

                  $nginx -t -c $NGINX_CONF_FILE

                  }

                  rh_status() {

                  status$prog

                  }

                  rh_status_q() {

                  rh_status>/dev/null2>&1

                  }

                  case "$1" in

                  start)

                  rh_status_q && exit0

                  $1

                  ;;

                  stop)

                  rh_status_q || exit 0

                  $1

                  ;;

                  restart|configtest)

                  $1

                  ;;

                  reload)

                  rh_status_q || exit 7

                  $1

                  ;;

                  force-reload)

                  force_reload

                  ;;

                  status)

                  rh_status

                  ;;

                  condrestart|try-restart)

                  rh_status_q || exit 0 

                  

                  ;;

                  *)

                  echo

                  $"Usage:

                  $0{start|stop|status|restart|condrestart|try-restart|reload|force-rel

                  oad|configtest}"

                  exit 2

                  esac

                  #####################################################################

                  #####

                  編輯 nginx 配置文件,整合 nginx 與 php

                  說(shuō)明:nginx 默認(rèn)頁(yè)面路徑已經(jīng)更改為了/home/var/www;

                  location ~ .php$ {

                  root /home/var/www;

                  fastcgi_pass 127.0.0.1:9000;

                  fastcgi_index index.php;

                  fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;

                  include fastcgi_params;

                  }

                  添加默認(rèn)默認(rèn)頁(yè)面

                  index index.php index.htmlindex.htm;

                  編輯 fastcgi_params 文件,如果為空或不存在該文件則創(chuàng)建并添加如下內(nèi)容,如

                  果已有內(nèi)容則忽略如下步驟

                  vim /usr/local/nginx/conf/fastcgi_params --如果為空把原有內(nèi)容更改如下,

                  不為空則忽略:

                  fastcgi_param GATEWAY_INTERFACE CGI/1.1;

                  fastcgi_param SERVER_SOFTWARE nginx;

                  fastcgi_param QUERY_STRING $query_string;

                  fastcgi_param REQUEST_METHOD $request_method;

                  fastcgi_param CONTENT_TYPE $content_type;

                  fastcgi_param CONTENT_LENGTH $content_length;

                  fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; //

                  這一句如果默認(rèn)配置文件里沒(méi)有請(qǐng)手動(dòng)添加進(jìn)去,否則更改站點(diǎn)目錄后 PHP 訪問(wèn)

                  會(huì)出現(xiàn) not found 

                  

                  fastcgi_param

                  fastcgi_param

                  fastcgi_param

                  fastcgi_param

                  fastcgi_param

                  fastcgi_param

                  fastcgi_param

                  fastcgi_param

                  fastcgi_param

                  fastcgi_param

                  

                  SCRIPT_NAME $fastcgi_script_name;

                  REQUEST_URI $request_uri;

                  DOCUMENT_URI $document_uri;

                  DOCUMENT_ROOT $document_root;

                  SERVER_PROTOCOL $server_protocol;

                  REMOTE_ADDR $remote_addr;

                  REMOTE_PORT $remote_port;

                  SERVER_ADDR $server_addr;

                  SERVER_PORT $server_port;

                  SERVER_NAME $server_name;

                  更改 NGINX 默認(rèn)站點(diǎn)目錄

                  vim /usr/local/nginx/conf/nginx.conf (實(shí)際配置文件安裝路徑)注意替換下面的紅色部位,具體 NGINX

                  優(yōu)化安全設(shè)置,以后將單獨(dú)寫文章做設(shè)置,敬請(qǐng)期待

                  將其中的

                  location / {

                  root

                  html;

                  index index.php index.html index.htm;

                  }

                  改為

                  location / {

                  root

                  /home/var/www;

                  index index.php index.html index.htm;

                  }

                  然后再將

                  location ~ .php$ {

                  root

                  fastcgi_pass

                  html;

                  127.0.0.1:9000; 

                  

                  fastcgi_index

                  fastcgi_param

                  

                  index.php;

                  SCRIPT_FILENAME /script$fastcgi_script_name;

                  include

                  }

                  改為

                  location ~ .php$ {

                  root

                  fastcgi_pass

                  fastcgi_params;

                  

                  

                  /home/var/www;

                  127.0.0.1:9000;

                  fastcgi_index

                  fastcgi_param

                  index.php;

                  SCRIPT_FILENAME

                  $document_root$fastcgi_script_name;

                  }

                  include

                  fastcgi_params;

                  然后重啟 nginx

                  即可

                  更改 index.php 頁(yè)面內(nèi)容

                  vim /home/var/www/index.php

                  <?php phpinfo(); ?>

                  http://127.0.0.1/

                  瀏覽器打開(kāi)

                  驗(yàn)證是否 整合 NGINX+PHP-FPM 整合成功

                  則出現(xiàn) PHPINFO 頁(yè)面信息。。。

                  安裝 MEMCACHE,和 OPCACHE 擴(kuò)展

                  (因?yàn)?php5.5X+版本已經(jīng)內(nèi)置了 memcache 和 opcache 擴(kuò)展,所以不必另行下載,

                  即可采用以下方式進(jìn)行編譯)

                  1.memcache

                  如果需要為 php 增加 memcache 擴(kuò)展,按如下方法進(jìn)行: 

                  

                  cd /usr/local/php/bin

                  ./pecl install memcache

                  安裝時(shí)會(huì)提示是否開(kāi)啟 session 支持,根據(jù)需要輸入 no 或者 yes,安裝后路徑

                  如下:

                  /usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/memcache.

                  so

                  需要手動(dòng)配置到 php.ini 中,增加如下內(nèi)容,即表示啟用 memcache 擴(kuò)展:

                  extension=memcache.so

                  保存后,重啟 Apache,查看 http://192.168.36.24/test.php 進(jìn)行驗(yàn)證。

                  2.Zend OPCache

                  為了提高 php 運(yùn)行速度,可以啟用 Zend OPCache,啟用方法很簡(jiǎn)單,安照上面

                  的方法安裝 php,則已經(jīng)在

                  /usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/ 下 生 成 了

                  opcache.so,只需將其配置到 php.ini 中即可。

                  vim

                  /usr/local/php/etc/php.ini

                  找到[opcache]

                  在其下面增加:

                  zend_extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-201

                  21212/opcache.so

                  然后打開(kāi)并配置相應(yīng)的配置項(xiàng)即可,比如:

                  opcache.enable=1

                  opcache.enable_cli=1

                  opcache.memory_consumption=256

                  opcache.interned_strings_buffer=16

                  opcache.max_accelerated_files=5000

                  opcache.revalidate_freq=60

                  opcache.load_comments=1

                  保存后,重啟 Apache,查看 http://192.168.36.24/test.php 進(jìn)行驗(yàn)證。會(huì)看

                  到如下信息: 

                  

                  with Zend OPcache v7.0.3-dev, Copyright (c) 1999-2013, by Zend

                  Technologies

                  PHP 安裝中出現(xiàn)的常見(jiàn)問(wèn)題及錯(cuò)誤解決方法見(jiàn)下方:

                  出現(xiàn)如下錯(cuò)誤 php 安裝出錯(cuò):configure: error: mcrypt.h not found. Please

                  reinstall libmcrypt.,意思是,沒(méi)有查找到 mcrytp.h,需要安裝 libcrytp,在

                  下面的地址下載 libmarypt:

                  wget

                  ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/attic/libmcrypt/libmcrypt-2.

                  5.8.tar.gz

                  安裝:

                  66 tar -zxvf libmcrypt-2.5.8.tar.gz

                  67 cd libmcrypt-2.5.7

                  67 ./configure

                  70 make

                  71 make install

                  然后再安裝 PHP

                  centos 6.2 64位版本上安裝 LNMP,configure php 的時(shí)候出現(xiàn)下面錯(cuò)誤而退出

                  configure: error: Cannot find ldap libraries in /usr/lib

                  解決辦法:

                  cp -frp /usr/lib64/libldap* /usr/lib/

                  然后再./configure.. ...重新編譯即可

                  error 1

                  checking for xml2-config path...

                  configure: error: xml2-config not found. Please check your libxml2

                  installation.

                  (看提示就明白 是一個(gè) lib 庫(kù)沒(méi)裝

                  先用 yum search 名字 看是否能搜到名

                  字 ,找到名字后 把軟件包 開(kāi)發(fā)包裝上)

                  解決辦法

                  yum install libxml2-devel.x86_64

                  error 2

                  checking for pkg-config... /usr/bin/pkg-config 

                  

                  configure: error: Cannot find OpenSSL's <evp.h>

                  這是 ssl 沒(méi)裝

                  解決辦法

                  yum

                  install

                  openssl.x86_64 openssl-devel.x86_64 -y

                  error 3

                  checking for BZip2 in default path... not found

                  configure: error: Please reinstall the BZip2 distribution

                  這是 bzip2軟件包沒(méi)有安裝

                  解決辦法

                  yum install bzip2-devel.x86_64 -y

                  error 4

                  configure: error: Please reinstall the libcurl distribution -

                  easy.h should be in <curl-dir>/include/curl/

                  curl 和 curl 庫(kù)文件沒(méi)有安裝

                  解決辦法

                  yum install libcurl.x86_64 libcurl-devel.x86_64 -y

                  error 5

                  checking whether to enable JIS-mapped Japanese font support in GD... no

                  checking for fabsf... yes

                  checking for floorf... yes

                  configure: error: jpeglib.h not found

                  GD 庫(kù)沒(méi)有安裝

                  解決辦法

                  yum

                  install

                  libjpeg.x86_64

                  libpng.x86_64

                  freetype.x86_64

                  libjpeg-devel.x86_64 libpng-devel.x86_64 freetype-devel.x86_64 -y

                  error 6 

                  

                  checking for stdarg.h... (cached) yes

                  checking for mcrypt support... yes

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

                  libmcrypt 庫(kù)沒(méi)有安裝 ,要是不能用 yun 安裝的話

                  編譯安裝

                  就要去下載個(gè) gz 包 自己

                  (編譯安裝

                  ./configure

                  make && make install)

                  error7、configure: error: Cannot find ldap.h

                  辦法:

                  yum install php-ldap.x86_64 -y

                  yum install openldap-devel.x86_64 -y

                  error8 、 configure: error: Don’t know how to define struct flock on this system, set

                  –enable-opcache=no

                  解決方案:(注:修改后記得執(zhí)行 chmod gu+x 給 /etc/ld.so.conf.d/local.conf 文件添加可執(zhí)行權(quán)限,

                  否則無(wú)效)

                  vim /etc/ld.so.conf.d/local.conf (local.conf 可以隨便起名稱,以.conf 為后綴就可)

                  添加

                  /usr/local/lib (如果是64位系統(tǒng) 路徑請(qǐng)寫為 /usr/local/lib)

                  :wq 保存

                  ldconfig -v 生效(或者 ldconfig)

                  error9、error: Cannot find ldap libraries in /usr/lib 這個(gè)可能是由于 libldap32和 libldap64沖突:

                  解決方法:cp -frp /usr/lib64/libldap* /usr/lib/

                  有關(guān) nginx 的 if(!-e)問(wèn)題與解決方法

                  在配置 URL 重寫時(shí),啟動(dòng) NGINX 出現(xiàn)如下錯(cuò)誤提示:

                  [root@localhost nginx]# service nginx restart

                  nginx:

                  [emerg]

                  unknown

                  directive

                  "if(!-e"

                  in

                  /usr/local/nginx/conf/nginx.conf:48

                  nginx: configuration file /usr/local/nginx/conf/nginx.conf test failed 

                  


          利用RFID實(shí)現(xiàn)可視化資產(chǎn)管理系統(tǒng)的解決方案WMS倉(cāng)儲(chǔ)管理軟件與ERP倉(cāng)儲(chǔ)管理軟件有什么區(qū)別
          購(gòu)買OA軟件需要怎么選型才會(huì)理好呢?ERP企業(yè)管理軟件
          ERP軟件銷前演示技巧分析生豬屠宰行業(yè)ERP軟件解決方案
          移動(dòng)互聯(lián)應(yīng)用平臺(tái)解決方案PDA條碼倉(cāng)儲(chǔ)管理系統(tǒng)軟件解決方案
          汽車內(nèi)飾件ERP案例分享php代碼規(guī)范
          ERP軟件核心應(yīng)用重難點(diǎn)分析WMS倉(cāng)儲(chǔ)管理軟件功能需求說(shuō)明
          會(huì)員管理軟件功能介紹ERP軟件項(xiàng)目實(shí)施員教材
          中小企業(yè)ERP失敗的三大原因SQL語(yǔ)句的多表查詢方式
          信息發(fā)布:廣州名易軟件有限公司 http://m.jetlc.com
          • 勁爆價(jià):
            不限功能
            不限用戶
            1998元/年

          • 微信客服

            <output id="r87xx"></output>
          1. 
            
            <mark id="r87xx"><thead id="r87xx"><input id="r87xx"></input></thead></mark>
              • 婷婷丁香激情综合 | 亚洲搞搞 | 手机看片人妻 | 444iii日韩 | 少妇顾美玲勾引管家 | 亚洲AV无码成人精品国产一区 | 亚洲成人综合最新 | 大香伊人蕉| 欧美一级在线观看 | 国外成人 性视频免费 |