ASP源码.NET源码PHP源码JSP源码JAVA源码DELPHI源码PB源码VC源码VB源码Android源码
当前位置:首页 >> 网络编程 >> PHP教程 >> nginx启动文件报grep错和 useradd错的问题处理

nginx启动文件报grep错和 useradd错的问题处理

来源:网络整理     时间:2016-09-01     关键词:

本篇文章主要介绍了" nginx启动文件报grep错和 useradd错的问题处理",主要涉及到方面的内容,对于PHP教程感兴趣的同学可以参考一下: 场景最近某客户有个要求,所有部署的不准运行在root下面,安装在/home/somebody下面(用户家目录),当对nginx进行普通用户运行的时候,会遇到各种...

场景

最近某客户有个要求,所有部署的不准运行在root下面,安装在/home/somebody下面(用户家目录),当对nginx进行普通用户运行的时候,会遇到各种各样的问题,比如文件路径不存在呀,权限不够呀等。

本文就是在修改nginx运行在家目录的时候遇到的最后一个问题,提示 useradd没有权限,以及运行的时候出现的异常现象。

$ ./nginx restart
ngx_http_fastdfs_set pid=5550
nginx: the configuration file /home/123/opt/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /home/123/opt/nginx/conf/nginx.conf test is successful
Stopping nginx:                                            [  OK  ]
grep: unrecognized option '--prefix=/home/123/opt/nginx'
Usage: grep [OPTION]... PATTERN [FILE]...
Try `grep --help' for more information.
./nginx: line 34: /usr/sbin/useradd: Permission denied
Starting nginx: ngx_http_fastdfs_set pid=5582
                                                           [  OK  ]
touch: cannot touch `/home/123/opt/var/lock/subsys/nginx': No such file or directory

调查

  • 定位代码到如下函数
make_dirs() {
   # make required directories
   user=`$nginx -V 2>&1 | grep "configure arguments:" | sed 's/[^*]*--user=\([^ ]*\).*/\
1/g' -`
   if [ -z "`grep $user /etc/passwd`" ]; then
       useradd -M -s /bin/nologin $userfi
   opti>$nginx -V 2>&1 | grep 'configure arguments:'`
   for opt in$options; doif [ `echo$opt | grep '.*-temp-path'` ]; then
           value=`echo$opt | cut -d"="-f2`
           if [ ! -d"$value" ]; then# echo "creating" $value
               mkdir -p $value && chown -R $user$valuefifidone
}

start() {
    [ -x $nginx ] || exit5
    [ -f$NGINX_CONF_FILE ] || exit6
    make_dirs //调用函数
    echo -n $"Starting $prog: "
    daemon $nginx -c $NGINX_CONF_FILE
    retval=$?
    echo
    [ $retval-eq0 ] && touch $lockfilereturn$retval
}
可以看出,make_dirs会完成两个作用,一个是判断编译的时候的--user,如果系统中没有这个账户,那么就新建这个账户;另外一个是从options中提取temp-path变量,并创建该目录。对于我们当前的需求是不需要的,账户已经创建好了,temp-path没有,所以可以在start函数中,直接注释掉对make_dirs的调用。

').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('
  • ').text(i)); }; $numbering.fadeIn(1700); }); });

    以上就介绍了 nginx启动文件报grep错和 useradd错的问题处理,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

    本文网址链接:http://www.codes51.com/article/detail_3705193.html

  • 相关图片

    相关文章