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

CentOS7部署Prestashop提示var/cache无写入权限问题求助

CentOS7部署PrestaShop 1.7.7.1 var/cache权限报错修复

问题现象

安装阶段弹出报错:

Prestashop installation needs to write critical files in the folder var/cache.
please review the permissions on your server.
直接修改目录属主后报错仍存在。

已执行的无效操作

曾尝试递归修改站点目录属主为apache用户,执行命令如下,未解决问题:

chown -R apache:apache /var/www/html/prestashop

当前运行环境

  • 操作系统:CentOS 7
  • PrestaShop版本:1.7.7.1
  • PHP版本:8.1.8
  • 数据库:MySQL

修复步骤

1. 确认Web/PHP进程实际运行用户

不要直接套用apache用户配置,先执行命令确认进程真实运行用户,避免属主配置错误:

# 若使用Apache mod_php模式,查httpd进程用户
ps -ef | grep httpd
# 若使用Nginx+PHP-FPM模式,查php-fpm进程用户
ps -ef | grep php-fpm

根据查询结果,将站点目录属主替换为实际运行用户,例如运行用户为nginx则执行chown -R nginx:nginx /var/www/html/prestashop。

2. 配置正确的目录权限位

仅修改属主不足以满足写入要求,执行以下命令设置规范权限:

# 站点目录文件默认644、目录默认755
find /var/www/html/prestashop -type f -exec chmod 644 {} \;
find /var/www/html/prestashop -type d -exec chmod 755 {} \;
# 为PrestaShop要求可写的目录设置775权限
chmod -R 775 /var/www/html/prestashop/var/
chmod -R 775 /var/www/html/prestashop/img/
chmod -R 775 /var/www/html/prestashop/config/
chmod -R 775 /var/www/html/prestashop/modules/
chmod -R 775 /var/www/html/prestashop/themes/
chmod -R 775 /var/www/html/prestashop/upload/
chmod -R 775 /var/www/html/prestashop/download/

3. 处理SELinux拦截(此类问题90%由该原因导致)

CentOS7默认开启SELinux强制模式,会拦截Web进程对目录的写入请求,即使属主、权限位配置正确也会报错。
先执行命令临时关闭SELinux验证问题:

setenforce 0

刷新安装页面如果报错消失,即可确认是SELinux导致,执行以下命令配置正确的SELinux上下文(不推荐长期关闭SELinux):

# 配置站点目录基础访问上下文
chcon -R -t httpd_sys_content_t /var/www/html/prestashop/
# 为可写目录配置读写权限上下文
chcon -R -t httpd_sys_rw_content_t /var/www/html/prestashop/var/
chcon -R -t httpd_sys_rw_content_t /var/www/html/prestashop/img/
chcon -R -t httpd_sys_rw_content_t /var/www/html/prestashop/config/
chcon -R -t httpd_sys_rw_content_t /var/www/html/prestashop/modules/
chcon -R -t httpd_sys_rw_content_t /var/www/html/prestashop/themes/
chcon -R -t httpd_sys_rw_content_t /var/www/html/prestashop/upload/
chcon -R -t httpd_sys_rw_content_t /var/www/html/prestashop/download/
# 重新开启SELinux
setenforce 1

4. 额外排查项

如果以上操作完成后仍报错,检查PHP配置中open_basedir项是否限制了站点目录访问,将PrestaShop根目录加入允许列表后重启Web/PHP-FPM服务即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 11:48:17