繁体   English   中英

Nginx,PHP中的文件上传权限错误

[英]File Upload Permissions error in Nginx, PHP

我正在用php运行本地nginx服务器,以编写一段基本上具有上传功能的代码。 我需要将图像上传到tmp文件夹,然后继续工作。 但我想文件夹权限coz php会发回错误UPLOAD_ERR_CANT_WRITE出现一些问题。

ls -l在目录中:

drwxr-xr-x 2 root  root      4096 Mar 22 19:20 assets
-rw-r--r-- 1 root  root      1564 Mar 22 19:20 cropper.php
drwxr-xr-x 5 root  root      4096 Mar 22 19:20 files
drwxr-xr-x 2 root  root      4096 Mar 22 19:20 images
-rw-r--r-- 1 root  root     10018 Mar 22 19:20 index.htm
-rw-r--r-- 1 root  root      7972 Mar 22 19:20 second-page.php
drwxrwxr-x 2 arjun www-data  4096 Mar 22 19:20 tmp

我试图更改权限,但它们继续失败。 那么我如何摆脱这种混乱呢?

确保php作为www-data组运行。 它不应该。 在配置中查找“组”。

简单的方法是

ps aux | grep php

看看php守护程序用户和该用户的chown tmp文件夹。

记住,php通常不是由与nginx相同的用户运行,它们是不同的进程

尽管“组权限”设置为www-data但看起来用户仍会分配给您自己。 如果您cd到目录并运行chown -Rf www-data:www-data ,它将把tmp目录的所有者设置为Web服务器,然后应允许php写入该文件夹。

=> php-fpm需要写访问权限,而不是nginx。 php-fpm进程以uid 1000而不是www-data的身份运行

所以你可以chgrp -R 1000 tmp

理想情况下,您将限制对www-data和php-fpm的目录具有写访问权限,同样,将其限制为例如WordPress中的上载目录。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM