CentOS 8远程PgAdmin4无法访问本地文件进行备份恢复的解决方法
解决方案
1. 检查并修复PgAdmin4存储目录权限
PgAdmin4的备份/恢复文件默认存储在/var/lib/pgadmin/storage目录,需确保该目录及子目录归apache用户/组所有:
- 查看目录权限:
ls -ld /var/lib/pgadmin/storage - 若所有者不是
apache:apache,执行修改命令:chown -R apache:apache /var/lib/pgadmin/storage chmod -R 700 /var/lib/pgadmin/storage
2. 修复SELinux上下文(CentOS 8默认开启SELinux)
SELinux可能阻止httpd进程读写存储目录,需设置正确的上下文:
- 查看当前SELinux上下文:
ls -Z /var/lib/pgadmin/storage - 设置并应用正确的上下文:
semanage fcontext -a -t httpd_sys_rw_content_t "/var/lib/pgadmin/storage(/.*)?" restorecon -Rv /var/lib/pgadmin/storage
3. 自定义存储目录(可选)
若需使用自定义目录存储备份文件,按以下步骤操作:
- 创建自定义目录:
mkdir -p /opt/pgadmin_backups - 设置权限和SELinux上下文:
chown -R apache:apache /opt/pgadmin_backups chmod -R 700 /opt/pgadmin_backups semanage fcontext -a -t httpd_sys_rw_content_t "/opt/pgadmin_backups(/.*)?" restorecon -Rv /opt/pgadmin_backups - 修改PgAdmin4配置文件:
编辑/etc/pgadmin4/config_local.py(若不存在则创建),添加:STORAGE_DIR = '/opt/pgadmin_backups' - 重启httpd服务:
systemctl restart httpd
4. 验证用户专属存储目录
每个PgAdmin4登录用户会在STORAGE_DIR下生成专属子目录(如/var/lib/pgadmin/storage/your_username),需确保该子目录权限为700且归apache:apache所有。若目录不存在,可手动创建后设置权限。
完成以上操作后,重新登录PgAdmin4即可正常进行备份/恢复操作:
- 备份时可直接在存储目录下创建新文件,不会再提示"Access Denied";
- 恢复时可选择存储目录内的备份文件,或上传本地文件至该目录后选择。
内容的提问来源于stack exchange,提问作者Jayanta Kumar Nath
相关产品推荐
相关产品推荐

