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

Azure App Service SSH修改/home外内容不持久化,如何保存OCI8配置变更?

解决方案

Azure App Service Linux 基于容器运行,容器镜像层为只读,仅/home目录为挂载的持久化存储卷,每次实例重启/重新部署都会重置容器内/home以外的所有文件,因此直接通过SSH修改系统目录的配置无法持久化,需通过官方提供的启动自定义机制实现修改的持久化。

方法1:通用自定义修改持久化(适合需要改系统配置、安装扩展的场景)

  • 把你需要执行的所有配置修改操作(比如安装OCI8扩展、复制配置文件、修改系统参数的命令)整理为shell脚本,例如命名为init_oci8.sh,上传到/home目录下的固定路径,比如/home/site/startup-scripts/init_oci8.sh
  • SSH连接到App Service后,给脚本添加执行权限:chmod +x /home/site/startup-scripts/init_oci8.sh
  • 进入Azure门户对应App Service的管理页,依次打开「配置」->「常规设置」->「启动命令」,填入脚本的完整路径:/home/site/startup-scripts/init_oci8.sh,保存配置后实例会自动重启,之后每次容器启动都会自动执行脚本内的修改操作,实现配置持久化
  • 脚本参考示例(适配PHP+Apache运行栈):
#!/bin/bash
# 复制提前存放在/home目录的OCI8配置到PHP配置扫描目录
cp /home/site/custom-ini/oci8.ini /usr/local/etc/php/conf.d/
# 原有服务启动命令,不能省略
apache2-foreground

方法2:PHP配置专属简化方案(仅需修改PHP运行参数时使用)

如果不需要修改系统级配置,仅需要添加/修改OCI8相关的PHP配置,可以直接把自定义ini文件放到/home/site/ini目录,Azure App Service的PHP运行栈默认会在启动时自动加载该目录下所有后缀为.ini的配置文件,无需额外编写启动脚本。
示例/home/site/ini/oci8.ini内容:

extension=oci8.so
oci8.persistent_timeout = -1
oci8.ping_interval = 60
# 其余自定义OCI8配置

注意:如果OCI8扩展未预装在运行镜像中,安装扩展的命令仍然需要写入启动脚本执行,因为扩展默认安装在系统非持久化目录,每次重启都需要重新安装

验证配置生效

重启实例后,SSH连接执行php -i | grep oci8即可查看OCI8配置是否加载成功,也可以在站点目录放置phpinfo页面访问确认。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 12:36:03