应用root执行php-fpm
程序员文章站
2022-06-09 09:09:42
...
使用root执行php-fpm
php-fpm能对php的进程进行平滑重启和停止、重新载入配置和二进制模块而不丢失请求,这些是我比较喜欢的。实在是厌恶了使用kill -9 来重启php进程,因为决定装上php-fpm先测试一下。
整个安装过程完毕后,发现了两个不太习惯的地方:
1、php-fpm.conf
2、不能使用root用户来执行
配置文件还好,大致看看就明白意思了。再就是不能在root下执行,就我自己而言非常的不习惯,讨厌用户切来切去的。那只能hack一把了
找到文件 $src_path/sapi/cgi/fpm/fpm_unix.c里边有段代码
#ifndef I_REALLY_WANT_ROOT_PHP
if (wp->set_uid == 0 || wp->set_gid == 0) {
zlog(ZLOG_STUFF, ZLOG_ERROR, "please specify user and group other than root, pool ‘%s’", wp->config->name);
return -1;
}
#endif
}
else { /* not root */
if (wp->config->user && *wp->config->user) {
zlog(ZLOG_STUFF, ZLOG_WARNING, "’user’ directive is ignored, pool ‘%s’", wp->config->name);
}
if (wp->config->group && *wp->config->group) {
zlog(ZLOG_STUFF, ZLOG_WARNING, "’group’ directive is ignored, pool ‘%s’", wp->config->name);
}
if (wp->config->chroot && *wp->config->chroot) {
zlog(ZLOG_STUFF, ZLOG_WARNING, "’chroot’ directive is ignored, pool ‘%s’", wp->config->name);
}
{ /* set up HOME and USER anyway */
struct passwd *pwd;
pwd = getpwuid(getuid());
if (pwd) {
wp->user = strdup(pwd->pw_name);
wp->home = strdup(pwd->pw_dir);
}
}
}
return 0;
}
php-fpm的作者想得很周全,料到有人不用ROOT心里不爽!比如像我:) 我们要做的就是在此文件顶部加上:
#define I_REALLY_WANT_ROOT_PHP
之后重新编译即可~希望大家用的顺手!
/data1/qiao.wang/software/php-5.2.14/sapi/cgi/fpm
需要重新编译
php-fpm能对php的进程进行平滑重启和停止、重新载入配置和二进制模块而不丢失请求,这些是我比较喜欢的。实在是厌恶了使用kill -9 来重启php进程,因为决定装上php-fpm先测试一下。
整个安装过程完毕后,发现了两个不太习惯的地方:
1、php-fpm.conf
2、不能使用root用户来执行
配置文件还好,大致看看就明白意思了。再就是不能在root下执行,就我自己而言非常的不习惯,讨厌用户切来切去的。那只能hack一把了
找到文件 $src_path/sapi/cgi/fpm/fpm_unix.c里边有段代码
#ifndef I_REALLY_WANT_ROOT_PHP
if (wp->set_uid == 0 || wp->set_gid == 0) {
zlog(ZLOG_STUFF, ZLOG_ERROR, "please specify user and group other than root, pool ‘%s’", wp->config->name);
return -1;
}
#endif
}
else { /* not root */
if (wp->config->user && *wp->config->user) {
zlog(ZLOG_STUFF, ZLOG_WARNING, "’user’ directive is ignored, pool ‘%s’", wp->config->name);
}
if (wp->config->group && *wp->config->group) {
zlog(ZLOG_STUFF, ZLOG_WARNING, "’group’ directive is ignored, pool ‘%s’", wp->config->name);
}
if (wp->config->chroot && *wp->config->chroot) {
zlog(ZLOG_STUFF, ZLOG_WARNING, "’chroot’ directive is ignored, pool ‘%s’", wp->config->name);
}
{ /* set up HOME and USER anyway */
struct passwd *pwd;
pwd = getpwuid(getuid());
if (pwd) {
wp->user = strdup(pwd->pw_name);
wp->home = strdup(pwd->pw_dir);
}
}
}
return 0;
}
php-fpm的作者想得很周全,料到有人不用ROOT心里不爽!比如像我:) 我们要做的就是在此文件顶部加上:
#define I_REALLY_WANT_ROOT_PHP
之后重新编译即可~希望大家用的顺手!
/data1/qiao.wang/software/php-5.2.14/sapi/cgi/fpm
需要重新编译
相关文章
相关视频
上一篇: php 正则验证日期时间格式实例代码
下一篇: MySql中的函数_MySQL
推荐阅读
-
awk 分析web日志(页面执行时间)(常见应用3)
-
nginx php-fpm中启用慢日志配置(用于检测执行较慢的PHP脚本)
-
PHP-FPM之Chroot执行环境详解
-
php-fpm可执行文件出现乱码的解决方法
-
python 切换root 执行命令的方法
-
[Go] gocron源码阅读-判断是否使用root用户执行
-
荐 超市进销存管理系统(C#+SQL Server实现)C#窗体应用、数据库应用,生成可执行安装包程序
-
PHP 异步执行方法,模拟多线程的应用分析
-
做为GPU服务器管理员,当其他用户需要执行某个要root权限的命令时,除了告诉他们root密码,还有没有别的办法?
-
.NET定时任务执行管理器开源组件–FluentScheduler,可以在web应用程序里面使用