有时候我们的网站根目录会从一个目录迁移到另一个目录,如果我们服务器使用的是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服务器的网站权限问题的更多相关文章

  1. 2.4 Nginx服务器基础配置指令

    2.4.1 nginx.conf文件的结构 2.4.2配置运行Nginx服务器用户(组) 2.4.3配置允许生成的worker process数 2.4.4 配置Nginx进程PID存放路径 2.4. ...

  2. Linux服务器架设篇,Nginx服务器的架设

    1.安装 nginx依赖包 (1)安装pcre yum install pcre-devel (2)安装openssl yum -y install openssl-devel (3)安装zlib y ...

  3. nginx服务器中的安全配置

    一.关闭SELinux 安全增强型Linux(SELinux)的是一个Linux内核的功能,它提供支持访问控制的安全政策保护机制. 但是,SELinux带来的附加安全性和使用复杂性上不成比例,性价比不 ...

  4. 重命名nginx服务器

    为了防止被黑客扫描到web服务器信息,通过相对应的web服务器信息找出对应的版本漏洞,从而对web服务器进行入侵,nginx虽然功能强大,但是也是软件,软件就可能会有漏洞,例如nginx-0.6.32 ...

  5. Nginx 之四: Nginx服务器的rewrite、全局变量、重定向和防盗链相关功能

    一:Nginx 后端服务器组的配置: 1.upstream: 用于设置后端服务器组的主要指令,upstream类似于之前的server块或http块,用法如下: upstreame Myserver{ ...

  6. FreeBSD上构架Nginx服务器

    这篇文章主要记录作者如何在FreeBSD上构架Nginx服务器.作者采用下载该程序的一个源代码包手动编译的方法,而不是使用包管理工具.这样做有两个原因:首先包质量不能保证,或无效或版本旧:其次需要在编 ...

  7. Nginx服务器的rewrite、全局变量、重定向和防盗链相关功能

    一:Nginx 后端服务器组的配置: 1.upstream: 用于设置后端服务器组的主要指令,upstream类似于之前的server块或http块,用法如下: upstreame Myserver{ ...

  8. nginx服务器的rewrite功能

    nginx编译的时候默认是把rewrite功能编辑进去的,但是因为rewrite需要使用正则表达式,因此需要安装pcre依赖包. yum install -y pcre pcre-install re ...

  9. 在Nginx服务器上屏蔽IP

    采集和防止采集是一个经久不息的话题,一方面都想搞别人的东西,另一方面不想自己的东西被别人搞走. 本文介绍如何利用nginx屏蔽ip来实现防止采集,当然也可以通过iptable来实现. 1.查找要屏蔽的 ...

随机推荐

  1. Java 并发-任务执行.

    首先来看一下,任务的定义: 所谓的任务,就是抽象,离散的工作单位.你可以简单理解为代码级别的 (Runnable接口) 大多数并发应用程序都是围绕着任务进行管理的. 看一小段代码: package c ...

  2. 【POJ 3176】Cow Bowling

    题 Description The cows don't use actual bowling balls when they go bowling. They each take a number ...

  3. 人工免疫算法-python实现

    AIAIndividual.py import numpy as np import ObjFunction class AIAIndividual: ''' individual of artifi ...

  4. hihocoder 1181 欧拉路.二

    传送门:欧拉路·二 #1181 : 欧拉路·二 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 在上一回中小Hi和小Ho控制着主角收集了分散在各个木桥上的道具,这些道具其 ...

  5. Yii2.0 执行流程分析

    1 index.php 2 ---->引入 vendor/auto_load.php 3 auto_load.php 4 ---->引入 ventor/composer/autoload_ ...

  6. Swift开发学习-02 变量和常量

    本教程是笔者在自学IOS/Swift知识的总结,适用于通过对Objictive C编程的运用,并需要了解基于iOS程序的iPhone和iPad的程序员.做一个有bigger的’攻城狮‘,有尊严的工作, ...

  7. hdu 2111 Saving HDU

    解题思路: 首先做本题,要清楚题意的要求. 1.读取数据到结构体数组中,然后按其价值降序(价值最大的放在最上面). 2.比较给定的M (包裹容量),如果大于当前宝物的体积,则计算总价值+= 宝物的总价 ...

  8. WPF 动态布局Grid

    //开启线程加载 Action a = () => { ; ; var path = "../../face_img/"; var files = Directory.Get ...

  9. linux命令别名的使用

    语 法:alias[别名]=[指令名称] 1,查看该用户下的别名: alias 2,有的系统里没有ll这个命令,原因就是没有定义ll='ls -l --color=tty'这个别名 如果想永久生效,就 ...

  10. kindle paperwhite折腾记

    在亚马逊官网上买了一个kindle paperwhite 一代(849元) , 打算再买个皮套, 淘宝店  http://detail.tmall.com/item.htm?spm=a230r.1.1 ...