2015-01-11 90 views
1

我是nginx新手。這適用於Apache。我使用vpssim安裝了nginx,PHP-FPM,Centos6.5 x64。簡單的php圖像上傳不能在nginx上工作(在Apache上工作)

沒有文件。目錄是空的,但腳本顯示成功。 「雲存儲在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> 

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"; 
    } 
?> 
+0

那麼你最新的問題 –

+0

對不起。 Apache是​​我的另一臺服務器,這臺服務器只有nginx。 – styxtrooper

+0

爲什麼不添加上傳目錄和測試 –

回答

2

得到了答案。我從這裏得到了一些幫助。 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

-1

可以使用修正錯誤輸入chmod,喬恩功能VPSSIM來修復錯誤。

VPSSIM菜單==>工具 - 插件(選項#16)==>修正錯誤Chmod,chown(選項#5)==>按Enter鍵。 現在一切都會好起來的。

+0

anh使服務器崩潰 – lean