php fpm not found,非root起nginx + php-fpm碰到File not found

本文介绍了在非root权限下,以coosh用户启动Nginx和PHP-FPM时遇到的权限问题及解决方法。包括修改Nginx配置文件以指定绝对路径,设置error_log权限,以及调整PHP-FPM配置以允许coosh用户运行并监听9001端口。通过这些步骤,成功实现了非root权限下的服务启动,并强调了在排错过程中使用strace工具的重要性。
摘要由CSDN通过智能技术生成

在尝试非root起nginx和php-fpm遇到的问题和解决方法

nginx方面,以系统中的coosh用户启动为背景

# 源码安装的nginx,目录/application/nginx-1.8.1

useradd coosh

su - coosh

# 以下为nginx.conf配置文件的内容,注意该文件是放在coosh的家目录下

# 由于该配置文件不是在nginx安装目录中,所以里面的目录路径要全换成绝对路径

cat >nginx.conf <

worker_processes  1;

error_log /home/coosh/error.log;

pid       /home/coosh/nginx.pid;

events {

worker_connections  1024;

}

http {

include       /application/nginx-1.8.1/conf/mime.types;

default_type  application/octet-stream;

sendfile        on;

keepalive_timeout  65;

gzip on;

gzip_types text/css text/xml text/plain application/javascript;

gzip_min_length 1k;

gzip_comp_level 5;

gzip_vary on;

server {

listen          8080;

access_log      off;

# 我的网站目录是在家目录下的website目录中

root    /home/coosh/website;

location / {

root    /home/coosh/website;

index   index.php;

}

location ~ \.php$ {

#由于9000端口已经被另一个php-fpm占用了,所以另起了一个9001

fastcgi_pass   127.0.0.1:9001;

fastcgi_index  index.php;

#这里的$document_root取值是server块里的root

fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;

include        /application/nginx-1.8.1/conf/fastcgi.conf;

}

}

}

EOF

#测试一下该配置文件

/application/nginx/sbin/nginx -c /home/coosh/nginx.conf -t

#通常会提示没有权限访问/application/nginx-1.8.1/logs/error.log,这确实很奇怪,因为在配置文件里命名是配了error_log参数,但仍提示这个路径,解决的方法是用root给这个文件配上所有人可读写。

logout

chmod 666 /application/nginx-1.8.1/logs/error.log

# 回到coosh用户下

su - coosh

/application/nginx/sbin/nginx -c /home/coosh/nginx.conf -t

# 如无意外,会提示OK和successful

php-fpm方面碰到的问题

由于系统里的php-fpm默认是以www用户或者php-fpm.conf里配置的user去运行,

所以,php-fpm是不具备直接访问其他用户家目录的权限,也是导致File not found的主因

如果配置成root权限执行,固然能访问得到所有的目录,但又会带来安全的风险。

因此,最佳的做法,是以coosh的身份去运行php-fpm

su - coosh

#把php-fpm.conf复制到coosh的家目录

cp /application/php/etc/php-fpm.conf .

把该文件里的user和group都该为coosh

[coosh@Lab2 ~]$ grep coosh php-fpm.conf

user = coosh

group = coosh

[coosh@Lab2 ~]$ grep 9001 php-fpm.conf

listen = 127.0.0.1:9001

检查一下配置文件

[coosh@Lab2 ~]$ /application/php/sbin/php-fpm -y ./php-fpm.conf -t

通常又会提示没有权限访问/application/php/var/log/php-fpm.log

所以,切换会root,修改一下文件的权限

[iyunv@Lab2 ~]# chmod 666 /application/php/var/log/php-fpm.log

切换回coosh,再次检查

[coosh@Lab2 ~]$ /application/php/sbin/php-fpm -y ./php-fpm.conf -t

[29-Jun-2016 17:30:17] NOTICE: configuration file ./php-fpm.conf test is successful

可以尝试执行php-fpm

/application/php/sbin/php-fpm -y ./php-fpm.conf

302bad67f9dda864b7616bad5169f95e.gif

spacer.jpg (43 Bytes, 下载次数: 4)

2016-6-30 09:16 上传

总结,在遇到问题时,要多使用strace,可以很快捷的定位问题,再者,不要过分相信百度到的答案

当然,参考别人的经验是必须的,但需要自己形成排错的方法,两者相结合,才是王道。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值