当前位置:Gxlcms > PHP教程 > 3种PHP-CGI

3种PHP-CGI

时间:2021-07-01 10:21:17 帮助过:8人阅读

PHP CGI 有3种形式:

最强悍的FPM, 功能最强大, 只要配置php-fpm.conf即可;

fpm主页: http://php-fpm.org/ 使用 spawn-fcgi, 启动命令: env ? PHP_FCGI_CHILDREN=3 PHP_FCGI_MAX_REQUESTS=1000 spawn-fcgi -a 127.0.0.1 -p 9000 -u www-data -g www-data -f php-cgi -P /var/run/spawn-fcgi.pid

使用时, 把www-data替换成自己的用户名和群组名;

参数含义如下:
-f 指定调用FastCGI的进程的执行程序位置,根据系统上所装的PHP的情况具体设置
-a 绑定到地址addr
-p 绑定到端口port
-s 绑定到unix socket的路径path
-C 指定产生的FastCGI的进程数,默认为5(仅用于PHP)
-P 指定产生的进程的PID文件路径
-u和-g FastCGI使用什么身份(-u 用户 -g 用户组)运行,Ubuntu下可以使用www-data,其他的根据情况配置,如nobody、apache等
然后我们可以将这行代码加入到/etc/rc.local文件底部,这样系统启动的时候也可以同时启动PHP的FastCGI进程。

直接启动php-cgi, 使用命令: php-cgi -b 127.0.0.1:9000

不过这时php-cgi是使用当前用户身份, 执行session等相关操作会出错, 如果web用户(如ubuntu下的www-data)是可以登录的, 则使用命令: su www-data -l -c “php-cgi -b 127.0.0.1:9000″

如果www-data不能登录(bash位/bin/false), 那么直接修改用户权限,

sudo chown www-data:www-data which php-cgi
sudo chmod u+s which php-cgi

BTW: 近段时间看ZF手册,开头有这么一句: 对于只包含有 PHP 代码的文件,结束标志(”?>”)是不允许存在的,PHP自身不需要(”?>”), 这样做, 可以防止它的末尾的被意外地注入相应。 晕倒~~ 我这会儿才知道有这茬

http://mifunny.info/run-php-as-cgi-339.html

人气教程排行