Linux操作系统上 PHP+Nginx环境搭建

 前言

      在windows操作系统上搭建PHP+Nginx开发环境比在Linux上面搭建要容易的多,无非就是

           ① 解压php,nginx的zip文件

           ② 修改PHP的php.ini配置文件:php主要是 php.ini 中关于 fast-cgi 部分以及扩展的修改

           ③ 在nginx上主要是对只是php解析的配置。

 这部分在网上有很多的教程我们就不再这部分赘述了。


      在Linux操作系统上面配置Nginx+PHP的环境的难点主要在于:依赖包的配置;对于安装顺序并没有特殊的限制性要求。

我们可以先安装nginx,然后安装php也可以先安装PHP然后安装Nginx。

    

安装PHP以及PHP扩展:

yum -y install gcc automake autoconf libtool make


yum -y install gcc gcc-c++ glibc


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


    具体个依赖包的作用,大家可以不懂的查询一下;


解压缩PHP的安装包 php : 

tar  xvf  php-5.6.11.tar.gz  -c  /usr/local/src


切换到解压文件所在目录:

cd   /usr/local/src/php-5.6.11


配置php:

./configure \
--prefix=/usr/local/php \
--with-config-file-path=/usr/local/php/etc \
--with-bz2 \
--with-curl \
--enable-ftp \
--enable-sockets \
--disable-ipv6 \
--with-gd \
--with-jpeg-dir=/usr/local \
--with-png-dir=/usr/local \
--with-freetype-dir=/usr/local \
--enable-gd-native-ttf \
--with-iconv-dir=/usr/local \
--enable-mbstring \
--enable-calendar \
--with-gettext \
--with-libxml-dir=/usr/local \
--with-zlib \
--with-pdo-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-mysql=mysqlnd \
--enable-dom \
--enable-xml \
--with-libdir=lib64 \
--enable-pdo \
--enable-fpm

编译&安装:

make && make install 


修改配置php-fpm配置文件:

切换到php配置文件所在目录

cd /usr/local/php/etc/  

  

# 通过预置配置文件模板,复制新建配置文件 php-fpm.conf

 cp php-fpm.conf.default php-fpm.conf



修改php-fpm.conf 配置项包括:

# 设置fastcgi进程的用户和用户组,需要跟Nginx的配置文件中保持一致

user = nginx 

group = nginx



设置用于设置php-fpm对打开文件描述符的限制 

rlimit_files = 65536


标签allowed_clients用于设置允许访问Fastcgi进程解析器的IP地址 

listen.allowed_clients = 127.0.0.1


配置Nginx来支持PHP

 vim /etc/nginx.conf

server { 
        listen 80 ; 
        server_name www.abc.com ; 
        root /var/www/html/ ; 
        location / { 
               index index.html index.php ; 
        } 


        location ~ \.php$ { 
               fastcgi_pass 127 . 0 . 0 . 1 : 9000 ; 
               fastcgi_index index.php ; 
               fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name ; 
               include fastcgi_params ; 
         } 
}


优化Nginx中FastCGI参数实例


在配置完Nginx+FastCGI之后,为了保证Nginx下PHP环境的高速稳定运行,需要添加一些FastCGI优化指令。


将代码添加到Nginx主配置文件HTTP层级

fastcgi_cache_path /usr/local/nginx/fastcgi_cache levels= 1 : 2 keys_zone=TEST: 10m inactive = 5m ; 
        fastcgi_connect_timeout 300 ; 
        fastcgi_send_timeout 300 ; 
        fastcgi_read_timeout 300 ; 
        fastcgi_buffer_size 64k ; 
        fastcgi_buffers 4 64k ; 
        fastcgi_busy_buffers_size 128k ; 
        fastcgi_temp_file_write_size 128k ; 
        fastcgi_cache TEST ; 
        fastcgi_cache_valid 200 302 1h ; 
        fastcgi_cache_valid 301 1d ; 
        fastcgi_cache_valid any 1m ;

第一行代码是为FastCGI缓存指定一个文件路径、目录结构等级、关键字区域存储时间和非活动删除时间。


  fastcgi_connect_timeout     指定连接到后端FastCGI的超时时间。
  fastcgi_send-timeout           指定向FastCGI传送请求的超时时间,这个值是已经完成两次握手后向FastCGI应答的超时时间。
  fastcgi_read_timeout           指定接收FastCGI应答的超时时间,这个值是已经完成两次握手后接收FastCGI应答的超时时间。
  fastcgi_buffer_size              用于指定读取FastCGI应答第一部分需要多大的缓冲区。
  fastcgi_buffers                      指定本地需要用多少和多大的缓冲区来缓冲FastCGI的应答请求。
  fastcgi_busy_buffers_size        的默认值是fastcgi_buffers的两倍。
  fastcgi_temp_file_write_size    表示在写入缓存文件时使用多大的数据块,默认值是fastcgi_buffers的两倍。
  fastcgi_cache                             表示开启FastCGI缓冲并为其指定一个名称。
  fasrcgi_cache_valid                  用来指定应答代码的缓冲时间。 

你可能感兴趣的:(安装,PHP+Nginx+Linux)