You need to enable JavaScript to run this app. Elastic Beanstalk使用.config文件设置phpmyadmin配置文件权限不生效
优惠活动
大模型
产品
解决方案
定价
更多

Elastic Beanstalk使用.config文件设置phpmyadmin配置文件权限不生效

配置失效原因

  • container_commands 执行阶段,Elastic Beanstalk 还未完成新版本代码的切换,/var/app/current 此时指向的是部署前的旧版本代码,等所有 container_commands 执行完成后,系统才会把存放在 /var/app/staging 的新版本代码替换到 /var/app/current 路径下,修改旧版本路径的权限自然不会生效。
  • 如果你使用的是 Amazon Linux 2 版本的 Elastic Beanstalk 环境,/opt/elasticbeanstalk/hooks/ 路径下的传统钩子已经被官方弃用,你写的 post 部署钩子根本不会被触发执行。

解决方法

方案1:直接修改 staging 目录文件权限(最简单)

直接在 container_commands 中修改 staging 目录下对应文件的权限,版本切换后会自动继承权限,修正后的 .ebextensions/phpdb.config 配置如下:

container_commands:
    01_change_permissions:
        command: "chmod 0755 /var/app/staging/phpdb/config.inc.php"
        ignoreErrors: true

不需要加sudo,container_commands 默认以root权限执行。

方案2:使用兼容 Amazon Linux 2 的 post 部署钩子

如果需要在部署完全完成后执行权限修改操作,使用新版本的钩子逻辑即可:

  1. 在应用根目录下创建 .platform/hooks/postdeploy/ 文件夹
  2. 在该文件夹下新建 99_change_permissions.sh 文件,内容如下:
#!/usr/bin/env bash
chmod 0755 /var/app/current/phpdb/config.inc.php
  1. 本地给这个shell文件赋予755权限后再打包部署,不需要再在.ebextensions里配置files字段创建旧路径的钩子。

额外说明

phpMyAdmin的config.inc.php仅需读权限即可正常运行,你也可以把权限改成0644,不需要可执行权限,安全性更高。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.18 16:15:02