[英]Files not saved on Ubuntu instance using PHP
我剛剛在 Ubuntu 實例上將一個項目遷移到 AWS。
它是一個 PHP 后台項目。
我可以使用 MySQL 數據庫,並且可以使用 Filezilla 上傳文件。 我的問題是我正在嘗試使用此 PHP 文件將文件保存到實例上的usuarios
文件夾:
<?php
if ((isset($_POST["enviado"])) && ($_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('~&([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 }?>
但文件未保存在文件夾中。
我想這可能是文件夾權限的問題。
該項目在另一台 Web 服務器上運行良好,但在 AWS 上的此 Ubuntu 實例上運行良好。
為了將文件保存在該服務器文件夾中,我應該檢查和更改什么?
確認,這是權限問題。
我已執行以下命令,問題已解決:
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 {} \;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.