【问题标题】:Simple php image upload not working on nginx (works on apache)简单的 php 图片上传在 nginx 上不起作用(适用于 apache)
【发布时间】:2015-01-11 20:05:16
【问题描述】:

我是 nginx 新手。这适用于apache。我使用 vpssim 安装了 nginx、PHP-FPM、Centos6.5 x64。

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

html

<form enctype="multipart/form-data" method="post" action="upload.php">
<input type="file" name="file" /><br />
<input type="submit" value="Upload File" />
</form>

上传.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";
    }
?>

【问题讨论】:

  • 那你的问题是什么
  • 对不起。 apache是​​我的另一台服务器,这个服务器只有nginx。
  • 为什么不添加上传目录和测试

标签: file-upload nginx upload php


【解决方案1】:

得到了答案。我从这里得到了一些帮助。 https://askubuntu.com/questions/365087/grant-a-user-permissions-on-www-data-owned-var-www

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

对于正常的 nginx 安装 /home/example.com/public_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 检查https://superuser.com/questions/171858/how-do-i-interpret-the-results-of-the-ls-l-command

【讨论】:

    【解决方案2】:

    您可以使用 VPSSIM 中的 Fix error Chmod, Chown 功能来修复该错误。

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

    【讨论】:

    • anh 使服务器崩溃
    猜你喜欢
    • 1970-01-01
    • 2015-02-06
    • 2012-10-02
    • 2017-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-19
    • 1970-01-01
    相关资源
    最近更新 更多