php cgi help,求助 快被PHP-FPM搞疯了

CENTOS 6.5下,删除了之前用YUM安装过的PHP,然后下载php7源码编译安装。安装成功。

但是PHP-FPM无法启动

测试配置文件,成功。

[root@aaa php-fpm.d]# /usr/local/php7/sbin/php-fpm -t

[03-Feb-2017 04:24:54] NOTICE: configuration file /usr/local/php7/etc/php-fpm.conf test is successful

开启服务,提示一堆帮助。。怎么开启啊?

[root@aaa php-fpm.d]# /usr/local/php7/sbin/php-fpm start

Usage: php-fpm [-n] [-e] [-h] [-i] [-m] [-v] [-t] [-p ] [-g ] [-c ] [-d foo[=bar]] [-y ] [-D] [-F [-O]]

-c | Look for php.ini file in this directory

-n No php.ini file will be used

-d foo[=bar] Define INI entry foo with value ‘bar’

-e Generate extended information for debugger/profiler

-h This help

-i PHP information

-m Show compiled in modules

-v Version number

-p, –prefix…………………………………………省略

查看进程

[root@aaa php-fpm.d]# ps -ef | grep PHP-fpm

root 1776 1649 0 04:29 pts/0 00:00:00 grep PHP-fpm

netstat -lntp 查看端口,里面没有PHP-FPM(肯定了,没有启动)

Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name

tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 1397/mysqld

tcp 0 0 127.0.0.1:5901 0.0.0.0:* LISTEN 1464/Xvnc

tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1424/nginx

tcp 0 0 0.0.0.0:8082 0.0.0.0:* LISTEN 1424/nginx

tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 1260/vsftpd

tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1239/sshd

看命令帮助中有个参数-R

-R, –allow-to-run-as-root

Allow pool to run as root (disabled by default)

然后我运行了一下:/etc/init.d/php-fpm -R

接着执行了:/etc/init.d/php-fpm

[03-Feb-2017 04:39:16] ERROR: unable to bind listening socket for address ‘127.0.0.1:9000’: Address already in use (98)

[03-Feb-2017 04:39:16] ERROR: FPM initialization failed

虽然初始化失败了,但是显示端口被占用,再次查看网络端口情况:

netstat -lntp

Active Internet connections (only servers)

Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name

tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 1787/php-fpm

tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 1397/mysqld

tcp 0 0 127.0.0.1:5901 0.0.0.0:* LISTEN 1464/Xvnc

tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1424/nginx

tcp 0 0 0.0.0.0:8082 0.0.0.0:* LISTEN 1424/nginx

tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 1260/vsftpd

tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1239/sshd

显示PID 1787/php-fpm在监听这个端口 127.0.0.1:9000。

……我艹,当我想再去截一下PHP无法解析NGINX 502错误的时候刷新了一下页面,现在正常了,泪奔!

~~>___

df39d44faf253e53118068c4f6fddb1b.png

-R

选项的作用是允许这次用root权限运行,不是给root执行权限。

因为用root权限跑服务都有安全隐患(一旦被攻陷,攻击者就有了最高权限),所以php-fpm会做个检查,默认不能用root,要求自己确定要用。

所以第一次

php-fpm -R的时候

,php-fpm已经在运行了,没必要再来一次

php-fpm

(其实也不行,因为第一次成功的话已经占用端口了)。

端口占用了,就把占用的进程杀了。

还有

/etc/init.d/php-fpm

是脚本还是php-fpm本体呢?看题主的答案好像混淆了两者。

php-fpm不支持start选项,

/usr/local/php7/sbin/php-fpm start

肯定是一堆错误信息(其实是帮助信息),支持start的是

/etc/init.d/

下的那些脚本。

解决办法

给root运行权限

/etc/init.d/php-fpm -R

然后在执行一下就可以了

/etc/init.d/php-fpm

不过话说这样有安全隐患吗? 还有就是开机自动开启服务该怎么做?(百度搜索过,照做都会有问题,比如这样https://my.oschina.net/yearnf… /etc/init.d/php-fpm 我的目录里已经有这个文件了,如果替换成上文中的脚本执行/etc/init.d/php-fpm start不成功,脚本里的路径都已经改过。)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值