【轉】編譯安裝PHP並配置PHP-FPM

1.前言
上一篇講述瞭如何編譯安裝MySQL,雖然能夠經過yum install 或者rpm來安裝,可是yum install和rpm安裝有一個特色,就是有些參數是別人根據大衆需求定製的,若是須要進行本身的特定參數指定,這個是比較難作到的,所以有必定Linux基礎的人都是編譯安裝或者根據公司的具體環境製做適合環境的安裝包。上一篇的例子中講述瞭如何編譯安裝和如何配置多實例,並在最後講述瞭如何配置主從複製配置。
之前開源開發常常將LAMP,就是Linux+Apache+MySQL+PHP,對於一些起步型的公司來講LAMP能夠知足他們的全部幻想:既能夠響應必定規模的用戶,對硬件的要求也很小。如今隨着Nginx的興起,LAMP變成了LNMP,即Linux+Nginx+MySQL+PHP,所以本篇將講述如何編譯安裝PHP而且使用php-fpm來讓Nginx支持PHP。
2.準備
2.1下載PHP5.6.30源碼
考慮到不少開源PHP還在用PHP5版本,所以這裏以PHP5.6.3版本的編譯安裝爲例:
下載:php

wget http://cn2.php.net/distributions/php-5.6.30.tar.gz


2.2WordPress中文版
WordPress是一個很是著名的我的博客系統,這裏用它來驗證咱們的php-fpm配置正確與否。
下載:html

wget https://cn.wordpress.org/wordpress-4.7.4-zh_CN.zip


2.3安裝依賴庫mysql

  1.  
    yum install gcc automake autoconf libtool make –y
  2.  
    yum install gcc gcc-c++ glibc –y
  3.  
    yum install libmcrypt-devel mhash-devel libxslt-devel –y
  4.  
    yum install libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel –y
  5.  
    yum install zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel –y
  6.  
    yum install ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel -y
  7.  
    yum install krb5 krb5-devel libidn libidn-devel openssl openssl-devel -y


注:上面有些依賴庫在上一篇中已經安裝了,爲省事我在這裏又一股腦列上了,在實際安裝過程當中若是本地已經安裝了就不會再次安裝和下載了。
3.編譯和設置
3.1編譯文件
假定下載的php-5.6.30.tar.gz位於/root目錄下,首先解壓文件:nginx

tar zxvf /root/php-5.6.30.tar.gz


而後執行configure:c++

  1.  
    cd /root/php-5.6.30
  2.  
    ./configure --prefix=/usr/local/php-5.6.30 --enable-fpm --with-mcrypt --enable-mbstring --disable-pdo --with-curl --disable-debug --disable-rpath --enable-inline-optimization --with-bz2 --with-zlib --enable-sockets --enable-sysvsem --enable-sysvshm --enable-pcntl --enable-mbregex --with-mhash --enable-zip --with-pcre-regex --with-mysql --with-mysqli --with-gd --with-jpeg-dir -with-gettext --enable-xml --enable-freetype


若是依賴庫都安裝了就不會報錯,若是提示缺乏依賴庫就用yum install 來安裝。在上面的參數中:
--prefix=/usr/local/php-5.6.30:表示未來程序安裝在/usr/local/php目錄;
--enable-fpm:表示啓用php-fpm模塊,不啓用這個nginx就沒辦法將php頁面請求轉發個nginx處理了。
接着執行:
make
make install
由於源代碼有點多,編譯須要一點時間,請耐性等待。成功以後在/usr/local下會新建php文件夾,其文件目錄結構以下:sql

  1.  
    [root@localhost ~]# ls -l /usr/local/php-5.6.30
  2.  
    total 0
  3.  
    drwxr-xr-x 2 root root 147 Jun 7 23:38 bin
  4.  
    drwxr-xr-x 2 root root 71 Jun 12 22:13 etc
  5.  
    drwxr-xr-x 3 root root 17 Jun 7 23:12 include
  6.  
    drwxr-xr-x 3 root root 85 Jun 12 22:12 lib
  7.  
    drwxr-xr-x 4 root root 28 Jun 7 23:12 php
  8.  
    drwxr-xr-x 2 root root 21 Jun 7 23:12 sbin
  9.  
    drwxr-xr-x 4 root root 28 Jun 7 23:12 var


3.2配置
3.2.1php.ini配置
首先將剛纔解壓的文件夾中將php.ini-development拷貝到/usr/local/php/lib目錄並命名爲php.ini:服務器

cp  /root/php-5.6.30/php.ini-development /usr/local/php-5.6.30/lib/php.ini


注意:在開發服務器將php.ini-development改成php.ini,若是是生產服務器建議將php.ini-production改成php.ini, php.ini-production與php.ini-development相比是關閉了一些調試輸出,這在生產環境中能夠減小日誌文件的體積和提升性能,在開發環境中建議仍是打開以便於調試。在接下來的講解中是基於開發環境配置的。
對php.ini作以下更改:
error_reporting = E_ALL & ~E_NOTICE ;輸出調試信息和通知
error_log = /usr/local/php-5.6.30/var/log/error-log.log ;錯誤日誌存放位置
date.timezone = "Asia/Shanghai"; 這句本來是」 ;date.timezone =」,須要去掉其註釋並設置爲中國時區
3.2.2php-fpm.conf配置
首先將/usr/local/php-5.6.30/etc/php-fpm.conf.default拷貝一份並命名爲php-fpm.conf:curl

  1.  
    cd /usr/local/php-5.6.30
  2.  
    cp etc/php-fpm.conf.default etc/php-fpm.conf


接着對php-fpm.conf作以下更改:
;pid = run/php-fpm.pid這一句取消註釋,並改成:pid = /usr/local/php-5.6.30/var/run/php-fpm.pid;
;error_log = log/php-fpm.log這一句取消註釋,並改成:error_log = /usr/local/php-5.6.30/var/log/error-log.log
user = nobody改成:user = nginx
group = nobody改成:group = nginx
;catch_workers_output = yes這一句取消註釋,改成:catch_workers_output = yes
php-fpm可執行文件在/usr/local/php-5.6.30/sbin目錄下,能夠經過/usr/local/php-5.6.30/sbin來執行監聽,默認是監聽9000端口。
4.安裝WordPresssocket

相關文章
相關標籤/搜索