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

升级phpMyAdmin至v4.8.0后遇$cfg['TempDir']不可访问错误求助

解决phpMyAdmin v4.8.0的$cfg['TempDir']不可访问问题

首先得明确一个核心误区:提示里的./tmp/是相对于phpMyAdmin安装目录(也就是/usr/share/phpmyadmin)的路径,不是你提到的/usr/share/tmp。下面是一步步的实操解决步骤:

1. 创建正确的tmp目录

先在phpMyAdmin的根目录下创建tmp文件夹,执行命令:

sudo mkdir /usr/share/phpmyadmin/tmp

2. 设置web服务器可读写的权限

phpMyAdmin由web服务器(Apache/Nginx)运行,所以tmp目录需要让服务器用户拥有读写权限:

  • 如果你用的是Apache,用户通常是www-data:
sudo chown www-data:www-data /usr/share/phpmyadmin/tmp
sudo chmod 775 /usr/share/phpmyadmin/tmp
  • 如果你用的是Nginx,用户可能是nginx或www-data(取决于系统发行版):
sudo chown nginx:nginx /usr/share/phpmyadmin/tmp
sudo chmod 775 /usr/share/phpmyadmin/tmp

3. 验证并修正配置文件

打开phpMyAdmin的config.inc.php(路径一般是/usr/share/phpmyadmin/config.inc.php),确认$cfg['TempDir']的配置:
推荐直接写绝对路径,避免相对路径的歧义:

$cfg['TempDir'] = '/usr/share/phpmyadmin/tmp/';

保存配置后重启web服务器:

# Apache用户执行
sudo systemctl restart apache2

# Nginx用户执行
sudo systemctl restart nginx

4. 排查SELinux限制(针对CentOS/RHEL等系统)

如果你的系统开启了SELinux,即使权限设置正确,也可能被策略阻止访问。可以先临时关闭SELinux测试:

sudo setenforce 0

如果关闭后提示消失,就给tmp目录添加正确的SELinux上下文:

sudo semanage fcontext -a -t httpd_sys_rw_content_t "/usr/share/phpmyadmin/tmp(/.*)?"
sudo restorecon -Rv /usr/share/phpmyadmin/tmp

之后再重新开启SELinux:

sudo setenforce 1

5. 验证结果

重新访问phpMyAdmin,查看提示是否消失。如果问题依旧,建议查看web服务器的错误日志(比如Apache的/var/log/apache2/error.log、Nginx的/var/log/nginx/error.log),里面会有更详细的权限或路径报错信息,方便进一步排查。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:11:12