【问题标题】:Nginx + PHP File Upload issueNginx + PHP 文件上传问题
【发布时间】:2016-04-09 08:28:34
【问题描述】:

我在通过 phpMyAdmin、MODx 或 Wordpress 上传文件时遇到以下问题。在 PHP 应用程序本身中,我收到一条成功消息,但未上传文件。 nginx error.log 打印以下消息:

[warn][..] a client request body is buffered to a temporary file...
FastCGI sent in stderr: "PHP message: PHP Warning:  File upload error - unable to create a temporary file in Unknown on line 0...

我正在运行带有 Nginx 1.8.0 和 PHP 5.4.16 的 CentOS Linux 版本 7.2.1511(核心)。此设置在从 CentOS 7.1 更新到 7.2 之前有效。

以下是我已经尝试解决问题的步骤:

  • sys_get_temp_dir() -> /tmp
  • /tmp 权限为 1777
  • PHP 正在以用户 nginx 运行
  • 有足够的可用磁盘空间
  • post_max_size、upload_max_filesize 和 client_max_body_size 都设置为 50m

我的想法不多了……

提前致谢

【问题讨论】:

    标签: php linux nginx


    【解决方案1】:

    简单的解决方案:

    $ sudo systemctl restart php-fpm nginx
    

    解决了这个问题。我不知道为什么,但现在它就像一个魅力。

    【讨论】:

    • 几乎可以肯定有人已经删除了在 /tmp 区域中为 nginx 和 php-fpm 这两个进程创建的目录来写入。然后进程尝试写入不存在的目录。重新启动它们会重新创建目录并使其再次工作。
    猜你喜欢
    • 2010-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-18
    相关资源
    最近更新 更多