Загрузка файла 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
работал на меня.