Nginx 安装的权限问题

Nginx 安装的权限问题

安装详细步骤:项目手动部署到Linux服务器
在公司里,往往不能直接使用 root 用户来进行 Nginx 的安装,这就意味着安装 Nginx 的时候会出现各种权限问题。

报错 1

Nginx 默认会安装在 /usr/local/nginx 下,但是可能没有直接操作该目录的权限。

一开始使用的是:

make install DESTDIR=/home/song/services/nginx/home

在编译安装 make install 的时候,指定输出目录。但是启动的时候,仍然报错:

在这里插入图片描述

还是去操作 /usr/local/nginx 这个目录了。

然后想着,手动在 nginx.conf 中指定一下日志目录吧:

vim /home/song/services/nginx/build/usr/local/nginx/conf/nginx.conf

这里参考了:https://www.cnblogs.com/wangchengxu/p/14172261.html

但还是没用?

后来发现,其实在使用 configure 设置系统配置参数的时候,可以使用 --prefix 指定前缀,这里才是指定安装目录。

./configure --prefix=/home/song/services/nginx/home

--prefixDESTDIR 的区别:

--prefix

  • 指定了 Nginx 的安装目录。例如,使用 --prefix=/usr/local/nginx,那么 Nginx 将会被安装到 /usr/local/nginx 目录下。
  • 这个目录是 Nginx 的“根目录”,配置文件、二进制文件、日志文件等都会放在这个目录下。
  • --prefix 是永久性的,它决定了 Nginx 的安装位置。

DESTDIR

  • 是一个临时性的安装目录前缀,用于打包和分发软件。
  • 例如,使用 make install DESTDIR=/tmp/nginx,那么 Nginx 会安装在 /tmp/nginx/usr/local/nginx(假设 --prefix/usr/local/nginx)。
  • DESTDIR 的用途是在不实际安装到最终目的地的情况下构建包。这样就可以将整个目录结构打包,然后移动到其他机器或目录。
  • 使用 DESTDIR 不会影响 Nginx 的实际运行路径或配置文件路径。

报错 2

nginx: [warn] the "user" directive makes sense only if the master process runs with super-user privileges, ignored in /home/song/services/nginx/home/conf/nginx.conf:2

这个报错也是权限问题,网上搜了一堆,大部分是说用 root 来启动 nginx。但是在公司里,根本不会给你 root 用户。。。

后面发现这个报错也无关紧要,ps -ef | grep nginx 发现 nginx 跑的好好的。

报错 3

nginx: [emerg] bind() to 0.0.0.0:80 failed (13: Permission denied)

权限不够,80 端口可能需要 root 权限才能绑定,在 nginx 配置文件中,换一个监听端口即可,比如 8181。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值