Загрузка файла PHP в AWS EC2

В настоящее время я работаю над загрузкой файлов на основе PHP в экземпляр AWS EC2. По сути, я просто хочу загрузить zip-файлы в подкаталог с именем /uploads/. Позвольте мне показать вам мой код:

<form enctype="multipart/form-data" action="index.php" method="POST">
   <input id="file-0a" class="file" name="zipfile" type="file" data-show-preview="false">
</form>

Таким образом, любой загруженный файл должен находиться в $_FILES['zipfile']

Когда дело доходит до PHP, мой код выглядит следующим образом:

<?php 

if(isset($_FILES[zipfile])){
    error_reporting(E_ALL);

    $uploaddir = '/uploads/';
    $uploadfile = $uploaddir . basename($_FILES['zipfile']['name']);

    echo '<pre>';
    if (move_uploaded_file($_FILES['zipfile']['tmp_name'], $uploadfile)) {
        echo "Success\n";
    } else {
        echo "Error!\n";
}

echo 'Debugging:';
print_r($_FILES);

print "</pre>";
}

?>

Print_r показывает всю необходимую информацию, уровень ошибок равен 0, и я получаю имя tmp_name вроде /tmp/phpy3lQBV. Но я все еще получаю ошибку от остальной части. Поэтому я предполагаю, что move_uploaded_files возвращает false.

Когда дело доходит до запуска сценария локально на XAMPP, все работает правильно. Я установил chmod на 777 на экземпляре EC2. Экземпляр EC2 работает под управлением Apache 2.4.7 и PHP 5.5.9

Я надеюсь, что кто-то может помочь мне с этим.

Ура, Хендрик

1 ответ

Решение

Я решил проблему, назначив www-data как пользователь для /var/www/html каталог. До этого было установлено значение "ubuntu", которое по умолчанию назначается AWS.

В принципе sudo chown -R www-data var/www/html работал на меня.

Другие вопросы по тегам