nginx服务器的网站权限问题
有时候我们的网站根目录会从一个目录迁移到另一个目录,如果我们服务器使用的是nginx或者Apache,我们一般会配置好网站根目录后然后往直接把网站解压或者上传到根目录中,这样引起的问题是无法对对文件进行任何的操作导致网站的异常,这在框架中最为常见,本地运行好好的网站,上传到服务器之后突然就不能访问了,出现很多错误,这就是在Linux下存在的权限问题,网上有些方法是很粗暴的使用chmod -R 777 dirname把所有的文件权限全部打开,其实这样能解决问题,但是不是最好的解决方案,我们如果理解Linux系统的用户权限那么问题就有更好的解决方案,下面以nginx服务器为例看一下
首先默认的网站目录是755权限的并且我们在root用户下的默认权限也是该用户的权限,就是目录的所属用户和用户组都是root,当我们访问网站时,浏览器发出请求,服务端相应的资源处理请求,如果涉及到文件的修改或新建操作时,服务端程序负责执行,由于服务端程序是由nginx和相应的语言解释模块负责执行的,所以首先服务器要有权限修改网站目录,我们打开nginx服务器下的配置文件nginx.conf,第一行就是nginx执行的用户和组的设置

然后重启nginx服务器
如果是php的话,那么目前比较常用的是nginx会交由php-fpm模块去执行相应的操作,
所以还应该在php-fpm.conf中修改
user=www
group=www

修改之后重启php-fpm模块,到这里用户配置就完成了
然后我们可以新建一个专门用于网站和ftp上传文件的用户,该用户是不登录的所以建立的时候要使用/sbin/nologin来建,我们看到nginx服务器的权限是www所以此时我们的做法是把网站根目录的权限改为www,命令为:
chown -R -v www:root /www/wwwroot
这样的话网站用户和组的的权限分别是www和root,服务器作为用户的读写是没有任何问题的,这个时候如果服务端自动建立的文件用户权限就为www组权限也为www,这样就具有完全的控制权了并且权限限制的刚好,
另外有些时候我们使用的网页富文本编辑器会遇到权限的问题,导致无法上传文件或者建立目录,这个时候我们只需要手动更改上传目录的权限为777即可,比如:chmod 777 upload 可能原因是编辑器前后端使用的是js交互,所以并不完全是nginx服务器的缘故
经过以上的步骤,在Linux上部署网站时,权限问题就解决了
nginx服务器的网站权限问题的更多相关文章
- 2.4 Nginx服务器基础配置指令
2.4.1 nginx.conf文件的结构 2.4.2配置运行Nginx服务器用户(组) 2.4.3配置允许生成的worker process数 2.4.4 配置Nginx进程PID存放路径 2.4. ...
- Linux服务器架设篇,Nginx服务器的架设
1.安装 nginx依赖包 (1)安装pcre yum install pcre-devel (2)安装openssl yum -y install openssl-devel (3)安装zlib y ...
- nginx服务器中的安全配置
一.关闭SELinux 安全增强型Linux(SELinux)的是一个Linux内核的功能,它提供支持访问控制的安全政策保护机制. 但是,SELinux带来的附加安全性和使用复杂性上不成比例,性价比不 ...
- 重命名nginx服务器
为了防止被黑客扫描到web服务器信息,通过相对应的web服务器信息找出对应的版本漏洞,从而对web服务器进行入侵,nginx虽然功能强大,但是也是软件,软件就可能会有漏洞,例如nginx-0.6.32 ...
- Nginx 之四: Nginx服务器的rewrite、全局变量、重定向和防盗链相关功能
一:Nginx 后端服务器组的配置: 1.upstream: 用于设置后端服务器组的主要指令,upstream类似于之前的server块或http块,用法如下: upstreame Myserver{ ...
- FreeBSD上构架Nginx服务器
这篇文章主要记录作者如何在FreeBSD上构架Nginx服务器.作者采用下载该程序的一个源代码包手动编译的方法,而不是使用包管理工具.这样做有两个原因:首先包质量不能保证,或无效或版本旧:其次需要在编 ...
- Nginx服务器的rewrite、全局变量、重定向和防盗链相关功能
一:Nginx 后端服务器组的配置: 1.upstream: 用于设置后端服务器组的主要指令,upstream类似于之前的server块或http块,用法如下: upstreame Myserver{ ...
- nginx服务器的rewrite功能
nginx编译的时候默认是把rewrite功能编辑进去的,但是因为rewrite需要使用正则表达式,因此需要安装pcre依赖包. yum install -y pcre pcre-install re ...
- 在Nginx服务器上屏蔽IP
采集和防止采集是一个经久不息的话题,一方面都想搞别人的东西,另一方面不想自己的东西被别人搞走. 本文介绍如何利用nginx屏蔽ip来实现防止采集,当然也可以通过iptable来实现. 1.查找要屏蔽的 ...
随机推荐
- hasSet,TreeSet,ArrayList,LinkedList,Vector,HashMap,HashTable,TreeMap利用Iterator进行输出
基础类,没有重写hashCode()和equals()方法: package niukewang; import java.util.Objects; public class setClass { ...
- 装了虚拟机,但是没有虚拟网卡vmnet0 vmnet1 vmnet8
在服务里面启动图中的两个服务,在再你的虚拟网络编辑器里面点恢复默认设置就会出现了,我的是win8.1,默认这两个服务是手动启动的,可能是优化软件优化的结果 我是win10 里面显示以太网3 和 4, ...
- BZOJ3626 LCA
Description 给出一个n个节点的有根树(编号为0到n-1,根节点为0).一个点的深度定义为这个节点到根的距离+1. 设dep[i]表示点i的深度,LCA(i,j)表示i与j的最近公共祖先. ...
- UVa 11988 Broken Keyboard (a.k.a. Beiju Text)
题目复制太麻烦了,甩个链接 http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=18693 直接模拟光标操作时间复杂度较高,所以用链 ...
- Record is locked by another user --Oracle行锁解锁
Oracle修改表中记录时出现record is locked by another user的问题 在操作表时没有commit,导致表被锁,只要执行下面两行语句,就可以了将行锁解锁了. 1. ...
- Alpha阶段个人总结
一. 工作总结 第一次接触通信和服务端框架,在前期准备阶段学习了很多不同的技术,也相应花费了很多时间去尝试.刚开始时还不知道框架这种东西,准备自己写,于是学习并尝试了一些简单的HTTP通信,比较麻烦, ...
- PS图层混合模式实例详解
PS中的很多概念都和Core Graphics中的概念相通,比如蒙版.路径.裁剪.混合模式等等.如果你对Core Graphics中的混合模式不太理解,阅读本篇文章能让你对Core Gra ...
- JAVA的面向对象编程--------课堂笔记
面向对象主要针对面向过程. 面向过程的基本单元是函数. 什么是对象:EVERYTHING IS OBJECT(万物皆对象) 所有的事物都有两个方面: 有什么(属性):用来描述对象. 能够做什么 ...
- C++中argc和argv
C++中argc和argv C/C++中关于main()函数中argc 和argv[]的说明 main(int argc,char *argv[]); argc代表命令行输入参数的个数 argv存储了 ...
- hdu 2049 不容易系列之(4)——考新郎
在本博AC代码中,求CNM用的是Anm/amm没用阶乘的形式,两者皆可 #include <stdio.h> int main(void) { long long a,b,larr[21] ...