【转】编译安装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

相关文章
相关标签/搜索