不配置php-fpm,也不配置spawn-fcgi,能让nginx支持php吗,要怎样设置?
还有就是php-cgi支持在命令行执行的时候后会报错:
# php-cgi -b 127.0.0.1:9000
I/O warning : failed to load external entity "/etc/php-fpm.conf"
但在网上搜索很多资料都是说可以直接在命令行使用这条语句。
23 个解决方案
#1
php-fpm 是一个集成了 php-cgi的功能包, 其实装这个就相当于你装了php-cgi
装了php-fpm并配置就可以运行php
你平时用的apache也要php-cgi, 不过都是集成在模块中
装了php-fpm并配置就可以运行php
你平时用的apache也要php-cgi, 不过都是集成在模块中
#2
你的是什么系统 。 RedHat?
http://blog.s135.com/nginx_php_v6/
http://blog.s135.com/nginx_php_v6/
#3
我的意思是:php 5.3.2 rpm安装好后,就已经有一个php-cgi了,但这个php-cgi不能进行deamo运行
# php-cgi -b 127.0.0.1:9000
I/O warning : failed to load external entity "/etc/php-fpm.conf"
那么这个php包中的php-cgi程序有何作用?
另外通过查看资料,安装nginx的php支持,都需要另外安装php-fpm
安装了php-fpm后,php-cgi这个程序便能够进行deamo运行了,那么它与原来的php-cgi有什么区别?不是同一个程序吗?
我在rhel5.5+php5.3.2环境配置。
# php-cgi -b 127.0.0.1:9000
I/O warning : failed to load external entity "/etc/php-fpm.conf"
那么这个php包中的php-cgi程序有何作用?
另外通过查看资料,安装nginx的php支持,都需要另外安装php-fpm
安装了php-fpm后,php-cgi这个程序便能够进行deamo运行了,那么它与原来的php-cgi有什么区别?不是同一个程序吗?
我在rhel5.5+php5.3.2环境配置。
#4
补充一个新问题,我将网站根目录指定为“root /var/www/html;”,然后这样设置“fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;”,但浏览页面时提示“No input file specified.”。
#5
nginx本身不支持php
#6
我的意思是:php 5.3.2 rpm安装好后,就已经有一个php-cgi了,但这个php-cgi不能进行deamo运行
# php-cgi -b 127.0.0.1:9000
I/O warning : failed to load external entity "/etc/php-fpm.conf"
那么这个php包中的php-cgi程序有何作用?
另外通过查看资料,安装nginx的php支持,都需要另外安装php-fpm
安装了php-fpm后,php-cgi这个程序便能够进行deamo运行了,那么它与原来的php-cgi有什么区别?不是同一个程序吗?
我在rhel5.5+php5.3.2环境配置。
补充一个新问题,我将网站根目录指定为“root /var/www/html;”,然后这样设置“fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;”,但浏览页面时提示“No input file specified.”。
# php-cgi -b 127.0.0.1:9000
I/O warning : failed to load external entity "/etc/php-fpm.conf"
那么这个php包中的php-cgi程序有何作用?
另外通过查看资料,安装nginx的php支持,都需要另外安装php-fpm
安装了php-fpm后,php-cgi这个程序便能够进行deamo运行了,那么它与原来的php-cgi有什么区别?不是同一个程序吗?
我在rhel5.5+php5.3.2环境配置。
补充一个新问题,我将网站根目录指定为“root /var/www/html;”,然后这样设置“fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;”,但浏览页面时提示“No input file specified.”。
#7
init.d/php-cgi这个文件要改改 具体网上找找
先试试html文件。 在试试php
nginx 这样就可以跑php:
location ~ \.php
{
root /var/www/html;
fastcgi_index index.php;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
先试试html文件。 在试试php
nginx 这样就可以跑php:
location ~ \.php
{
root /var/www/html;
fastcgi_index index.php;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
#8
php-cgi 是运行php,
php-fpm是守护php-cgi进程
nginx配置目录运行php
location ~ \.php$
{
root /var/www/html;
fastcgi_index index.php;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
php-fpm是守护php-cgi进程
nginx配置目录运行php
location ~ \.php$
{
root /var/www/html;
fastcgi_index index.php;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
#9
配置弄好了,我意思是,nginx与php-cgi通信有3种方式吧?
1、nginx通过php-fpm与php-cgi联系;
2、nginx通过spawn-fcgi与php-cgi联系;
3、直接与php-cgi联系;(当然这个方法我还不理解,甚至不确定有没有这个实现)
他们之间有什么区别?
1、nginx通过php-fpm与php-cgi联系;
2、nginx通过spawn-fcgi与php-cgi联系;
3、直接与php-cgi联系;(当然这个方法我还不理解,甚至不确定有没有这个实现)
他们之间有什么区别?
#10
php-fpm,pawn-fcgi 都是守护php-cgi 进程管理器.
直接与php-cgi联系;这样当你杀死这个进程 php就不能运行
#11
那就是说确实有直接通信这一方式?怎样配置呢?
另外这采用守护php-cgi进程管理器的方式,不是一样存在杀死守护进程管理器,php就不能运行的问题吗?
这三种方式,那种性能最好 ,那种可靠性最高?
#12
php-fpm没用过 ,我用spawn-fcgi 。
守护也就是当你杀死php-cgi这进程。spawn-fcgi管理器会平滑从新生成新的进程(实验过)
性能方面 , 很多人用php-fpm ,我图方便就用了spawn-fcgi.
直接使用php-cgi,问题挺多。比如进程无辜消失等。
守护也就是当你杀死php-cgi这进程。spawn-fcgi管理器会平滑从新生成新的进程(实验过)
性能方面 , 很多人用php-fpm ,我图方便就用了spawn-fcgi.
直接使用php-cgi,问题挺多。比如进程无辜消失等。
#13
安装了php-fpm和未安装任何php-cgi进程管理器进行对比,结果都是,只要我kill掉php-cgi进程,php页面便不能再打开。实在没体会到“守护也就是当你杀死php-cgi这进程。spawn-fcgi管理器会平滑从新生成新的进程”这样的情况发生。也就实在没理解为何有必要使用“php-cgi进程管理器(比如:php-fpm或spawn-fcgi)”,盼望有高人在这一点理解上予以指点。
#14
补充一下,我使用环境是rhel5+php5.3.2+nginx0.8.52,首先是安装网上大堆的资料说要安装php-fpm,所以我安装好php和nginx后,又安装了php-fpm。都是rpm方式安装的。然后配置好后,启动nginx和php-cgi,然后php页面可以跑起来了。接下来,我开始尝试不要php-fpm的方式,所以我删除了php-fpm包,这个时候发现执行不了php-cgi命令,提示php-fpm.conf文件错误。查看指明的位置中确是没有文件,所以我直接提取php-fpm包中的php-fpm.conf文件进行相应的配置,这时能执行php-cgi命令了。再次访问页面也没问题。
但是整个过程中,不论是否安装了php-fpm,只要kill掉php-cgi,php页面便不能够访问。我实在体会不到各位一直在说的“php-cgi进程管理器”安装与不安装的区别。
且测试过程也证明了,php5.3.2环境,所用的那个php-fpm包无任何作用。我不安装它只需要安装配置要求在目录下建立好php-fpm,就能确保php-cgi的运行,而缺少php-fpm.conf,便不能运行php-cgi。
但是整个过程中,不论是否安装了php-fpm,只要kill掉php-cgi,php页面便不能够访问。我实在体会不到各位一直在说的“php-cgi进程管理器”安装与不安装的区别。
且测试过程也证明了,php5.3.2环境,所用的那个php-fpm包无任何作用。我不安装它只需要安装配置要求在目录下建立好php-fpm,就能确保php-cgi的运行,而缺少php-fpm.conf,便不能运行php-cgi。
#15
没有想到一个安装环境都这么复杂。哎!受教了。
#16
要开启至少2个以上的php-cgi进程 , php-fpm才有守护效果,有时间多试试
#17
比如你生成 10 个进程会多出1个进程共11个,进程号最靠前的应该就是主进程,也就是守护进程 。
#18
作用就在于:设定的10个进程如果有进程意外挂了,会导致性能下降,但守护进程会自动启动新的进程?
#19
嗯
#20
还是没测试出来效果--当进程挂掉是守护进程自动启动进程。。。
#21
PHP5.3.3已经集成php-fpm了,不再是第三方的包了。php-fpm提供了更好的PHP进程管理方式,可以有效控制内存和进程、可以平滑重载PHP配置,比spawn-fcgi具有更多有点,所以被PHP官方收录了。你最好用编译式安装PHP,z在./configure的时候带--enable-fpm参数即可开启php-fpm。
#22
意思是说rpm方式安装的php5.3.2所包括的php-cgi文件其实就是php-fpm要求的文件?所以,只需要配置好php-fpm.conf文件就能体会到守护进程带来的好处了?
但我就是没办法测试:kill掉php-cgi的情况下,守护进程自动启动php-cgi!!!
#23
终于确定了原因,kill了主进程,即管理进程。。。。。。
#1
php-fpm 是一个集成了 php-cgi的功能包, 其实装这个就相当于你装了php-cgi
装了php-fpm并配置就可以运行php
你平时用的apache也要php-cgi, 不过都是集成在模块中
装了php-fpm并配置就可以运行php
你平时用的apache也要php-cgi, 不过都是集成在模块中
#2
你的是什么系统 。 RedHat?
http://blog.s135.com/nginx_php_v6/
http://blog.s135.com/nginx_php_v6/
#3
我的意思是:php 5.3.2 rpm安装好后,就已经有一个php-cgi了,但这个php-cgi不能进行deamo运行
# php-cgi -b 127.0.0.1:9000
I/O warning : failed to load external entity "/etc/php-fpm.conf"
那么这个php包中的php-cgi程序有何作用?
另外通过查看资料,安装nginx的php支持,都需要另外安装php-fpm
安装了php-fpm后,php-cgi这个程序便能够进行deamo运行了,那么它与原来的php-cgi有什么区别?不是同一个程序吗?
我在rhel5.5+php5.3.2环境配置。
# php-cgi -b 127.0.0.1:9000
I/O warning : failed to load external entity "/etc/php-fpm.conf"
那么这个php包中的php-cgi程序有何作用?
另外通过查看资料,安装nginx的php支持,都需要另外安装php-fpm
安装了php-fpm后,php-cgi这个程序便能够进行deamo运行了,那么它与原来的php-cgi有什么区别?不是同一个程序吗?
我在rhel5.5+php5.3.2环境配置。
#4
补充一个新问题,我将网站根目录指定为“root /var/www/html;”,然后这样设置“fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;”,但浏览页面时提示“No input file specified.”。
#5
nginx本身不支持php
#6
我的意思是:php 5.3.2 rpm安装好后,就已经有一个php-cgi了,但这个php-cgi不能进行deamo运行
# php-cgi -b 127.0.0.1:9000
I/O warning : failed to load external entity "/etc/php-fpm.conf"
那么这个php包中的php-cgi程序有何作用?
另外通过查看资料,安装nginx的php支持,都需要另外安装php-fpm
安装了php-fpm后,php-cgi这个程序便能够进行deamo运行了,那么它与原来的php-cgi有什么区别?不是同一个程序吗?
我在rhel5.5+php5.3.2环境配置。
补充一个新问题,我将网站根目录指定为“root /var/www/html;”,然后这样设置“fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;”,但浏览页面时提示“No input file specified.”。
# php-cgi -b 127.0.0.1:9000
I/O warning : failed to load external entity "/etc/php-fpm.conf"
那么这个php包中的php-cgi程序有何作用?
另外通过查看资料,安装nginx的php支持,都需要另外安装php-fpm
安装了php-fpm后,php-cgi这个程序便能够进行deamo运行了,那么它与原来的php-cgi有什么区别?不是同一个程序吗?
我在rhel5.5+php5.3.2环境配置。
补充一个新问题,我将网站根目录指定为“root /var/www/html;”,然后这样设置“fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;”,但浏览页面时提示“No input file specified.”。
#7
init.d/php-cgi这个文件要改改 具体网上找找
先试试html文件。 在试试php
nginx 这样就可以跑php:
location ~ \.php
{
root /var/www/html;
fastcgi_index index.php;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
先试试html文件。 在试试php
nginx 这样就可以跑php:
location ~ \.php
{
root /var/www/html;
fastcgi_index index.php;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
#8
php-cgi 是运行php,
php-fpm是守护php-cgi进程
nginx配置目录运行php
location ~ \.php$
{
root /var/www/html;
fastcgi_index index.php;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
php-fpm是守护php-cgi进程
nginx配置目录运行php
location ~ \.php$
{
root /var/www/html;
fastcgi_index index.php;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
#9
配置弄好了,我意思是,nginx与php-cgi通信有3种方式吧?
1、nginx通过php-fpm与php-cgi联系;
2、nginx通过spawn-fcgi与php-cgi联系;
3、直接与php-cgi联系;(当然这个方法我还不理解,甚至不确定有没有这个实现)
他们之间有什么区别?
1、nginx通过php-fpm与php-cgi联系;
2、nginx通过spawn-fcgi与php-cgi联系;
3、直接与php-cgi联系;(当然这个方法我还不理解,甚至不确定有没有这个实现)
他们之间有什么区别?
#10
php-fpm,pawn-fcgi 都是守护php-cgi 进程管理器.
直接与php-cgi联系;这样当你杀死这个进程 php就不能运行
#11
那就是说确实有直接通信这一方式?怎样配置呢?
另外这采用守护php-cgi进程管理器的方式,不是一样存在杀死守护进程管理器,php就不能运行的问题吗?
这三种方式,那种性能最好 ,那种可靠性最高?
#12
php-fpm没用过 ,我用spawn-fcgi 。
守护也就是当你杀死php-cgi这进程。spawn-fcgi管理器会平滑从新生成新的进程(实验过)
性能方面 , 很多人用php-fpm ,我图方便就用了spawn-fcgi.
直接使用php-cgi,问题挺多。比如进程无辜消失等。
守护也就是当你杀死php-cgi这进程。spawn-fcgi管理器会平滑从新生成新的进程(实验过)
性能方面 , 很多人用php-fpm ,我图方便就用了spawn-fcgi.
直接使用php-cgi,问题挺多。比如进程无辜消失等。
#13
安装了php-fpm和未安装任何php-cgi进程管理器进行对比,结果都是,只要我kill掉php-cgi进程,php页面便不能再打开。实在没体会到“守护也就是当你杀死php-cgi这进程。spawn-fcgi管理器会平滑从新生成新的进程”这样的情况发生。也就实在没理解为何有必要使用“php-cgi进程管理器(比如:php-fpm或spawn-fcgi)”,盼望有高人在这一点理解上予以指点。
#14
补充一下,我使用环境是rhel5+php5.3.2+nginx0.8.52,首先是安装网上大堆的资料说要安装php-fpm,所以我安装好php和nginx后,又安装了php-fpm。都是rpm方式安装的。然后配置好后,启动nginx和php-cgi,然后php页面可以跑起来了。接下来,我开始尝试不要php-fpm的方式,所以我删除了php-fpm包,这个时候发现执行不了php-cgi命令,提示php-fpm.conf文件错误。查看指明的位置中确是没有文件,所以我直接提取php-fpm包中的php-fpm.conf文件进行相应的配置,这时能执行php-cgi命令了。再次访问页面也没问题。
但是整个过程中,不论是否安装了php-fpm,只要kill掉php-cgi,php页面便不能够访问。我实在体会不到各位一直在说的“php-cgi进程管理器”安装与不安装的区别。
且测试过程也证明了,php5.3.2环境,所用的那个php-fpm包无任何作用。我不安装它只需要安装配置要求在目录下建立好php-fpm,就能确保php-cgi的运行,而缺少php-fpm.conf,便不能运行php-cgi。
但是整个过程中,不论是否安装了php-fpm,只要kill掉php-cgi,php页面便不能够访问。我实在体会不到各位一直在说的“php-cgi进程管理器”安装与不安装的区别。
且测试过程也证明了,php5.3.2环境,所用的那个php-fpm包无任何作用。我不安装它只需要安装配置要求在目录下建立好php-fpm,就能确保php-cgi的运行,而缺少php-fpm.conf,便不能运行php-cgi。
#15
没有想到一个安装环境都这么复杂。哎!受教了。
#16
要开启至少2个以上的php-cgi进程 , php-fpm才有守护效果,有时间多试试
#17
比如你生成 10 个进程会多出1个进程共11个,进程号最靠前的应该就是主进程,也就是守护进程 。
#18
作用就在于:设定的10个进程如果有进程意外挂了,会导致性能下降,但守护进程会自动启动新的进程?
#19
嗯
#20
还是没测试出来效果--当进程挂掉是守护进程自动启动进程。。。
#21
PHP5.3.3已经集成php-fpm了,不再是第三方的包了。php-fpm提供了更好的PHP进程管理方式,可以有效控制内存和进程、可以平滑重载PHP配置,比spawn-fcgi具有更多有点,所以被PHP官方收录了。你最好用编译式安装PHP,z在./configure的时候带--enable-fpm参数即可开启php-fpm。
#22
意思是说rpm方式安装的php5.3.2所包括的php-cgi文件其实就是php-fpm要求的文件?所以,只需要配置好php-fpm.conf文件就能体会到守护进程带来的好处了?
但我就是没办法测试:kill掉php-cgi的情况下,守护进程自动启动php-cgi!!!
#23
终于确定了原因,kill了主进程,即管理进程。。。。。。