linux下php-fpm以root身份启动设置

为了安全php-fpm默认是以apache用户启动的

[[email protected] ~]# ps -aux | grep php-fpm
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ
root      4539  0.0  0.0 205552  3716 ?        Ss   10:22   0:00 php-fpm: master process (/etc/php-fpm.conf)
apache    4540  0.0  0.0 205552  3332 ?        S    10:22   0:00 php-fpm: pool www
apache    4541  0.0  0.0 205552  3332 ?        S    10:22   0:00 php-fpm: pool www
apache    4542  0.0  0.0 205552  3332 ?        S    10:22   0:00 php-fpm: pool www
apache    4543  0.0  0.0 205552  3332 ?        S    10:22   0:00 php-fpm: pool www
apache    4544  0.0  0.0 205552  3332 ?        S    10:22   0:00 php-fpm: pool www
root      4556  0.0  0.0 103248   888 pts/1    S+   10:22   0:00 grep php-fpm

网上一堆文章说要以root身份启动需要设置一堆非常复杂的程序,并且甚至有人说不能以root身份启动。既然是php-fpm程序,所以应该先找配置文件,于是打开默认的配置文件,具体你得看你的默认配置文件路径在哪

/etc/php-fpm.d/www.conf

这是我机器上的

找到

; RPM: apache Choosed to be able to access some dir as httpd
user = apache
改成
; RPM: apache Choosed to be able to access some dir as httpd
user = root
 
重新启动php-fpm

[[email protected] ~]# ps -le | grep php-fpm
1 S     0  4974     1  0  80   0 - 51388 ep_pol ?        00:00:00 php-fpm
5 S    48  4975  4974  0  80   0 - 51388 inet_c ?        00:00:00 php-fpm
5 S    48  4976  4974  0  80   0 - 51388 inet_c ?        00:00:00 php-fpm
5 S    48  4977  4974  0  80   0 - 51388 inet_c ?        00:00:00 php-fpm
5 S    48  4978  4974  0  80   0 - 51388 inet_c ?        00:00:00 php-fpm
5 S    48  5035  4974  0  80   0 - 51388 inet_c ?        00:00:00 php-fpm
[[email protected] ~]# kill -QUIT 5035
[[email protected] ~]# php-fpm
[17-Apr-2015 10:33:38] ERROR: [pool www] please specify user and group other than root
[17-Apr-2015 10:33:38] ERROR: FPM initialization failed
[[email protected] ~]#

报错了,提示运行php-fpm运行用户和组只能选择其它的除了root以外,于是查看php-fpm文档,会发现其中一个选项:-R

[[email protected] ~]# php-fpm --help
Usage: php [-n] [-e] [-h] [-i] [-m] [-v] [-t] [-p <prefix>] [-g <pid>] [-c <file>] [-d foo[=bar]] [-y <file>] [-D] [-F]
  -c <path>|<file> 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 <dir>
                   Specify alternative prefix path to FastCGI process manager (default: /usr).
  -g, --pid <file>
                   Specify the PID file location.
  -y, --fpm-config <file>
                   Specify alternative path to FastCGI process manager config file.
  -t, --test       Test FPM configuration and exit
  -D, --daemonize  force to run in background, and ignore daemonize option from config file
  -F, --nodaemonize
                   force to stay in foreground, and ignore daemonize option from config file
  -R, --allow-to-run-as-root
                   Allow pool to run as root (disabled by default)
于是我们试着启动的时候加上这个参数试一试
 
[[email protected] ~]# php-fpm -R
[[email protected] ~]# ps -aux | grep php-fpm
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ
root      5497  0.0  0.0 205552  3712 ?        Ss   10:36   0:00 php-fpm: master process (/etc/php-fpm.conf)
root      5498  0.0  0.0 205552  3196 ?        S    10:36   0:00 php-fpm: pool www
root      5499  0.0  0.0 205552  3196 ?        S    10:36   0:00 php-fpm: pool www
root      5500  0.0  0.0 205552  3196 ?        S    10:36   0:00 php-fpm: pool www
root      5501  0.0  0.0 205552  3200 ?        S    10:36   0:00 php-fpm: pool www
root      5502  0.0  0.0 205552  3200 ?        S    10:36   0:00 php-fpm: pool www
root      5524  0.0  0.0 103252   888 pts/1    S+   10:36   0:00 grep php-fpm

成功启动了,测试一下,以root用户写了一个shell脚本保存在root宿主目录下,php里exec写好的脚本正常运行。

时间: 2016-04-17
Tags: 文件, 用户, 配置

linux下php-fpm以root身份启动设置的相关文章

Linux下MongoDB的安装,通过配置文件启动Mongodb的方式研究,mongodb自启动脚本(Linux),Windows下安装MongoDB服务

关于MongoDB的windows的 安装,可以参考: http://www.runoob.com/mongodb/mongodb-window-install.html 关于Linux的安装可以参考: http://www.runoob.com/mongodb/mongodb-linux-install.html 使用MongoDB的场景: A:需要写入大量的数据,但是这些数据的价值并不是太高,比如:日志 B:数据增长量较大,而且数据结构有时候还不一致 C:未来数据会很大. 注意:Mongod

Linux下通过ioctl系统调用来获取和设置网络信息

#include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <sys/ioctl.h> #include <net/if.h> #include <arpa/inet.h> #include <linux/netlink.h> #include <linux/rtnetlink.h> 

Linux下VNC的安装和开机启动

1.确认VNC是否安装默认情况下,Red Hat Enterprise Linux安装程序会将VNC服务安装在系统上.确认是否已经安装VNC服务及查看安装的VNC版本[[email protected] ~]# rpm -q vnc-servervnc-server-4.1.2-9.el5[[email protected] ~]# 若系统没有安装,可以到操作系统安装盘的Server目录下找到VNC服务的RPM安装包vnc-server-4.1.2-9.el5.x86_64.rpm,安装命令如下rpm -ivh /mn

linux ldap认证:windos 和 linux 下实现PHP和LDAP身份认证

我现在的老板曾要求我为企业内部互联网的Web服务提供一种标准的身份验证方法.我遇到的一个主要问题就是我们公司主要使用了两种平台:UNIX和Windows.所以,我的第一个想法并不很成功:它要求每个员工都使用UNIX或者Linux而放弃Windows.我认为解决现在的UNIX/Windows问题的最好方法就是利用PHP的LDAP特性.由于LDAP服务器,要求我使用现有的系统,主要指的是一个巨大的Microsoft Exchange Server系统.我非常高兴使用Exchange,它很可靠,而且L

Linux下的mongodb服务监视脚本(启动服务)_Linux

前些天,一位开发同事找到我,说他测试环境的 mongodb 经常挂掉,要我写一个监控或复活的脚本.我觉得很奇怪,测试环境又没啥负载,经常挂掉肯定有非常规原因. 跑过去看了一下日志,发现存在stop记录,我就纳闷了,没人操作他还会自己stop.这明显不是挂掉了,于是到history中看了下同事的启动命令: 复制代码 代码如下: /usr/local/mongodb/bin/mongod --dbpath=/usr/local/mongodb/data/ --logpath=/data/mongod

linux下重启weblogic(关闭和启动)

 ssh远程连接Linux服务器! 开启weblogic: 1.找到/Oracle/Middleware/user_projects/domains/用户_domain目录, 2.执行nohup ./startWebLogic.sh(nohup的作用是让weblogic启动在后台运行), 3.使用命令tail -f 文本文件名即可监视远程文件的变动情况,例如要监视Weblogic某一域的日志输出只需要输入命令:tail -f nohup.out 停止weblocgic: 命令 ./stopW

Linux下重置MySQL的Root帐号密码

1.停止MySQL服务 /etc/init.d/mysqld stop   2.跳过验证启动MySQL /usr/local/mysql/bin/mysqld_safe --skip-grant-tables >/dev/null 2>&1 &   3.重置密码 等几秒钟,待上一步启动mysql完成后执行下面命令:  /usr/local/mysql/bin/mysql -u root mysql update user set password = Password('要设置

linux下查看其他主机端口是否启动命令

  本机插入 REDHAT6.3系统ISO镜像CD1 1.配置yum本地安装源: 以root用户登录系统 mkdir /mnt/cdrom mount -t iso9660 /dev/sr0 /mnt/cdrom cd /etc/yum.repos.d 查看目录是否有.repo后缀文件,没有则创建一个.repo文件,文件名随意. vi local.repo yum clean all 2.安装nmap,并测试172.24.40.5是否开放80端口 nmap -p 1-200 目标主机 IP #1

linux下ruby使用tcl/tk编程环境设置

正常情况下最新的ruby都是不带tcl/tk选项编译的,所以我们在运行tcl/tk代码时都会发生找不到tk库的错误.解决办法很简单只要以tcl/tk选项编译ruby即可. 这里以ubuntu 15.04为例,前提是先安装rvm:如果不用rvm也可以,不过要自己下载源代码回来编译,不如一步到位用rvm省事. 首先到ActiveTcl官网下载tcl: http://www.activestate.com/activetcl/downloads 注意不要选择最新的8.6.x,因为可能兼容性有问题,需要