热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

Nginx服务启动脚本的使用

之前使用的nginx启动脚本交互提示信息不全,使用起来不太方便。浏览nginxwiwk时看到一个启动脚本,想尝试一下。脚本地址:http://wiki.nginx.org/RedHatNginxInitScript配置好参数和启动脚本权限后启动nginx使用时报如下错误。/etc/init.d/nginxstartgr

之前使用的nginx启动脚本交互提示信息不全,使用起来不太方便。浏览nginx wiwk时看到一个启动脚本,想尝试一下。
脚本地址:http://wiki.nginx.org/RedHatNginxInitScript

配置好参数和启动脚本权限后启动nginx使用时报如下错误。

/etc/init.d/nginx start
grep:无法识别的选项“--prefix=/usr/local/nginx.base”
用法: grep [选项]... PATTERN [FILE]...
试用‘grep --help’来获得更多信息。
useradd:无法识别的选项“--prefix=/usr/local/nginx.base”

细看启动脚本,找到这段内容。

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 $user
   fi
   optiOns=`$nginx -V 2>&1 | grep 'configure arguments:'`
   for opt in $options; do
       if [ `echo $opt | grep '.*-temp-path'` ]; then
           value=`echo $opt | cut -d "=" -f 2`
           if [ ! -d "$value" ]; then
               # echo "creating" $value
               mkdir -p $value && chown -R $user $value
           fi
       fi
   done
}

脚本每次都会调用nginx -V,取得编译时用--user指定的用户名。如果指定的用户不存在,则会创建该用户。还会根据编译的参数创建临时目录,并且修改权限。没有考虑未使用--user指定用户的场景,我编译nginx时没有加--user参数,就报错了。

重新编译了nginx,添加--user参数,指定用户以后正常了。这个启动脚本考虑的情况较多,交互提示较之前的更为人性化,效果不错。如果应用场景不允许重新编译nginx,可以直接跳过 make_dirs() 这个函数,在 # make required directories 上面加入一行 return 1 即可。

附本人nginx编译参数,系统是CentOS 6.3。

./configure --prefix=/usr/local/nginx.base \
--user=www \
--group=www \
--pid-path=/var/run/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--with-http_ssl_module \
--with-http_flv_module \
--with-http_realip_module \
--with-http_gzip_static_module \
--with-http_stub_status_module \
--with-mail --with-mail_ssl_module \
--http-client-body-temp-path=/usr/local/nginx.base/tmp/client \
--http-proxy-temp-path=/usr/local/nginx.base/tmp/proxy \
--http-fastcgi-temp-path=/usr/local/nginx.base/tmp/fastcgi \
--http-uwsgi-temp-path=/usr/local/nginx.base/tmp/uwsgi \
--http-scgi-temp-path=/usr/local/nginx.base/tmp/scgi

推荐阅读
  • 在CentOS 7中部署Nginx并配置SSL证书
    本文详细介绍了如何在CentOS 7操作系统上安装Nginx服务器,并配置SSL证书以增强网站的安全性。适合初学者和中级用户参考。 ... [详细]
  • 解决宝塔面板Nginx反向代理缓存问题
    本文介绍如何在宝塔控制面板中通过编辑Nginx配置文件来解决反向代理中的缓存问题,确保每次请求都能从服务器获取最新的数据。 ... [详细]
  • 如何在Win10系统下通过VMware 14 Pro安装CentOS 7
    本文详细介绍了在Windows 10操作系统中使用VMware Workstation 14 Pro搭建CentOS 7虚拟环境的步骤,包括所需工具、安装过程及系统配置等。 ... [详细]
  • Docker安全策略与管理
    本文探讨了Docker的安全挑战、核心安全特性及其管理策略,旨在帮助读者深入理解Docker安全机制,并提供实用的安全管理建议。 ... [详细]
  • 本文详细介绍了在 CentOS 系统中如何创建和管理 SWAP 分区,包括临时创建交换文件、永久性增加交换空间的方法,以及如何手动释放内存缓存。 ... [详细]
  • 利用 Calcurse 在 Linux 终端高效管理日程与任务
    对于喜爱使用 Linux 终端进行日常操作的系统管理员来说,Calcurse 提供了一种强大的方式来管理日程安排、待办事项及会议。本文将详细介绍如何在 Linux 上安装和使用 Calcurse,帮助用户更有效地组织工作。 ... [详细]
  • 本文介绍了SELinux的两种主要工作模式——强制模式和宽容模式,并提供了如何在CentOS 7中正确启用和配置SELinux的方法,以及在遇到登录问题时的解决策略。 ... [详细]
  • 龙蜥社区开发者访谈:技术生涯的三次蜕变 | 第3期
    龙蜥社区的开发者们通过自己的实践和经验,推动着开源技术的发展。本期「龙蜥开发者说」聚焦于一位资深开发者的三次技术转型,分享他在龙蜥社区的成长故事。 ... [详细]
  • CentOS下ProFTPD的安装与配置指南
    本文详细介绍在CentOS操作系统上安装和配置ProFTPD服务的方法,包括基本配置、安全设置及高级功能的启用。 ... [详细]
  • 本文介绍了Linux操作系统的核心组成部分——内核及其版本分类,以及市面上常见的几种Linux发行版,旨在为初学者提供一个清晰的学习路径。 ... [详细]
  • 如何在Mozilla Firefox中调整GIF动画的循环次数
    本文介绍了如何通过调整Mozilla Firefox的高级设置来控制GIF动画的播放次数,帮助用户根据个人喜好自定义浏览体验。 ... [详细]
  • 本文详细介绍如何在华为鲲鹏平台上构建和使用适配ARM架构的Redis Docker镜像,解决常见错误并提供优化建议。 ... [详细]
  • 如何处理PHP缺少扩展的问题
    本文将详细介绍如何解决PHP环境中缺少扩展的问题,包括检查当前环境、修改配置文件以及验证修改是否生效的具体步骤,帮助开发者更好地管理和使用PHP扩展。 ... [详细]
  • Kafka入门指南
    本文将详细介绍如何在CentOS 7上安装和配置Kafka,包括必要的环境准备、JDK和Zookeeper的配置步骤。 ... [详细]
  • 本文详细介绍了如何使用Heartbeat构建一个高可用性的Apache集群,包括安装、配置和测试步骤。 ... [详细]
author-avatar
王剑波200813
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有