我无法将文件从PHP上传到Centos 7.0 Apache Server
PHP代码
<html>
<head>
<title>Upload your files</title>
</head>
<body>
<form enctype="multipart/form-data" action="index.php" method="POST">
<p>Upload your file</p>
<input type="file" name="uploaded_file"></input><br />
<input type="submit" value="Upload"></input>
</form>
</body>
</html>
<?PHP
if(!empty($_FILES['uploaded_file']))
{
$path = "/var/www/html/";
$path = $path . basename( $_FILES['uploaded_file']['name']);
if(move_uploaded_file($_FILES['uploaded_file']['tmp_name'], $path)) {
echo "The file ". basename( $_FILES['uploaded_file']['name']).
" has been uploaded";
} else{
echo "There was an error uploading the file, please try again!";
}
}
?>
请注意,php.ini中的file_uploads已启用
并且文件夹“/ var / www / html /”具有权限0777,并且它的所有者是apache
我在stackoverflow中尝试了几乎所有的解决方案,
chmod -R 0777 /var/www/html
chown apache /var/www/html
find /var/www/html/ -type f -print0 | xargs -0 chmod -v 777
静态文件上传失败,并在HTTPD error_log中出现此错误
[Tue Mar 19 10:34:21.257969 2019] [:error] [pid 27446] [client 172.20.20.41:61798] PHP Warning: move_uploaded_file(/var/www/html/Scan.pdf): failed to open stream: Permission denied in /var/www/html/index.php on line 23, referer: http://10.104.25.70/index.php
[Tue Mar 19 10:34:21.258095 2019] [:error] [pid 27446] [client 172.20.20.41:61798] PHP Warning: move_uploaded_file(): Unable to move '/tmp/php64POiK' to '/var/www/html/Scan.pdf' in /var/www/html/index.php on line 23, referer: http://10.104.25.70/index.php
的输出
ls -l
是
drwxrwxrwx. 3 apache root 34 Mar 18 13:24 html
的输出
stat html
是
File: ‘html’
Size: 34 Blocks: 0 IO Block: 4096 directory
Device: fd00h/64768d Inode: 67281951 Links: 3
Access: (0777/drwxrwxrwx) Uid: ( 48/ apache) Gid: ( 0/ root)
Context: system_u:object_r:httpd_sys_content_t:s0
Access: 2019-03-19 09:09:19.056277906 +0300
Modify: 2019-03-18 13:24:45.504174727 +0300
Change: 2019-03-19 10:37:18.901089085 +0300
Birth: -
Selinux需要配置上下文
cd /var/www/html
mkdir upload
chown apache:apache upload
chcon -t httpd_sys_rw_content_t upload
ls -Z /var/www/html