Centos下Nginx + php-fpm安装配置

Nginx安装

Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like协议下发行。

  1. 编译环境安装
    我们默认你是安装好了的,如果没有安装的话,请用下面命令安装
    make安装:

    1
    yum -y install gcc automake autoconf libtool make

    g++安装:

    1
    yum install gcc gcc-c++
  2. 依赖包安装
    我们选择/usr/local/src作为源码目录。Nginx需要依赖下面3个包:

    • rewrite模块需要 pcre 库

      1
      2
      3
      4
      5
      6
      7
      cd /usr/local/src
      wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.37.tar.gz
      tar -zxvf pcre-8.37.tar.gz
      cd pcre-8.37
      ./configure
      make
      make install
    • gzip模块需要 zlib 库

      1
      2
      3
      4
      5
      6
      7
      cd /usr/local/src
      wget http://zlib.net/zlib-1.2.8.tar.gz
      tar -zxvf zlib-1.2.8.tar.gz
      cd zlib-1.2.8
      ./configure
      make
      make install
    • ssl 功能需要openssl库

      1
      2
      3
      4
      5
      6
      7
      cd /usr/local/src
      wget http://www.openssl.org/source/openssl-1.0.1q.tar.gz
      tar -zxvf openssl-1.0.1q.tar.gz
      cd openssl-1.0.1q
      ./config
      make
      make install
  1. Nginx安装

    1
    2
    3
    4
    5
    6
    7
    cd /usr/local/src
    wget http://nginx.org/download/nginx-1.8.0.tar.gz
    tar -zxvf nginx-1.8.0.tar.gz
    cd nginx-1.8.0
    ./configure --sbin-path=/usr/local/nginx/nginx --conf-path=/usr/local/nginx/nginx.conf --pid-path=/usr/local/nginx/nginx.pid --with-http_ssl_module --with-pcre=/usr/local/src/pcre-8.37 --with-zlib=/usr/local/src/zlib-1.2.8 --with-openssl=/usr/local/src/openssl-1.0.1q

    make
    make install

    Note: 开始我用pcre2,会有以下错误:pcre.h:没有那个文件或目录,后来切换到pcre,安装成功。

  2. Nginx启动检查
    a. 确保系统的 80 端口没被其他程序占用。

    1
    netstat -ano|grep 80

    Notes:我的CentoOS上已经安装了Apache,端口被占用,先关闭service httpd stop
    b. 启动

    1
    /usr/local/nginx/nginx

    c. 验证
    打开浏览器,打开此电脑IP地址:

php-fpm安装

nginx只是个web服务器,本身不能处理PHP,当接收到请求后,如果是php请求,则发给php解释器处理,并把结果返回给客户端。
nginx一般是把请求发fastcgi管理进程处理,fascgi管理进程选择cgi子进程处理结果并返回被nginx。 PHP-FPM是一个PHP FastCGI管理器
目前的PHP已经集成php-fpm了,我们只要安装一下PHP就可以了。

  1. 依赖包安装

    1
    yum -y install libmcrypt-devel mhash-devel libxslt-devel libjpeg libjpeg-devel 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
  2. PHP安装

    1
    2
    3
    4
    5
    6
    7
    cd /usr/local/src
    wget http://cn2.php.net/distributions/php-5.5.30.tar.gz
    tar -zxvf php-5.5.30.tar.gz
    cd php-5.5.30
    ./configure --prefix=/usr/local/php --enable-fpm --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
    make
    make install
  3. php-fpm设置运行用户

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

Nginx配置支持php-fpm

1
2
3
cd /usr/local/nginx
cp php-fpm.conf.default php-fpm.conf
vi nginx.conf

修改文件以下部分:

1
2
3
4
5
6
7
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /$document_root$fastcgi_script_name;
include fastcgi_params;
}

测试

  1. 创建php文件
    在/usr/local/nginx/html下创建index.php文件,输入如下内容

    1
    2
    3
    <?php
    echo phpinfo();
    ?>

  2. 启动服务(如果Nginx和php-fpm没有启动)

    1
    /usr/local/nginx/nginx
    1
    /usr/local/php/sbin/php-fpm
  3. 浏览器查看
    打开浏览器,访问http://此电脑IP/index.php:

唐胡璐 wechat
欢迎您扫一扫上面的微信公众号,订阅我的博客!
分享创造价值,您的支持将鼓励我继续前行!