nginx + PHP (FastCGI) 高性能服务器部署
2015-09-10 18:53
627 查看
LNAMP (linux + nginx + mysql + php)
CGI 全称是“公共网关接口”(common gateway interface),是WEB 服务器与其它服务器进行“交谈”的工具,它的程序运行在网络服务器上。它可以用任何一种语言编写,只要这种语言具有标准输入,输出和环境变量。如 php, perl, tcl 等。
FastCGI:WEB 服务器与处理程序之间通信的一种协议 (app server 和 web server 之间的通信协议),是CGI 的改进方案。CGI 反复加载成为其性能低下的主要原因,若 CGI 程序保持在内存中并接受 FastCGI 进程管理高度,则可以提供良好的性能,伸缩性,Fail-Over 特性等。
FastCGI是常驻型的 CGI,它可以一直运行,将CGI 解释器进程保持在内存中,以此获得较高的性能。
FastCGI 是一个协议,php-fpm 实现了这个协议,php-fpm 的fastcgi 协议需要有进程池,php-fpm 实现的 fastcgi 进程叫 php-cgi, 所以 php-fpm 也是他自身的 fastcgi 或 php-cgi 进程管理器。
工作原理图:
Nginx + FastCGI 安装配置:
1.部署 mysql主从 服务器(详细安装见MySQL 主从复制)
2.安装 nginx 服务 (详情请参考如何搭建 Nginx 网站服务器)
3.下载编译安装 PHP
cd /data
wget http://museum.php.net/php5/php-5.3.10.tar.gz
yum -y install gd curl curl-devel lib jpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel mysql mysql-devel
tar zxf php-5.3.10 .tar.gz ; cd php-5.3.10
./configure --prefix=/usr/local/php5
--enable-fpm --enable-debug
--with-gd--with-jpeg-dir
--with-png-dir --with-freetype-dir
--enable-mbstring--with-curl
--with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd
make && make install
cp php.ini-development /usr/local/php5/lib/php.ini
cp /usr/local/php5/etc/php-fpm.conf.default /usr/local/php5/etc/php-fpm.conf /usr/local/php/sbin/php-fpm
cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
2.Nginx 文件设置:
server { include port.conf; server_name www.jfedu.netjfedu.net; location / { index index.htmlindex.php; root/usr/local/nginx/html; } location ~ \.php$ { root html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME html$fastcgi_script_name; include fastcgi_params; } }
测试 Nginx + PHP 整合结果
CGI 全称是“公共网关接口”(common gateway interface),是WEB 服务器与其它服务器进行“交谈”的工具,它的程序运行在网络服务器上。它可以用任何一种语言编写,只要这种语言具有标准输入,输出和环境变量。如 php, perl, tcl 等。
FastCGI:WEB 服务器与处理程序之间通信的一种协议 (app server 和 web server 之间的通信协议),是CGI 的改进方案。CGI 反复加载成为其性能低下的主要原因,若 CGI 程序保持在内存中并接受 FastCGI 进程管理高度,则可以提供良好的性能,伸缩性,Fail-Over 特性等。
FastCGI是常驻型的 CGI,它可以一直运行,将CGI 解释器进程保持在内存中,以此获得较高的性能。
FastCGI 是一个协议,php-fpm 实现了这个协议,php-fpm 的fastcgi 协议需要有进程池,php-fpm 实现的 fastcgi 进程叫 php-cgi, 所以 php-fpm 也是他自身的 fastcgi 或 php-cgi 进程管理器。
工作原理图:
Nginx + FastCGI 安装配置:
1.部署 mysql主从 服务器(详细安装见MySQL 主从复制)
2.安装 nginx 服务 (详情请参考如何搭建 Nginx 网站服务器)
3.下载编译安装 PHP
cd /data
wget http://museum.php.net/php5/php-5.3.10.tar.gz
yum -y install gd curl curl-devel lib jpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel mysql mysql-devel
tar zxf php-5.3.10 .tar.gz ; cd php-5.3.10
./configure --prefix=/usr/local/php5
--enable-fpm --enable-debug
--with-gd--with-jpeg-dir
--with-png-dir --with-freetype-dir
--enable-mbstring--with-curl
--with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd
make && make install
cp php.ini-development /usr/local/php5/lib/php.ini
cp /usr/local/php5/etc/php-fpm.conf.default /usr/local/php5/etc/php-fpm.conf /usr/local/php/sbin/php-fpm
cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
2.Nginx 文件设置:
server { include port.conf; server_name www.jfedu.netjfedu.net; location / { index index.htmlindex.php; root/usr/local/nginx/html; } location ~ \.php$ { root html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME html$fastcgi_script_name; include fastcgi_params; } }
测试 Nginx + PHP 整合结果
相关文章推荐
- 一个关于if else容易迷惑的问题
- PHP5.2.*防止Hash冲突拒绝服务攻击的Patch
- 深入理解PHP之匿名函数
- JSP/PHP基于Ajax的分页功能实现
- 关于PHP通过PDO用中文条件查询MySQL的问题。
- 什么是设计模式
- PHP数据库长连接mysql_pconnect的细节
- Php Installing An Expansion
- PHP+Apache在Windows 9x下的安装和配置
- IIS 6 的 PHP 最佳配置方法
- 安装Apache和PHP的一些补充
- Linux Apache+MySQL+PHP
- 建立Apache+PHP+MySQL数据库驱动的动态网站
- PHP 5.3.0 安装分析心得
- apache 环境下 php 的配置注意事项
- 实用的利用 CSS + <em>标签 来完成一个三角形的制作
- ASP.NET、ASP、PHP、JSP之间有什么区别?
- PHP VBS JS 函数 对照表
- C语言实现的统计php代码行数功能源码(支持文件夹、多目录)