阿里云Linux云服务器搭建Drupal网站:从零开始的全栈部署指南

apphuang2026年06月26日 09:05:402

一、引言:为什么选择阿里云Linux服务器部署Drupal

Drupal作为全球最成熟的开源内容管理框架之一,凭借其强大的扩展性、灵活的内容类型构建能力和稳健的安全机制,被广泛应用于企业门户、政府网站、电商平台和大型社区等场景。与WordPress相比,Drupal在复杂数据结构建模和权限控制方面具有显著优势,尤其适合构建需要高度定制化的数字体验平台。

阿里云ECS(弹性计算服务)为Drupal提供了理想的运行载体。Linux服务器以其开源、稳定、资源占用低的特点,成为Drupal部署的首选操作系统。无论是个人开发者测试小型站点,还是企业构建高并发业务系统,阿里云ECS都能通过灵活的规格配置和按需付费模式满足不同层次的需求。本文将以Alibaba Cloud Linux 3操作系统为例,从零开始完整演示在阿里云ECS上搭建Drupal网站的全过程,涵盖环境部署、Drupal安装、安全加固和性能优化等核心环节。

需要先登录阿里云控制台,点击:阿里云控制台

二、准备工作:ECS实例选购与基础配置

2.1 服务器规格选型建议

Drupal对服务器资源有一定要求,并非所有最低配实例都能流畅运行。根据实际使用场景,建议参考以下选型标准:

  • 个人博客、学习测试等轻量场景:推荐阿里云轻量应用服务器,配置为2核CPU、2GB内存、40GB SSD系统盘、2Mbps带宽。轻量应用服务器预装了Linux系统,操作门槛较低,适合初学者快速上手。
  • 企业官网、中型电商、社区站点等生产场景:推荐ECS通用算力型u1实例(2核4GB)或更高配置。这类实例性能更稳定,支持弹性扩容,能够应对业务增长带来的负载变化。
  • 高并发、大数据量的大型门户:建议选择计算型或内存型实例,如ecs.c7系列(4核8GB起步),并结合负载均衡SLB和云数据库RDS进行分布式部署。

地域选择应遵循"就近访问"原则:国内用户优先选择华东1(杭州)、华北2(北京)等节点,以降低网络延迟;面向海外用户则可选择中国香港、新加坡等境外节点,且无需ICP备案即可上线。

2.2 操作系统选择

阿里云ECS支持多种Linux发行版。本文推荐使用Alibaba Cloud Linux 3,这是阿里云自研的官方操作系统,针对阿里云基础设施进行了深度优化,且在安全更新和内核稳定性方面有长期支持。此外,CentOS 7.x/8.x也是常见选择,但需注意CentOS 7已于2024年6月停止维护,生产环境建议优先使用Alibaba Cloud Linux 3。

2.3 安全组规则配置

安全组是ECS实例的虚拟防火墙,控制着进出实例的网络流量。在搭建Drupal之前,必须在安全组中放行以下关键端口:

  • 22端口(TCP):用于SSH远程连接服务器,是运维管理的必备通道。
  • 80端口(TCP):用于HTTP协议的网站访问。
  • 443端口(TCP):用于HTTPS加密访问,若后续配置SSL证书则需要放行。

配置方法:登录阿里云控制台,进入ECS实例详情页,点击"安全组"→"配置规则"→"入方向"→"快速添加",依次勾选22、80、443端口即可。来源IP可设置为"0.0.0.0/0"(允许所有IP访问),生产环境中建议根据实际访问来源限制IP范围以增强安全性。

2.4 远程连接服务器

阿里云提供了多种远程连接方式,新手最推荐使用Workbench——这是阿里云自带的网页版终端工具,无需安装任何客户端软件。操作步骤:在ECS实例详情页点击"远程连接",选择"Workbench远程连接",输入root账号和密码即可进入服务器命令行界面。熟悉Linux的用户也可以使用SSH客户端(如PuTTY、Xshell或终端命令行)通过 ssh root@<公网IP> 方式进行连接。

三、环境部署:搭建LAMP/LNMP运行环境

Drupal基于PHP开发,需要Web服务器、数据库和PHP运行环境三大组件协同工作。主流的架构方案有两种:LAMP(Linux + Apache + MySQL + PHP)和LNMP(Linux + Nginx + MySQL + PHP)。Apache配置简单、兼容性好,适合新手入门;Nginx性能更优、并发处理能力强,适合高流量场景。下文将分别给出两种架构的完整部署步骤,读者可根据自身需求任选其一。

3.1 LAMP架构部署

(1)更新系统软件包

在开始安装任何软件之前,首先更新系统的软件包索引,确保安装的均为最新版本:

yum update -y

(2)安装Apache Web服务器

Apache是全球使用最广泛的Web服务器软件,在Alibaba Cloud Linux 3中可通过yum直接安装:

yum install httpd -y
systemctl start httpd
systemctl enable httpd

安装完成后,在本地浏览器中输入ECS实例的公网IP地址,若看到Apache的默认测试页面,说明Web服务器已成功运行。

(3)安装MySQL数据库

Drupal需要数据库来存储网站内容、用户信息、配置参数等数据。推荐安装MySQL 8.0版本:

yum install mysql-server -y
systemctl start mysqld
systemctl enable mysqld

MySQL安装完成后,执行安全初始化脚本进行加固配置:

mysql_secure_installation

该脚本会引导你完成以下安全设置:

  • 设置MySQL root用户的密码(需8位以上,包含大小写字母、数字和特殊符号)
  • 删除匿名用户(Remove anonymous users)
  • 禁止root用户远程登录(Disallow root login remotely)
  • 删除测试数据库(Remove test database and access to it)
  • 刷新权限表(Reload privilege tables now)

完成上述配置后,可通过以下命令验证数据库是否正常运行:

mysql -u root -p

输入密码后若能进入MySQL命令行界面(提示符为 mysql>),则说明安装成功。

(4)安装PHP及扩展

Drupal 10及以上版本要求PHP版本不低于8.1。Alibaba Cloud Linux 3的默认软件源可能不包含PHP 8.x,需要先启用EPEL和Remi仓库。以下是完整的安装命令:

# 安装EPEL和Remi仓库
yum install -y epel-release
yum install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm

# 启用PHP 8.1模块
yum module reset php -y
yum module enable php:remi-8.1 -y

# 安装PHP及Drupal所需扩展
yum install -y php php-fpm php-mysqlnd php-gd php-xml php-mbstring php-json php-cli php-opcache php-pdo php-zip php-dom php-simplexml

上述扩展的作用分别为:

  • php-gd:图像处理库,用于图片缩放、水印等操作
  • php-xml / php-dom / php-simplexml:XML解析,Drupal核心依赖
  • php-mbstring:多字节字符串处理,支持中文等非ASCII字符
  • php-opcache:PHP字节码缓存,大幅提升执行效率
  • php-zip:压缩文件处理,用于模块和主题的安装
  • php-pdo / php-mysqlnd:数据库连接驱动

启动PHP-FPM服务并设置为开机自启:

systemctl start php-fpm
systemctl enable php-fpm

验证PHP版本:

php -v

接下来需要配置Apache与PHP-FPM的联动,使Apache能够解析PHP文件。编辑Apache配置文件:

vim /etc/httpd/conf.d/php.conf

确保文件中包含以下内容(若不存在则添加):

<FilesMatch \.php$>
    SetHandler "proxy:unix:/var/run/php-fpm/www.sock|fcgi://localhost/"
</FilesMatch>

保存退出后重启Apache使配置生效:

systemctl restart httpd

3.2 LNMP架构部署

如果您的站点预期有较高并发访问量,LNMP架构是更好的选择。Nginx在处理静态资源和高并发连接方面优于Apache。

(1)安装Nginx

yum install nginx -y
systemctl start nginx
systemctl enable nginx

浏览器访问公网IP,看到Nginx欢迎页面即安装成功。

(2)安装MySQL

与LAMP架构中的MySQL安装步骤完全相同,参考3.1节第(3)部分即可。

(3)安装PHP及扩展

PHP的安装与LAMP架构一致,参考3.1节第(4)部分。不同之处在于Nginx与PHP的联动配置:

vim /etc/nginx/conf.d/default.conf

在 server 块中添加以下PHP解析规则:

root /usr/share/nginx/html;
index index.php index.html index.htm;

location ~ \.php$ {
    fastcgi_pass unix:/var/run/php-fpm/www.sock;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
}

保存后重启Nginx和PHP-FPM:

systemctl restart nginx
systemctl restart php-fpm

四、安装Drupal核心

4.1 安装Composer

Composer是PHP的依赖管理工具,Drupal官方推荐使用Composer来安装和管理Drupal核心及所有模块。安装命令如下:

# 下载Composer安装脚本并执行
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php composer-setup.php --install-dir=/usr/local/bin --filename=composer
rm composer-setup.php

# 赋予执行权限
chmod +x /usr/local/bin/composer

若服务器位于中国大陆地区,建议将Composer的镜像源切换为阿里云镜像,以大幅提升下载速度:

composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/

4.2 使用Composer下载Drupal

进入Apache或Nginx的默认网站根目录,使用Composer创建Drupal项目。本文以Apache环境为例,根目录为 /var/www/html:

cd /var/www/html
composer create-project drupal/recommended-project:11.1.0 my_site

上述命令会创建一个名为 my_site 的目录,并在其中下载Drupal 11.1.0的核心文件及其所有依赖。如需安装其他版本,修改命令中的版本号即可,例如 drupal/recommended-project:10.3.0。

下载完成后,Drupal的实际网站根目录为 /var/www/html/my_site/web,后续所有访问都将指向该目录。

4.3 下载中文语言包

Drupal支持多语言,若希望在安装过程中使用简体中文界面,需要提前下载中文翻译包:

cd /var/www/html/my_site/web
mkdir -p sites/default/files/translations
wget -P sites/default/files/translations https://ftp-origin.drupal.org/files/translations/all/drupal/drupal-11.1.0-beta1.zh-hans.po

注意:语言包的版本号必须与Drupal核心版本严格匹配。如果安装的是Drupal 10.3.0,则需下载对应的10.3.0翻译包。

4.4 设置目录权限

Drupal在安装过程中需要向 sites/default 目录写入配置文件,因此必须提前赋予写入权限:

# 为files目录添加写入权限
chmod a+w sites/default/files

# 创建settings.php配置文件(从默认模板复制)
cp sites/default/default.settings.php sites/default/settings.php
chmod a+w sites/default/settings.php

4.5 配置Apache支持简洁URL

Drupal的"简洁URL"功能需要Apache开启 mod_rewrite 并允许 .htaccess 文件覆盖配置。编辑Apache主配置文件:

vim /etc/httpd/conf/httpd.conf

找到或添加以下 Directory 配置块:

<Directory "/var/www/html/my_site/web">
    AllowOverride All
    Require all granted
</Directory>

保存后重启Apache:

systemctl restart httpd

若使用Nginx,则需要在站点配置中设置根目录为 /var/www/html/my_site/web,并配置相应的重写规则。

五、通过浏览器完成Drupal安装向导

5.1 访问安装页面

在本地浏览器中输入以下地址,进入Drupal安装界面:

http://<ECS实例公网IP地址>/my_site/web

5.2 选择安装语言

页面加载后首先出现语言选择界面。如果之前已下载中文翻译包,此处可以选择"简体中文",然后点击 "Save and continue"。

5.3 选择安装方式

Drupal提供两种安装方式:标准(Standard)和精简(Minimal)。标准安装会预置一些常用功能模块(如文章、基本页面、用户系统等),适合大多数场景;精简安装仅包含最基础的功能,适合需要高度定制化开发的场景。新手建议选择"标准"方式,点击"保存并继续"。

5.4 环境检查

Drupal会自动检查当前服务器环境是否满足安装要求,包括PHP版本、扩展模块、文件权限等。如果所有检查项均通过,页面将自动跳转至下一步;如果出现警告或错误(例如缺少某个PHP扩展),页面会给出具体提示。按照提示安装缺失的扩展后,执行以下命令重启服务使扩展生效:

systemctl restart httpd   # Apache环境
systemctl restart nginx   # Nginx环境
systemctl restart php-fpm

然后点击页面上的"重试"按钮重新检查。

5.5 配置数据库

环境检查通过后,进入数据库配置页面。需要填写以下信息:

  • 数据库类型:选择 MySQL
  • 数据库名称:为Drupal创建的数据库名(需提前在MySQL中创建)
  • 数据库用户名:具有该数据库操作权限的用户
  • 数据库密码:对应用户的密码
  • 数据库主机:默认填写 localhost
  • 端口号:默认3306

若尚未创建数据库,可通过以下SQL语句在MySQL中完成:

CREATE DATABASE drupal_db;
CREATE USER 'drupal_user'@'localhost' IDENTIFIED BY 'YourStrongPassword123!';
GRANT ALL PRIVILEGES ON drupal_db.* TO 'drupal_user'@'localhost';
FLUSH PRIVILEGES;

填写完成后点击"保存并继续",Drupal将开始导入数据表结构。

5.6 站点信息设置

数据库初始化完成后,进入站点配置页面。需要填写:

  • 站点名称:网站的显示名称
  • 站点邮箱:网站的管理员联系邮箱
  • 管理员用户名:Drupal超级管理员的登录名(建议不要使用admin等常见名称)
  • 管理员密码:需符合安全强度要求
  • 管理员邮箱:管理员的联系邮箱
  • 默认国家/时区:根据实际位置选择

填写完成后点击"保存并继续",Drupal将完成最后的安装步骤。

5.7 安装完成

安装完成后,页面会跳转至新搭建的Drupal网站首页。此时您已经拥有了一个可正常运行的Drupal站点,可以开始进行内容创建、主题配置、模块安装等后续工作。

六、安装后的安全加固

Drupal安装完成后,必须立即执行以下安全操作,否则可能面临严重的安全风险。

6.1 移除配置文件的写入权限

安装过程中,为了能够写入配置文件,我们临时赋予了 sites/default 目录及其子文件的写入权限。安装完成后,这些目录不再需要写入权限,应立即移除,以防止攻击者通过Web漏洞篡改配置文件:

chmod a-w /var/www/html/my_site/web/sites/default
chmod a-w /var/www/html/my_site/web/sites/default/files
chmod a-w /var/www/html/my_site/web/sites/default/settings.php

6.2 修改默认的.htaccess保护

确认 /var/www/html/my_site/web/.htaccess 文件存在且配置正确,该文件提供了对敏感目录(如 /sites/default/files)的访问保护。

6.3 启用HTTPS

生产环境必须启用HTTPS加密传输。阿里云提供了免费的SSL证书(DigiCert品牌单域名证书),可通过控制台的"数字证书管理服务"申请并部署到ECS实例。部署完成后,修改Drupal的配置文件 settings.php,将 $settings['trusted_host_patterns'] 设置为您的域名,并强制所有流量重定向到HTTPS。

6.4 定期更新

Drupal核心和第三方模块会定期发布安全更新。建议通过以下命令定期检查并更新:

cd /var/www/html/my_site
composer update

七、性能优化建议

7.1 启用OPcache

OPcache是PHP的内置字节码缓存扩展,能够将PHP脚本的编译结果缓存到共享内存中,大幅减少重复编译的开销。确认php.ini中已启用OPcache:

vim /etc/php.ini

确保以下配置生效:

opcache.enable=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60

7.2 配置Drupal内部缓存

在Drupal后台的"配置"→"开发"→"性能"页面中,启用页面缓存、区块缓存和渲染缓存,并配置合理的缓存过期时间。对于匿名访问者较多的站点,还可以启用内部页面缓存模块(Internal Page Cache)。

7.3 使用Redis或Memcached

对于高流量站点,建议使用Redis或Memcached作为Drupal的缓存后端,替代默认的数据库缓存。这些内存级缓存系统能够显著降低数据库查询压力。安装和配置Redis的简要步骤:

# 安装Redis
yum install redis -y
systemctl start redis
systemctl enable redis

# 安装Drupal的Redis模块(通过Composer)
cd /var/www/html/my_site
composer require drupal/redis

然后在Drupal后台启用Redis模块,并在 settings.php 中添加相应的缓存配置。

7.4 启用CSS/JS聚合

在Drupal后台的"性能"设置中,启用"聚合CSS文件"和"聚合JavaScript文件"。这可以将多个CSS或JS文件合并为一个,减少HTTP请求数量,加快页面加载速度。

八、常见问题排查

8.1 无法访问Drupal安装页面

如果在浏览器中输入地址后无法打开安装页面,按以下顺序排查:

  • 检查ECS实例的安全组是否已放行80端口
  • 检查Web服务是否正常运行:systemctl status httpd 或 systemctl status nginx
  • 检查PHP-FPM是否正常运行:systemctl status php-fpm
  • 检查防火墙是否拦截了80端口:systemctl status firewalld

8.2 PHP版本不兼容

Drupal对PHP版本有严格的依赖关系。如果安装过程中提示PHP版本不满足要求,可通过以下命令查看当前PHP版本:

php -v

若版本过低,需要卸载旧版本并安装符合要求的PHP版本。

8.3 数据库连接失败

如果数据库配置页面提示连接失败,检查:

  • MySQL服务是否正常运行:systemctl status mysqld
  • 数据库用户名、密码、数据库名称是否正确
  • 数据库用户是否具有从localhost连接的权限

九、总结

本文完整介绍了在阿里云Linux云服务器上搭建Drupal网站的完整流程,从ECS实例选购、安全组配置、LAMP/LNMP环境部署,到Composer安装Drupal核心、中文语言包配置、安装向导操作,再到安装后的安全加固和性能优化。整个流程涉及多个技术环节,但只要按照步骤逐一执行,即使是没有深厚Linux背景的开发者也能顺利完成Drupal站点的部署。

Drupal作为企业级内容管理框架,其价值随着站点规模的扩大而愈发凸显。掌握在云服务器上部署Drupal的技能,不仅能够帮助个人开发者快速构建原型系统,更是企业数字化转型中一项实用的技术能力。希望本文能够成为您在Drupal部署之路上的一份可靠参考。

常见问题解答

问1:搭建Drupal网站最低需要什么配置的ECS实例?
答:个人测试或小型博客场景下,建议至少2核CPU、2GB内存、40GB SSD硬盘。生产环境建议2核4GB起步,具体取决于预期的访问量和内容规模。

问2:LAMP和LNMP架构应该如何选择?
答:Apache配置简单、兼容性好,适合新手和中小型站点;Nginx并发处理能力强、静态资源性能优异,适合高流量站点。两者均可稳定运行Drupal,可根据自身熟悉程度选择。

问3:安装Drupal时提示缺少PHP扩展怎么办?
答:根据页面提示的扩展名称,使用 yum install php-<扩展名> 安装对应扩展,然后重启Web服务和PHP-FPM即可。

问4:安装完成后为什么还要移除settings.php的写入权限?
答:安装完成后保留写入权限存在安全风险,攻击者可能通过Web漏洞篡改配置文件。移除写入权限是最基本的安全加固措施。

问5:如何为Drupal站点启用HTTPS?
答:首先在阿里云控制台申请免费的SSL证书,将证书部署到ECS实例后,修改Nginx或Apache的配置文件开启443端口的SSL监听,并配置证书路径。然后在Drupal的settings.php中设置 trusted_host_patterns 并启用HTTPS重定向。

问6:Drupal核心和模块如何更新?
答:使用Composer进行更新。进入Drupal根目录(如 /var/www/html/my_site),执行 composer update 即可更新所有依赖包。建议在更新前备份数据库和代码。

相关文章

买阿里云服务器能便宜吗?十年代理揭秘 3 大省钱攻略!

买阿里云服务器能便宜吗?十年代理揭秘 3 大省钱攻略!

作为深耕阿里云代理领域 10 年的 “老司机”,经常被问到:“买阿里云服务器能便宜吗?有没有优惠价格?” 今天就用实打实的行业经验告诉你:不仅能便宜,选对渠道还能省一大笔! 这篇文章带你解锁阿里云服务…

做了 10 年腾讯云代理,我想跟你聊聊返佣那些事儿​

做了 10 年腾讯云代理,我想跟你聊聊返佣那些事儿​

最近总有朋友问我:“腾讯云有返点吗?腾讯云服务器能拿佣金不?返佣比例到底有多少?” 作为一个在腾讯云代理行业摸爬滚打了 10 年的 “老人”,今天就来跟大家好好…

阿里云代理商返佣机制深度解析:头部代理优势与企业合作策略

阿里云代理商返佣机制深度解析:头部代理优势与企业合作策略

阿里云代理商的核心价值定位1. 代理商的角色与职责阿里云代理商作为阿里云生态的核心合作伙伴,承担着双重核心职能:• 产品销售:负责推广销售阿里云全系列云产品,包括云服务器ECS、云数据库RDS、对象存…

阿里云代理商返佣机制深度解析:头部代理优势与企业合作策略

阿里云代理商返佣机制深度解析:头部代理优势与企业合作策略

01一、阿里云代理商的核心价值定位1. 代理商的角色与职责阿里云代理商作为阿里云生态的核心合作伙伴,承担着双重核心职能:• 产品销售:负责推广销售阿里云全系列云产品,包括云服务器ECS、云数据库RDS…

阿里云代理商有哪些?阿里云代理返点是真的么?

阿里云代理商有哪些?阿里云代理返点是真的么?

一,阿里云代理商基本介绍阿里云代理商通俗一点,就是指从事阿里云云服务器,云数据库等阿里云公有云产品销售的代理商,每销售一件阿里云公有云产品出去,阿里云给予该代理商一定比例的提成。在阿里云官方定义中,这…

2026阿里云代理商生态全解析:五级代理体系、返佣政策与企业上云指南

2026阿里云代理商生态全解析:五级代理体系、返佣政策与企业上云指南

一、阿里云五级代理体系:权益阶梯与合作价值1. 五级代理的核心权益差异阿里云构建了多层次的代理生态体系,涵盖全国总代理、区域核心代理、行业ISV(独立软件开发商)、金牌/银牌认证代理及标准代理五大核心…