You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Nginx+CodeIgniter文件上传报错“The temporary folder is missing”排查求助

问题原因及解决办法

报错提示「The temporary folder is missing」核心是CodeIgniter上传类无法访问PHP临时文件存储目录,以下是具体排查方向和解决措施:

1. PHP临时目录配置异常

检查目标服务器的php.ini文件中upload_tmp_dir配置项:

  • 可以通过创建phpinfo.php文件(内容为<?php phpinfo(); ?>)访问查看该配置的具体值。
  • 如果upload_tmp_dir为空,PHP会使用系统默认临时目录(如/tmp),但如果该目录不存在、权限不足,就会触发报错。

解决步骤:

  1. 创建一个可用的临时目录,比如/var/www/tmp:
    mkdir -p /var/www/tmp
    
  2. 修改php.ini的upload_tmp_dir指向该目录:
    upload_tmp_dir = "/var/www/tmp"
    
  3. 给临时目录设置正确权限,确保Nginx运行用户(通常是www-data或nginx)有读写权限:
    chmod 755 /var/www/tmp
    chown www-data:www-data /var/www/tmp
    
  4. 重启PHP-FPM(或对应的PHP服务)使配置生效。

2. 上传目标目录问题

代码中设置的/assets/document/目录,需确认在目标服务器上存在且权限正确:

  • 若该目录不存在,创建目录:
    mkdir -p /assets/document/
    
  • 设置权限:
    chmod 755 /assets/document/
    chown www-data:www-data /assets/document/
    

3. CodeIgniter自身临时目录配置

检查application/config/config.php中的$config['tmp_path']配置项,如果该值被设置,需确保对应的目录存在且权限符合要求。

是否需要Nginx额外配置?

通常不需要针对该报错添加特殊配置,但需确保Nginx允许的上传文件大小足够(避免文件过大被拦截),可在站点配置或nginx.conf中添加:

client_max_body_size 20M;

修改后重启Nginx生效。

内容的提问来源于stack exchange,提问作者vellai durai

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 06:07:30