问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何设置nginx的php fastcgi进程数

发布网友 发布时间:2022-04-06 05:30

我来回答

2个回答

热心网友 时间:2022-04-06 06:59

  NMP环境现在还是比较多人用的,下面介绍一个修改php-cgi进程数的方法:   一、修改php-cgi: vi /usr/local/nginx/conf/nginx.conf   二、其中worker_processes 1;可以修改成2或3个,nginx本身就很强大,不需要像apache那样,开启过多的进程来保证其稳定运行。 vi /usr/local/php/etc/php-fpm.conf   三、找到,按你的内存容量修改PHP进程的数量,一般128内存开启6个,256内存开启16个。这样能保证,在PHP大并发的情况下不会502错误,注:PHP5.3系列不需要修改。   四、优化后,重启lnmp   /root/lnmp restart

热心网友 时间:2022-04-06 08:17

源码包可以在官方主页上下载。Ubuntu 7.10可以直接通过apt安装,也可以从这里下载最新的deb包:

sudo apt-get install nginx

如果要自己编译的话,需要确保自己已经有编译器和PCRE的库(用于Nginx的rewrite模块,如果不需要这个模块可以在configure时使用./configure –without-rewrite),编译方法如下:

wget http:// sysoev.ru/nginx/nginx-0.5.34.tar.gz
tar zxvf nginx-0.5.34.tar.gz
cd nginx-0.5.34
./configure #默认配置安装路径为/usr/local/nginx 可以追加--prefix=/usr设置到/usr
make && make install # install要求有root权限

Ubuntu安装之后的文件结构大致为:
所有的配置文件都在/etc/nginx下,并且每个虚拟主机已经安排在了/etc/nginx/sites-available下
程序文件在/usr/sbin/nginx
日志放在了/var/log/nginx中
并已经在/etc/init.d/下创建了启动脚本nginx
默认的虚拟主机的目录设置在了/var/www/nginx-default
而自己利用默认配置编译的,则放在/usr/local/nginx下,以下是目录结构:

/usr/local/nginx/conf 配置目录
/usr/local/nginx/html 默认的网站根目录
/usr/local/nginx/logs 日志和pid文件目录
/usr/local/nginx/sbin 执行文件目录

下面可以启动nginx来看看效果(请确保80端口没有其他服务在使用):
Ubuntu请运行:

sudo /etc/init.d/nginx start

其他请运行:

/usr/local/nginx/sbin/nginx

然后就可以通过http:// localhost/来看看效果了。
要配置nginx的自动运行,可以将/usr/local/nginx/sbin/nginx添加到/etc/rc.local中,Ubuntu可以执行

update-rc.d nginx defaults

安装PHP5
至于如何在Linux上安装PHP,有很多文章,甚至很多平台上都有现成的软件包,无需自己编译。
PHP5的CGI方式的一大优势是内置了FastCGI的支持,只需指明绑定的地址和端口参数便可以以FastCGI的方式运行,如下:
php-cgi -b 127.0.0.1:9000
如何配置其与nginx一起运行呢?
配置Nginx的PHP FastCGI
请将以下内容保存为fastcgi_params文件,保存于/usr/local/nginx/conf下(Ubuntu可保存于/etc/nginx下),他为我们的FastCGI模块设置了基本的环境变量:

#fastcgi_params
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx;
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_FILENAME $document_root$fastcgi_script_name;
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 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;

请特别注意”fastcgi_script_name”一行,PHP-CGI特别需要此行信息来确定PHP文件的位置。
另外需要在PHP-CGI的配置文件(Ubuntu 上此配置文件位于/etc/php5/cgi/php.ini)中,打开cgi.fix_pathinfo选项:

cgi.fix_pathinfo=1;

这样php-cgi方能正常使用SCRIPT_FILENAME这个变量。
接下来在nginx的配置中针对php文件配置其利用FastCGI进程来执行:

server {
index index.php;
root /usr/local/nginx/html;

location ~ .*.php$ {
include /usr/local/nginx/conf/fastcgi_params; #请根据自己保存的路径进行设置
fastcgi_index index.php;
fastcgi_pass 127.0.0.1:9000; #请根据自己的FastCGI绑定的地址和端口进行配置
}
}

通知Nginx重新载入配置:

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

Ubuntu用户可以使用init脚本:sudo /etc/init.d/nginx reload
然后启动php-cgi -b 127.0.0.1:9000
假设你在文档根目录放了index.php,并包含”phpinfo();”的内容,现在再看http:// localhost/index.php便应该能看到php的调试信息了。
配置php进程
直接使用php-cgi的FastCGI运行方式有两个问题(貌似应该有解决方案,如果知道的话可以教教我):

1.如果进程崩溃,难以配置重新启动
2.单进程的效率低
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
大庆读专业的地方有哪些,就是像哈尔滨哪里,全都是学技术,比如拉丁,爵士... 如何修改朋友圈标签内容 ...是否允许照相机访问,不小心点了【记住我的选择】+【拒绝】该怎么解除... 豆芽炒肉(豆芽炒肉的家常做法) 工程勘察设计资质代办步骤有哪些 工程设计专项资质变更代办流程和资料 工程设计资质代办步骤有哪些 设计院资质代办步骤有哪些 Excel也能增加“后悔”次数 excel如何修改增加撤销次数 如何优化高流量站点的nginx和php-fpm的几个方面 怎么修改服务器nginx的fpm Python基础知识:什么是非局部语句 python使用include语句可以导入多个模块不同模块可以使用什么符号隔开? Python中if语句要执行多行代码用什么表示同一范围的代码块? python可以一行进行多个类型转换吗?? python问题,数据类型转换! python 强制类型转换 python基础问题,数据转换? python类型转换的问题? python可以实现批量的格式转换吗? python数据类型怎么转换 在做测试自动化时,python数据类型转换函数有几种? python中的类型转换都有什么,用在什么场景下? 什么是python操作系统 Python大数据, 一些简单的操作 Python怎么学了解方向 想了解一下大家都是怎么学Python的? pycharm改不了print的颜色 win7 pycharm怎么设置界面全黑色 搭建nginx 和php-fpm 容器的运行环境求助 怎样优化FastCGI与Nginx的搭配 php-fpm conf怎么配置 php-fpm子进程会自动重启吗 run/php-fpm.pid 在哪个目录下 如何正确合理设置niginx.conf和php-fpm.conf配置 网站php访问502 bad gateway请问php-fpm.conf如何配置 php-fpm.conf 找个配置文件放在哪里 如何设置php-fpm的参数选项clear php配置文件是什么? php-fpm 什么时候开始创建新的子进程 如何看php-fpm 进程数量是否足够 如何查看php-fpm进程数不够用 如何通过监控 php-fpm status排查问题 我用Nginx+PHP-FPM搭建的网站,每隔5分钟PHP-FPM进程数量突然骤降,怎么回事呢? 关于thinkphp框架头部公共文件的调用问题 thinkphp框架有用么 thinkphp框架好不好? thinkphp框架和目录 thinkphp框架和dedecms 区别