php root 启动,php-fpm如何以root身份启动
為了安全php-fpm默認是以apache用戶啟動的
[root@chaoge ~]# 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
[root@chaoge ~]# 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
[root@chaoge ~]# kill -QUIT 5035
[root@chaoge ~]# 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
[root@chaoge ~]#
報錯了,提示運行php-fpm運行用戶和組只能選擇其它的除了root以外,于是查看php-fpm文檔,會發現其中一個選項:-R
[root@chaoge ~]# php-fpm --help
Usage: php [-n] [-e] [-h] [-i] [-m] [-v] [-t] [-p ] [-g ] [-c ] [-d foo[=bar]] [-y ] [-D] [-F]
-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
Specify alternative prefix path to FastCGI process manager (default: /usr).
-g, --pid
Specify the PID file location.
-y, --fpm-config
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)
于是我們試著啟動的時候加上這個參數試一試
[root@chaoge ~]# php-fpm -R
[root@chaoge ~]# 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寫好的腳本正常運行。
最后,奉勸大家生產環境大家最好別這樣做,否則你知道的。。。
總結
以上是生活随笔為你收集整理的php root 启动,php-fpm如何以root身份启动的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php 正则 回溯,PHP正则匹配绕过
- 下一篇: php表单确认密码,jQuery表单验证