如何将本地DDEV Drupal站点部署至Digital Ocean Droplet?
Drupal 11 从DDEV本地部署到DigitalOcean Droplet的推荐流程及替代方案
一、DigitalOcean Droplet 部署流程
针对你用DDEV/Docker完成的本地Drupal 11项目,推荐以下部署步骤:
1. 创建并初始化Droplet
- 选择Ubuntu 22.04 LTS镜像(兼容性好、文档完善),配置至少2GB内存(Drupal 11运行的最低推荐配置),开启SSH密钥访问(比密码更安全)。
- 登录Droplet后先更新系统:
sudo apt update && sudo apt upgrade -y
2. 安装生产环境依赖
在Droplet上部署所需工具:
sudo apt install docker.io docker-compose git curl -y # 将当前用户加入docker组,避免每次执行docker命令都用sudo sudo usermod -aG docker $USER # 重新登录使权限生效 exit
3. 同步项目代码
- 本地将DDEV项目的核心代码、模块、主题、
composer.json/composer.lock、自定义配置等推送到Git仓库(注意忽略.ddev/下的本地开发配置、web/sites/default/files的本地文件)。 - 在Droplet上克隆仓库:
git clone [你的仓库地址],进入项目目录。
4. 配置生产环境与依赖
- 安装生产依赖(跳过开发工具):
composer install --no-dev --optimize-autoloader - 设置文件目录权限并配置生产用
settings.php:# 确保文件目录权限正确 sudo chown -R www-data:www-data web/sites/default/files sudo chmod -R 775 web/sites/default/files
5. 迁移数据库
- 本地导出DDEV数据库:
ddev export-db --file=drupal_prod_db.sql - 将
drupal_prod_db.sql上传到Droplet,导入到生产数据库:# 先创建生产数据库 mysql -u root -p -e "CREATE DATABASE drupal_prod;" # 导入数据 mysql -u root -p drupal_prod < drupal_prod_db.sql # 替换本地域名为生产域名 drush sql:sites:replace local.yourdomain.com prod.yourdomain.com
6. 启动Web服务
可选两种部署方式:
- Docker Compose部署:编写生产用
docker-compose.yml,包含Nginx、PHP-FPM、MariaDB容器,映射正确端口和目录。 - 直接部署到服务器:安装Nginx和PHP-FPM,配置Nginx的server块指向项目
web目录,启用Drupal URL重写规则。
7. 收尾优化
- 用Certbot申请免费SSL证书:
sudo apt install certbot python3-certbot-nginx -y && sudo certbot --nginx - 启用Drupal内置缓存,配置Redis/Memcached提升性能
- 配置定期备份(数据库+文件目录)
二、Droplet的替代方案
如果你觉得管理Droplet太繁琐,以下方案更适合新手:
- DigitalOcean App Platform:全托管PaaS,直接关联Git仓库,自动构建部署,内置SSL、负载均衡、自动缩放,无需手动配置服务器环境,按资源使用付费。
- Platform.sh:专为Drupal等CMS优化的PaaS,支持DDEV一键集成,内置多环境管理、自动备份、缓存策略,适合专业Drupal项目的快速部署。
- Lando:与DDEV类似的开发部署工具,支持一键部署到DigitalOcean、AWS等平台,配置灵活,减少环境差异问题。
内容的提问来源于stack exchange,提问作者user29961974
相关产品推荐
相关产品推荐

