File upload 简单php图像上传不适用于nginx(适用于apache)

File upload 简单php图像上传不适用于nginx(适用于apache),file-upload,nginx,upload,php,File Upload,Nginx,Upload,Php,我是nginx的新手。这在apache上有效。我使用vpssim安装了nginx、PHP-FPM、Centos6.5 x64 没有文件。目录为空,但脚本显示成功。“表示存储在example.jpg中” html upload.php <?php $allowedExts = array("gif", "jpeg", "jpg", "png"); $temp = explode(".", $_FILES["file"]["name"]); $extension = end($t

我是nginx的新手。这在apache上有效。我使用vpssim安装了nginx、PHP-FPM、Centos6.5 x64

没有文件。目录为空,但脚本显示成功。“表示存储在example.jpg中”

html



upload.php

<?php
$allowedExts = array("gif", "jpeg", "jpg", "png");
  $temp = explode(".", $_FILES["file"]["name"]);
  $extension = end($temp);
  if ((($_FILES["file"]["type"] == "image/gif")
  || ($_FILES["file"]["type"] == "image/jpeg")
  || ($_FILES["file"]["type"] == "image/jpg")
  || ($_FILES["file"]["type"] == "image/pjpeg")
  || ($_FILES["file"]["type"] == "image/x-png")
  || ($_FILES["file"]["type"] == "image/png"))
  && ($_FILES["file"]["size"] < 100000)
  && in_array($extension, $allowedExts))
    {
    if ($_FILES["file"]["error"] > 0)
      {
      echo "Return Code: " . $_FILES["file"]["error"] . "<br>";
      }
    else 
      {

        $fileName = $temp[0].".".$temp[1];
        $temp[0] = rand(0, 3000); //Set to random number
        $fileName;

      if (file_exists("" . $_FILES["file"]["name"]))
        {
        echo $_FILES["file"]["name"] . " already exists. ";
        }
      else
        {
        move_uploaded_file($_FILES["file"]["tmp_name"], "" . $_FILES["file"]["name"]);
        echo "Stored in: " . "" . $_FILES["file"]["name"];
        }
      }
    }
  else
    {
    echo "Invalid file";
    }
?>

得到了答案。我从这里得到了一些帮助。

这是一个组权限问题。我更改了组的权限

对于正常的nginx安装/home/example.com/public\u html将不起作用。检查您的目录,可能是/var/www/mysite/

用于VPSSIM安装。默认情况下,VPSSIM创建组nginx

如何解决:

检查您的许可

ls -ld /home/example.com/public_html
得到像这样的东西

drwxr-xr-x 2 root nginx 4096 Jan 24 21:06 /home/example.com/public_html
现在更改组nginx的写入权限

sudo chmod -vR g+w /home/example.com/public_html
检查更改

ls -ld /home/example.com/public_html

drwxrwxr-x 2 root nginx 4096 Jan 24 21:06 /home/example.com/public_html

要理解ls-ld check

您可以使用VPSSIM中的修复错误Chmod,Chown函数来修复该错误

VPSSIM菜单==>工具-插件(选项16)==>修复错误Chmod,chown(选项5)==>按Enter键。
现在一切都会好起来的

那你有什么问题?对不起。apache是我的另一台服务器,这台服务器只有nginx。为什么不添加上载目录并使服务器崩溃
ls -ld /home/example.com/public_html

drwxrwxr-x 2 root nginx 4096 Jan 24 21:06 /home/example.com/public_html