无法在ec2上使用PHP上传文件

时间:2015-08-25 17:29:02

标签: php amazon-ec2

我在亚马逊云上运行Apache服务器,我正在尝试使用PHP上传文件,但是我得到了

[Tue Aug 25 13:19:20.780797 2015] [:error] [pid 5162] [client 120.59.58.80:9613] PHP Warning:  move_uploaded_file(./Page1.pdf): failed to open stream: Permission denied in /var/www/html/handlefiles.php on line 8, referer: http://myhost/articles.html

我的代码是:

$uploads_dir = './';
$fileName = $_FILES["file"]["name"];
$fileTmpLoc = $_FILES["file"]["tmp_name"];
// Path and file name01
$pathAndName = "./".$fileName;
// Run the move_uploaded_file() function here
$moveResult = move_uploaded_file($fileTmpLoc, $pathAndName);
echo $moveResult;

权限是:

drwxrwsr-x.  7 root ec2-user 4096 Aug 25 13:27 html
-rw-rw-r--. 1 root ec2-user 1222 Aug 25 13:19 handlefiles.php

感谢任何帮助。

由于

2 个答案:

答案 0 :(得分:1)

首先检查ec2 apache服务器的用户。使用以下说明 ps aux | grep apache

然后检查用户并使用此代码

sudo chown -R ubuntu:www-data / var / www / html /

答案 1 :(得分:0)

我认为你的文件夹权限有问题。 ./表示php引擎可能无权编写的当前目录。 首先尝试在没有./

的情况下运行代码
$uploads_dir = './';
$fileName = $_FILES["file"]["name"];
$fileTmpLoc = $_FILES["file"]["tmp_name"];
// Path and file name01
$pathAndName = $fileName;
// Run the move_uploaded_file() function here
$moveResult = move_uploaded_file($fileTmpLoc, $pathAndName);
echo $moveResult;

然后指定整个传递,如;

$pathAndName = "/var/www/html/".$fileName;