2015-01-11 1 views
1

Я новичок в nginx. Это работает на apache. У меня есть nginx, PHP-FPM, Centos6.5 x64, установленный с помощью vpssim.Простая загрузка изображения 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

Вы можете использовать ошибку Fix Chmod, Чаун функцию в VPSSIM, чтобы исправить эту ошибку.

Меню VPSSIM ==> Инструменты - дополнения (вариант # 16) ==> Исправлена ​​ошибка Chmod, chown (Вариант № 5) ==> Нажмите Enter. Теперь все будет в порядке для вас.

+0

anh make server crash – lean

Смежные вопросы