dongtan5811 2019-03-19 07:36
浏览 239
已采纳

无法将文件从PHP上传到Centos服务器?

I am having trouble uploading a file from PHP to Centos 7.0 Apache Server

PHP CODE

  <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!";
    }
  }
?>

Please note that file_uploads is on in php.ini

and the folder "/var/www/html/" has permission 0777 and the owner of it is apache

I tried almost all solutions in stackoverflow,

chmod -R 0777 /var/www/html

chown apache /var/www/html

find /var/www/html/ -type f -print0 | xargs -0 chmod -v 777 

Still file upload fails, and got this error in 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

the output of

ls -l 

is

drwxrwxrwx. 3 apache root 34 Mar 18 13:24 html

the output of

stat html

is

  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: -
  • 写回答

1条回答 默认 最新

  • dongyuxiao6295 2019-03-19 07:45
    关注

    Selinux needs to be configured context

    cd /var/www/html
    mkdir upload
    chown apache:apache upload
    chcon -t httpd_sys_rw_content_t upload
    ls -Z /var/www/html
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

    报告相同问题?

    悬赏问题

    • ¥15 我用C语言easyx图形库绘制了一个3d游戏方框透视,但进入游戏时候鼠标准星对准方框边缘 鼠标光标就会弹出来这是啥情况怎样让光标对准绘制的方框点击鼠标不弹出光标好烦这样
    • ¥20 用Power Query整合的问题
    • ¥20 基于python进行多背包问题的多值编码
    • ¥15 相同型号电脑与配置,发现主板有一台貌似缺少了好多元器件似的,会影响稳定性和使用寿命吗?
    • ¥15 要求编写稀疏矩阵A的转置矩阵的算法
    • ¥15 编写满足以下要求的停车场管理程序,设停车场只有一个可停放n辆车的狭窄通道且只有一个大门可供车辆进出。
    • ¥15 C语言:数据子序列基础版
    • ¥20 powerbulider 导入excel文件,显示不完整
    • ¥15 用keil调试程序保证结果进行led相关闪烁
    • ¥15 paddle训练自己的数据loss降不下去