nginx 出现 13: Permission denied

原文地址:http://www.nginx.cn/695.html

前段时间把程序员的wordpress升级到3.5.1,本身如果没有特别的插件,在后台更新就能完成。

更新完成后在后台发布文章,编辑器不能点击可视化标签,只能显示html标签,看了下js控制台提示ReferenceError: tinyMCE is not defined 3.5。

直觉以为升级哪里有问题,简单粗暴的重装了,可是还是不行,这时候就觉得可能是nginx哪里配置的问题了。

查看了一下日志文件,发现有下面的错误提示:

2013/03/13 01:22:17 [crit] 3331#0: *10 open() "/usr/local/lnmp/nginx/fastcgi_temp/3/00/0000000003" failed (13: Permission denied) while reading upstream, client: 124.42.13.230, server: 264.cn, request: "GET /wp-admin/load-scripts.php?c=0&load%5B%5D=jquery,utils,plupload,plupload-html5,plupload-flash,plupload-silverlight,plupload-html4,json2&ver=3.5.1
HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "264.cn", referrer: "http://www.nginx.cn/wp-admin/post-new.php"

很明浏览器只加载了部分页面,原因是Permission denied。

首先确认工作进程(worker process)的用户:

检查配置文件nginx.conf的user指令

user  www-data;

后者执行命令

#ps aux | grep "nginx: worker process" | awk '{print $1}'

www-data

都可以得到nginx工作进程的运行用户

 

检查nginx的proxy_temp目录的所有者,

drwx------  2 root root   4096 Mar  3 03:28 proxy_temp

可以看到proxy_temp的所有者不是www-data,修改目录所有者为www-data即可。

chown -R www-data:www-data proxy_temp

 

通过以上的步骤,wordpress就可以正常的显示,不会出现后台的js错误了。

分析下failed (13: Permission denied) while reading upstream问题的原因

首先看一下nginx 反向代理参数说明

proxy_connect_timeout 600; #nginx跟后端服务器连接超时时间(代理连接超时)
proxy_read_timeout 600; #连接成功后,后端服务器响应时间(代理接收超时)
proxy_send_timeout 600; #后端服务器数据回传时间(代理发送超时)
proxy_buffer_size 32k; #设置代理服务器(nginx)保存用户头信息的缓冲区大小
proxy_buffers 4 32k; #proxy_buffers缓冲区,网页平均在32k以下的话,这样设置
proxy_busy_buffers_size 64k; #高负荷下缓冲大小(proxy_buffers*2)
proxy_temp_file_write_size 64k; #设定缓存文件夹大小,大于这个值,将从upstream服务器传

问题就出在proxy_temp_file_write_size上,当你的文件超过该参数设置的大小时,nginx会先将文件写入临时目录(缺省为nginx安装目下/proxy_temp目录),

如果nginx对prxoy_temp没有权限就会写不进去,结果就是只显示部分页面。

我遇到这个案例用工具查看了一下,post-new.php这个页面大小事94,超过了64k就要符合我们上面的分析。

时间: 2024-12-03 21:52:12

nginx 出现 13: Permission denied的相关文章

socket() failed (13: Permission denied) while connecting to upstream

/*************************************************************************** * socket() failed (13: Permission denied) while connecting to upstream * 说明: * 这个错误隐藏的挺深的,观察了许久,才从ps aux中的执行用户中找出来. * * 2016-9-26 深圳 南山平山村 曾剑锋 ******************************

sqlplus时报Linux-x86_64 Error: 13: Permission denied

在本机上非oracle用户运行sqlplus时,报以下错误:[cpdds@node1 ~]$ sqlplus cpdds_pdata/cpdds_pdata SQL*Plus: Release 10.2.0.4.0 - Production on 星期五 4月 27 13:43:16 2012 Copyright (c) 1982, 2007, Oracle.  All Rights Reserved. ERROR: ORA-01034: ORACLE not available ORA-271

Python UDP broadcast PermissionError: [Errno 13] Permission denied

/********************************************************************** * Python UDP broadcast PermissionError: [Errno 13] Permission denied * 说明: * 使用Python3做UDP广播,遇到这个权限问题,当时就一阵惊讶,第一看 * 到这种无权限的问题. * * 2016-12-10 深圳 南山平山村 曾剑锋 ***********************

分享Apache 403 error, (13)Permission denied: access to / denied解决办法

CentOS系统 检查了一圈httpd.conf和目录权限,均没有发现问题. 最后,看了这篇文章,发现是因为系统启动了SELINUX导致的. http://stackoverflow.com/questions/8816836/apache-403-error-13permission-denied-access-to-denied-fedora-16 关闭SELINUX setenforce 0 或 vim /etc/selinux/config 修改 SELINUX=enforcing 改成

Nginx应对Permission denied和File not found的配置_nginx

13: Permission denied前段时间把程序员的wordpress升级到3.5.1,本身如果没有特别的插件,在后台更新就能完成. 更新完成后在后台发布文章,编辑器不能点击可视化标签,只能显示html标签,看了下js控制台提示ReferenceError: tinyMCE is not defined 3.5. 直觉以为升级哪里有问题,简单粗暴的重装了,可是还是不行,这时候就觉得可能是nginx哪里配置的问题了. 查看了一下日志文件,发现有下面的错误提示: 2013/03/13 01:

oracle监听器启动错误-TNS-12546: TNS:permission denied

今天一台数据库服务器登录不上,报TNS-12541: TNS:no listener 到服务器上看下监听器状态 oracle@linux-34:~> lsnrctl status LSNRCTL for Linux: Version 11.1.0.6.0 - Production on 14-OCT-2011 09:12:37 Copyright (c) 1991, 2007, Oracle. All rights reserved. Connecting to (DESCRIPTION=(AD

NFS挂载远程目录后访问提示“Permission denied”

下午访问一台新部署的web,打开一个商家主页,图片都不能正常显示.上服务器进入相关目录,提示权限拒绝.因为图片都是存在一台专门的服务器,web机都是通过nfs访问图片资源.所以应该是nfs权限的问题导致. 关于权限问题,一般都是nfs server的/etc/exports文件没有设置好导致的.查看文件 [admin@nfsserver ~]# cat /etc/exports /home/www/images 192.168.0.37(rw,sync,anonuid=497,anongid=4

为什么在 eclipse for linux 运行不了java,显示Permission denied

问题描述 为什么在 eclipse for linux 运行不了java,显示Permission denied 编译HelloWorld public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World!!"); } } 出现一个对话框: Exception occurred executing command line. Cannot run prog

Linked Server: EXECUTE permission denied on object 'xp_prop_oledb_provider', database 'master', owner 'dbo'

问题出现环境:         使用SQL Server Management Studio 2008 连接到SQL Server 2000的数据库,点击其中一个Oracle链接服务器,单击"目录"时,Linked Server弹出如下错误信息.使用另外一个拥有sysadmin角色的账号登录检查发现没有此类问题. 错 误详细信息如下所示:有用的信息只有一条:EXECUTE permission denied on object 'xp_prop_oledb_provider', dat