#php #amazon-ec2
#php #amazon-ec2
Вопрос:
Я только что перенес проект в AWS на экземпляре Ubuntu.
Это серверный проект PHP.
Я могу работать с базой данных MySQL, и я могу загружать файлы с помощью Filezilla. Моя проблема в том, что я пытаюсь сохранить файлы в usuarios
папке на экземпляре, используя этот PHP-файл:
<?php
if ((isset($_POST["enviado"])) amp;amp; ($_POST["enviado"]=="form1")){
$length = 6;
$randomString = substr(str_shuffle("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"), 0, $length);
$prefijo = $randomString;
$nombre_archivo = $_FILES['userfile']['name'];
$file_upload = "true";
if ($_FILES['userfile']['size']>2000000){
$file_upload="false";
}
if ($file_upload == 'true'){
$str=preg_replace('/s /', '', $nombre_archivo);
$str =preg_replace('~amp;([a-z]{1,2})(acute|cedil|circ|grave|lig|orn|ring|slash|th|tilde|uml);~i', '$1', htmlentities($str, ENT_QUOTES, 'UTF-8'));
move_uploaded_file($_FILES['userfile']['tmp_name'],"usuarios/".$prefijo.$str);
?>
<script>
window.opener.document.getElementById("imagen").value="<?php echo $prefijo.$str;?>";
self.close();
</script>
<?php
}
else
{
$texto = $lang['LIMIT_FILE'];
echo $texto."<BR><BR><BR>";?>
<input type='submit' name='submit' value='Reintentar' onClick="window.location.reload()" />
<?php }
?>
<?php
}
else {?>
<form id="form1" name="form1" method="post" action="subirfoto.php" data-ajax="false" enctype="multipart/form-data">
<p>
<input name="userfile" type="file" />
</p>
<p>
<input type="submit" name="button" id="button" value="Upload Picture" />
<input type="hidden" name="enviado" value="form1" />
</p>
</form>
<?php }?>
но файлы не сохраняются в папке.
Я предполагаю, что это может быть проблема с правами доступа к папкам.
Проект отлично работает на другом веб-сервере, но не на этом экземпляре Ubuntu на AWS.
Что я должен проверить и изменить, чтобы сохранить файлы в этой папке сервера?
Комментарии:
1. XHTML — странный выбор для 2020 года … и еще более странный, поскольку ваш XHTML недействителен.
2. @Quentin, это старый PHP-скрипт, вы не возражаете, что это проблема?
3. @Quentin, я только что удалил все html-части скрипта, и проблема есть, что-то изменилось, но спасибо за ваш комментарий.
Ответ №1:
Подтверждено, это был вопрос разрешений.
Я выполнил следующие команды, и проблема решена:
sudo chown -R www-data:ubuntu /var/www/html
sudo chmod -R 755 /var/www/html
sudo find /var/www/html -type f -exec chmod 644 {} ;
sudo find /var/www/html -type d -exec chmod 755 {} ;