`

在linux下编译安装nginx+php(fastcgi)

    博客分类:
  • php
阅读更多

nginx使用fastcgi方式连接php,在linux下面编译安装时要编译php支持fastcgi方式,其他的一些东西,照着原来的方式装就可以了。

 

分为以下步骤:

0、准备

1、安装php的fastcgi版

2、使用spawn-fcgi启动php的fastcgi引擎

3、配置nginx连接php的fastcgi引擎

 

0、准备

基本环境要求(如无特殊要求可以使用系统自带)

zlib-1.2.1.tar.gz

freetype-2.1.5.tar.gz

libpng-1.2.5.tar.gz 

gd-2.0.28.tar.gz 

jpegsrc.v7.tar.tar

pcre-x.x.tar.gz 正则表达式下载地址:ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/

nginx-x.x.xx.tar下载地址:http://www.nginx.net/

php-x.x.x.tar.bz2下载地址:http://www.php.net/releases/ #php-x.x.x-fpm-x.x.x.diff.gz

#php-fpm是为PHP打的一个FastCGI管理补丁,可以平滑变更php.ini配置而无需重启php-cgi下载地址:http://php-fpm.anight.org/

注:PHP的版本要和fpm的版本一致

 

1、安装php的fastcgi版

A1、安装zlib

 

tar xzvf zlib-x.x.x.tar.gz 
cd zlib-x.x.x
./configure
make make install
 

 

A2、安装freetype

tar xzvf freetype-x.x.x.tar.gz
cd freetype-x.x.x
./configure --prefix=/usr/local/modules/freetype
make
make install
 

 

 

A3、安装libpng

tar xzvf libpng-x.x.x.tar.gz
cd libpng-x.x.x
cp scripts/makefile.std makefile
make test
make install
 

 

A3、安装jpeg

tar xzvf jpegsrc.v6b.tar.gz
cd jpeg-6b
./configure --prefix=/usr/local/modules/jpeg6 --enable-shared --enable-static
make && make install 

 

 A4、安装GD

tar xzvf gd-x.x.xx.tar.gz
cd gd-x.x.xx
./configure --prefix=/usr/local/modules/gd --with-jpeg=/usr/local/modules/jpeg6 --with-png --with-zlib --with-freetype=/usr/local/modules/freetype
make && make install
 

 

A5、安装pcre

tar -zxvf pcre-x.x.tar.gz
cd pcre-x.x
./configure
make && make install
 

 

A6、安装Linux Nginx

 

tar -zxvf nginx-x.x.xx.tar.gz 
cd nginx-x.x.xx
./configure --prefix=/usr/local/nginx
make && make install
   

 

A7、安装PHP

这里产生的是可执行文件,和apache的不一样,和apache结合的时候产生的是动态库

tar -jxvf php-x.x.x.tar.bz2
cd php-x.x.x
./configure --prefix=/usr/local/php --with-gd --with-jpeg-dir=/usr/local/jpeg6 --with-zlib --with-png --with-freetype --enable-magic-quotes --enable-fastcgi --with-mysql=/local/server/mysql/ --enable-track-vars --enable-ftp --with-config-file-path=/usr/local/php/etc --with-zip --enable-force-cgi-redirect
make && make install
cp php.ini-recommended /usr/local/php/etc/php.ini

  注意加上--enable-fastcgi参数和--enable-force-cgi-redirect参数

 

启动nginx 

 /usr/local/nginx/sbin/nginx

 停止nginx 

kill -QUIT `cat /usr/local/nginx/logs/nginx.pid`

 重启nginx

kill -HUP `cat /usr/local/nginx/logs/nginx.pid`

 添加到自启动

 echo "/usr/local/nginx/sbin/nginx">>/etc/rc.local
  

 

 

2、使用spawn-fcgi启动php的fastcgi引擎

编译完成后在/usr/local/php/bin/下面就会有php-cgi这个可执行程序,使用spawn-fcgi启动php的fastcgi引擎: 

 

/data/nginx/sbin/spawn-fcgi -a 127.0.0.1 -p 9000 -U nobody -f /usr/bin/php-cgi -C 20
 

意思是fastcgi使用本机ip和端口9000提供服务,权限nobody,启动20个进程。其中主要留意-C这个参数,一般20个进程足够用了,觉得不够亦可开大,在我的机器上每个php-cgi进程会占用7-8兆内存,开100个就是700-800兆。

spawn-fcgi这个程序在nginx里没有提供,可以在 http://www.sudone.com/download/spawn-fcgi

 

下载到,一般放在nginx的sbin目录下,然后要给它加上可执行权限:

 

chmod +x /data/nginx/sbin/spawn-fcgi
 

 

 

3、配置nginx连接php的fastcgi引擎

 

首先弄一份fastcgi-params配置,在nginx的conf目录下建一份文本文件,内容是: 

 

#fastcgi-params 
fastcgi_param QUERY_STRING $query_string; 
fastcgi_param REQUEST_METHOD $request_method; 
fastcgi_param CONTENT_TYPE $content_type; 
fastcgi_param CONTENT_LENGTH $content_length; 
fastcgi_param SCRIPT_NAME $fastcgi_script_name; 
fastcgi_param REQUEST_URI $request_uri; 
fastcgi_param DOCUMENT_URI $document_uri; 
fastcgi_param DOCUMENT_ROOT $document_root; 
fastcgi_param SERVER_PROTOCOL $server_protocol; 
fastcgi_param GATEWAY_INTERFACE CGI/1.1; 
fastcgi_param SERVER_SOFTWARE nginx; 
fastcgi_param REMOTE_ADDR $remote_addr; 
fastcgi_param REMOTE_PORT $remote_port; 
fastcgi_param SERVER_ADDR $server_addr; 
fastcgi_param SERVER_PORT $server_port; 
fastcgi_param SERVER_NAME $server_name; 
# PHP only, required if PHP was built with --enable-force-cgi-redirect 
fastcgi_param REDIRECT_STATUS 200; 
#end
 

 

 

 

这个是最原始的fastcgi-params,在网上也可能有更优化的版本,可以相应取用。

然后配置nginx.conf,比如www.sudone.com,这样配置就可以用了:

 

 

server { 
	include port.conf; 
	server_name www.sudone.com sudone.com;
	location / { 
		index index.html index.php; 
		root /data/sudone/php/; 
	} 
	location ~ .php$ { 
		fastcgi_pass 127.0.0.1:9000; 
		fastcgi_index index.php; 
		fastcgi_param SCRIPT_FILENAME /data/sudone/php$fastcgi_script_name; 
		include fastcgi_params; 
	} 
}
 

拿下来之后,有几个需要改的地方:

1、server_name

2、location /里面的root

3、location ~ .php$里面的fastcgi_param SCRIPT_FILENAME

 

其中fastcgi_param SCRIPT_FILENAME的参数中,$fastcgi_script_name前面是php文件的路径一般和root一样的,最后不用写/,貌似会有点问题,不要画蛇添足。

 

注意事项: 可能会有的管理员启动nginx后总是忘记启动spawn-fcgi,所以最好是写一份脚本来启动,然后要养成测试服务可用性的习惯。

分享到:
评论

相关推荐

    python入门-30.寻找列表中只出现一次的数字-寻找单身狗.py

    python入门-30.寻找列表中只出现一次的数字——寻找单身狗.py

    布尔教育linux优化笔记

    linux优化笔记,配套视频:https://www.bilibili.com/list/474327672?sid=4496133&spm_id_from=333.999.0.0&desc=1

    知识付费系统-直播+讲师入驻+课程售卖+商城系统-v2.1.9版本搭建以及资源分享下载

    知识付费系统-直播+讲师入驻+课程售卖+商城系统-v2.1.9版本搭建以及资源分享下载,CRMEB知识付费分销与直播营销系统是由西安众邦科技自主开发的一款在线教育平台,该系统不仅拥有独立的知识产权,还采用了先进的ThinkPhp5.0框架和Vue前端技术栈,集成了在线直播教学及课程分销等多种功能,旨在为用户提供全方位的学习体验,默认解压密码youyacaocom

    美妆神域-JAVA-基于springBoot美妆神域设计与实现

    美妆神域-JAVA-基于springBoot美妆神域设计与实现

    原生js制作Google粘土logo动画涂鸦代码.zip

    原生js制作Google粘土logo动画涂鸦代码.zip

    golin 扫描工具使用, 检查系统漏洞、web程序漏洞

    golin 扫描工具使用, 检查系统漏洞、web程序漏洞

    原生态纯js图片网格鼠标悬停放大显示特效代码下载.zip

    原生态纯js图片网格鼠标悬停放大显示特效代码下载.zip

    用AWLUM进行灰色编码2^2n-QAM调制的精确率Matlab代码.rar

    1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。 替换数据可以直接使用,注释清楚,适合新手

    去水印web端独立版web

    去水印web端独立版web

    原生js制作左侧浮动可折叠在线客服代码.zip

    原生js制作左侧浮动可折叠在线客服代码.zip

    Chrome 谷歌浏览器下载

    Chrome 谷歌浏览器下载

    亲测全新完整版H5商城系统源码 附教程

    全新完整版H5商城系统源码 自己花钱买的,亲测可用,需要自行下载 H5商城系统设置是实现商城基本功能的核心部分,涵盖了从网站配置、短信和支付配置,到商品、工单、订单、分站和提现管理等多个模块的设置。以下是详细的设置指南,帮助您快速上手并高效管理商城系统。 测试环境:Nginx+PHP7.0+MySQL5.6 1. 网站配置 设置商城名称、LOGO、标题、联系方式和SEO关键词等,确保商城专业和易于搜索。 2. 短信配置 配置短信接口和模板,用于发送订单通知、验证码等,提升用户体验。 3. 支付接口配置 配置微信、支付宝等支付接口,填写API密钥和回调地址,确保支付流畅。 4. 商品分类管理 对商品进行分类和排序,设置分类名称和图标,便于用户查找商品。 5. 商品管理 添加和管理商品信息、规格、图片等,确保商品信息准确丰富。 6. 工单管理 查看和回复用户工单,记录售后问题,提升用户服务质量。 7. 订单管理 查看订单详情,更新订单状态,支持批量导出,方便订单跟踪。 8. 分站管理 创建不同区域分站,设置权限,统一管理各区域市场。 9. 提现管理

    短信3.141592672893982398674234

    apk安装包

    原生js选项卡插件自定义图片滑动选项卡切换.zip

    原生js选项卡插件自定义图片滑动选项卡切换.zip

    1-宗教信息佛教佛寺寺庙庵堂相关数据-社科数据.zip

    宗教信息佛教佛寺寺庙庵堂相关数据集提供了全国各个地区省市县各个佛教寺庙的详细信息。这些数据不仅包括寺庙的名称和负责人姓名,还涵盖了所属省份、地级市、区县、具体地址、建立日期以及支派类别等关键信息。该数据集整理了超过3万条样本,为研究中国佛教寺庙的分布、历史和文化提供了丰富的第一手资料。这些信息有助于了解佛教在中国的传播和发展,以及寺庙在社会和文化中的作用。数据的整理和提供,对于宗教学、社会学、历史学和文化研究等领域的学者来说,是一个宝贵的资源。

    线性电阻网络的等效电阻计算Matlab代码.rar

    1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。 替换数据可以直接使用,注释清楚,适合新手

    简单的 Python 版本管理.zip

    简单的 Python 版本管理pyenvpyenv 可让您轻松在多个 Python 版本之间切换。它简单、不引人注目,并遵循 UNIX 传统,即使用单一用途的工具来做好一件事。该项目由rbenv和 ruby​​-build分叉而来,并针对 Python 进行了修改。pyenv 的作用是什么......允许您根据每个用户更改全局 Python 版本。为每个项目的 Python 版本提供支持。允许您使用环境变量覆盖 Python 版本。一次搜索多个 Python 版本的命令。这可能有助于使用tox跨 Python 版本进行测试。与 pythonbrew 和 pythonz 相比,pyenv没有……依赖于Python本身。pyenv由纯shell脚本制作。不存在Python的引导问题。需要加载到你的 shell 中。相反,pyenv 的 shim 方法通过向你的 中添加目录来工作PATH。管理虚拟环境。当然,你可以自己创建虚拟环境 ,或者使用pyenv-virtualenv 来自动化该过程。目录安装获取 PyenvLinux/UNIX自动安装程序基本

    Notepad-v2.20工具,是替代Notepad++的首选工具

    Notepad-v2.20工具,是替代Notepad++的首选工具

    原生js随机图片拖拽排序代码.zip

    原生js随机图片拖拽排序代码.zip

    更快、更好、更稳定的Redis桌面(GUI)管理客户端,兼容Windows、Mac、Linux,性能出众,轻松加载海量键值

    更快、更好、更稳定的Redis桌面(GUI)管理客户端,兼容Windows、Mac、Linux,性能出众,轻松加载海量键值

Global site tag (gtag.js) - Google Analytics