【问题标题】:file upload error log at centos php servercentos php服务器上的文件上传错误日志
【发布时间】:2020-08-25 15:04:43
【问题描述】:

我正在测试客户端和服务器之间的文件上传。 但是由于以下错误,文件上传无法正常工作。

无法在第 49 行的 /var/www/html/server_form.php 中将 '/tmp/phpxQHW5q' 移动到 '/var/www/html/mri_image/test.jpg',引用者:http://192.168.1.12/client_form.php

我在 stackoverflow 上搜索过这个问题。 大多数解决方案是权限问题。 因此,tmp 和 mri_image 文件夹由 apache 拥有并更改了 mod 755。

那么,不工作我想请你帮忙

供参考,我的操作系统是CentOS 7,php版本是7.3

【问题讨论】:

    标签: php html linux centos


    【解决方案1】:

    我最近遇到了 Apache 和 PHP 尝试写入 /tmp 的问题,但指出脚本失败并出现错误“没有这样的文件或目录”

    Centos 7 使用 systemd,它有一个很棒的功能 (PrivateTmp) 可以中断 Apache/PHP 对 /tmp 文件夹的访问(特别是在文件需要共享给其他进程的情况下/其他人看到。此功能通过为每个进程创建一种“虚拟” /tmp 目录来工作,因此 Apache 看到的文件不会被 PHP 看到,等等。

    首先,使用以下命令将 httpd.service 和 php-fpm.service 文件从 /usr/lib/systemd/system/ 复制到 /etc/systemd/system。

    cp /usr/lib/systemd/system/httpd.service /etc/systemd/system/. && cp /usr/lib/systemd/system/php-fpm.service /etc/systemd/system/.
    

    将它们复制到位后,在新位置编辑文件的每个副本,并使用 vi 或您首选的文本编辑器将 PrivateTmp=true 的行更改为 PrivateTmp=false

    vi /etc/systemd/system/httpd.service        
    vi /etc/systemd/system/php-fpm.service 
    

    完成这些更改后,您需要重新启动 systemd,以及 php-fpm 和 apache。
    重新启动 systemd:

    sudo systemctl daemon-reload
    

    重启apache:

    sudo systemctl restart httpd
    

    重启php-fpm:

    sudo systemctl restart php-fpm
    

    【讨论】:

      猜你喜欢
      • 2019-08-09
      • 1970-01-01
      • 2017-02-27
      • 2016-07-10
      • 2014-05-02
      • 2017-11-01
      • 2015-01-21
      • 2018-03-18
      • 1970-01-01
      相关资源
      最近更新 更多