我在亚马逊云上运行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
感谢任何帮助。
由于
答案 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;