科帮网-Java论坛、Java社区、JavaWeb毕业设计

登录/注册
您现在的位置:论坛 盖世程序员(我猜到了开头 却没有猜到结局) 运维优化 > 阿里云Linux下Nginx服务器整合php
总共48085条微博

动态微博

查看: 1688|回复: 0

阿里云Linux下Nginx服务器整合php

[复制链接]
admin    

1244

主题

544

听众

1万

金钱

管理员

  • TA的每日心情

    2021-2-2 11:21
  • 签到天数: 36 天

    [LV.5]常住居民I

    管理员

    跳转到指定楼层
    楼主
    发表于 2015-09-08 20:08:53 |只看该作者 |倒序浏览
            nginx本身不能处理PHP,它只是个web服务器,当接收到请求后,如果是php请求,则发给php解释器处理,并把结果返回给客户端。
           nginx一般是把请求发fastcgi管理进程处理,fascgi管理进程选择cgi子进程处理结果并返回被nginx

    本文以php-fpm为例介绍如何使nginx支持PHP

           PHP-FPM是一个PHP FastCGI管理器,是只用于PHP的,可以在 http://php-fpm.org/download下载得到.

    PHP-FPM其实是PHP源代码的一个补丁,旨在将FastCGI进程管理整合进PHP包中。必须将它patch到你的PHP源代码中,在编译安装PHP后才可以使用。

           新版PHP已经集成php-fpm了,不再是第三方的包了,推荐使用。PHP-FPM提供了更好的PHP进程管理方式,可以有效控制内存和进程、可以平滑重载PHP配置,比spawn-fcgi具有更多优点,所以被PHP官方收录了。在./configure的时候带 –enable-fpm参数即可开启PHP-FPM,其它参数都是配置php的,具体选项含义可以查看这里


    一、安装前准备
    centos下执行
    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
    下载地址:http://php.net/downloads.php 可以选择适合你的版本、这里选择5.6.13。

    1、wget http://cn2.php.net/distributions/php-5.6.13.tar.gz


    2、tar zvxf php-5.6.13.tar.gz


    3、cd php-5.6.13


    4、./configure --prefix=/usr/local/php  --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 --disable-fileinfo  

    5、make


    6、make  install

    三、启动php服务五、启动服务
    启动php-fpm
    /usr/local/php/sbin/php-fpm start
    检测是否启动 ps -ef|grep php,如果出现以下说明启动成功。

    四、nginx整合php- fpm
    新建 phpfpm.conf文件 加入:

    1.     fastcgi_connect_timeout 300; #指定连接到后端FastCGI的超时时间
    2. fastcgi_send_timeout 300; #向FastCGI传送请求的超时时间,这个值是指已经完成两次握手后向FastCGI传送请求的超时时间。
    3. fastcgi_read_timeout 300; #接收FastCGI应答的超时时间,这个值是指已经完成两次握手后接收#FastCGI应答的超时时间。
    4. fastcgi_buffer_size 64k;#这里可以设置为fastcgi_buffers指令指定的缓冲区大小
    5. fastcgi_buffers 16 16k; #指定本地需要用多少和多大的缓冲区来缓冲FastCGI的应答
    6. fastcgi_busy_buffers_size 128k;#建议为fastcgi_buffers的两倍
    7. fastcgi_temp_file_write_size 128k; #在写入fastcgi_temp_path时将用多大的数据块,默认值是fastcgi_buffers的两倍,设置上述数值设置太小时若负载上来时可能报 502 Bad Gateway
    8. fastcgi_cache dingtm; #开启FastCGI缓存并且为其制定一个名称,有效降低CPU负载,并且防止#502错误
    9. fastcgi_cache_valid 200 302 1h; #指定应答代码缓存时间为1小时
    10. fastcgi_cache_valid 301 1d; #1天
    11. fastcgi_cache_valid any 1m; #其它为1分钟
    12. fastcgi_cache_min_uses 1; #缓存在fastcgi_cache_path指令inactive参数值时间内的最少使用次数
    复制代码
    phpfpm.conf导入nginx.conf的http模块中。
    1. include  phpfpm.conf
    复制代码
    最后导入 server
    1. server {

    2.         listen       80;
    3.         server_name  weixin.52itstyle.com;
    4.         charset utf8;
    5.         location ~ \.php$ {
    6.            root html;
    7.            fastcgi_pass 127.0.0.1:9000;
    8.            fastcgi_index index.php;
    9.            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    10.            include fastcgi_params;
    11.         }
    12.         #error_page  404              /404.html;

    13.         # redirect server error pages to the static page /50x.html
    14.         #
    15.         error_page   500 502 503 504  /50x.html;
    16.         location = /50x.html {
    17.             root   html;
    18.         }

    19.     }
    复制代码
    新建 index.php文件 放到nginx的html目录下:
    1. <?php
    2.   date_default_timezone_set(  'Asia/Shanghai'  );
    3.     echo phpinfo();?>
    复制代码

    重启Nginx   ./nginx -s reload
    演示地址:http://weixin.52itstyle.com/index.php




    如果出现以上画面 说明配置成功。


    科帮网-Java论坛、Java社区、JavaWeb毕业设计 1、本主题所有言论和图片纯属会员个人意见,与本社区立场无关
    2、本站所有主题由该帖子作者发表,该帖子作者与科帮网-Java论坛、Java社区、JavaWeb毕业设计享有帖子相关版权
    3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和科帮网-Java论坛、Java社区、JavaWeb毕业设计的同意
    4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
    5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
    6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
    7、科帮网-Java论坛、Java社区、JavaWeb毕业设计管理员和版主有权不事先通知发贴者而删除本文


    JAVA爱好者①群:JAVA爱好者① JAVA爱好者②群:JAVA爱好者② JAVA爱好者③ : JAVA爱好者③

    快速回复
    您需要登录后才可以回帖 登录 | 立即注册

       

    发布主题 快速回复 返回列表 联系我们 官方QQ群 科帮网手机客户端
    快速回复 返回顶部 返回列表