阿里云ECS(Elastic Compute Service)是目前国内使用最广泛的云服务器产品之一,而Apache作为老牌的开源Web服务器,依然是部署静态网站和PHP应用的主流选择。本文将以CentOS和Ubuntu两种常见系统为例,完整讲解从登录服务器到Apache成功对外提供服务的全过程,并覆盖安全组配置这一最容易踩坑的环节。

一、准备工作:购买实例并远程登录
登录阿里云控制台后,在产品列表中找到云服务器ECS,点击创建实例。操作系统建议选择CentOS 7.9或Ubuntu 22.04这类长期支持版本,带宽按需选择,个人学习用途1Mbps到3Mbps通常够用。实例创建时务必设置好登录凭证,可以选择密钥对(更安全)或者自定义root密码。
实例运行起来之后,记住公网IP地址。Linux和Mac用户可以直接在终端执行ssh命令登录:
ssh root@你的公网IP
Windows用户推荐使用PuTTY或者Windows Terminal自带的OpenSSH客户端。第一次连接会提示指纹确认,输入yes即可。登录成功后,先更新软件源,保证后续安装的软件包是最新版本。
CentOS系统执行:
yum update -y
Ubuntu系统执行:
apt update && apt upgrade -y
二、安装并启动Apache服务
Apache在CentOS中的软件包名叫httpd,在Ubuntu中则叫apache2,名称不同但功能一致。安装命令如下。
CentOS安装:
yum install -y httpd systemctl start httpd systemctl enable httpd # 设置开机自启
Ubuntu安装:
apt install -y apache2 systemctl start apache2 systemctl enable apache2
启动完成后,可以先在服务器本地验证一下服务是否正常:
curl -I http://127.0.0.1
如果返回HTTP 200状态码,说明Apache已经在本地正常监听80端口。此时在浏览器中输入公网IP,如果能看到Apache的默认欢迎页面,说明环境已经通了。如果本地curl正常但浏览器打不开,问题几乎都出在安全组,下一节详细说明。
三、配置安全组与防火墙放行80端口
阿里云ECS默认有两层网络隔离:安全组和系统内的防火墙(firewalld或ufw)。很多初学者只在系统里放行了端口却仍然无法访问,原因就是忽略了安全组这一层。
安全组的配置位置在控制台:进入ECS实例详情页,点击安全组选项卡,进入安全组规则,添加一条入方向规则,协议类型选择HTTP(80),授权对象填0.0.0.0/0表示对所有IP开放。如果后续要上HTTPS,还需要同样方式放行443端口。
系统内部防火墙也要同步放行:
# CentOS firewall-cmd --permanent --add-service=http firewall-cmd --reload # Ubuntu ufw allow 80/tcp ufw status verbose
需要强调的是,安全组是作用在云平台虚拟网络层的,优先级高于系统防火墙。也就是说,即使系统防火墙全部放行,安全组没有开80端口,外部请求依然会被拦截。两层都配置正确后,再用浏览器访问公网IP验证。
四、部署网站文件与虚拟主机配置
Apache默认的网站根目录,CentOS在/var/www/html,Ubuntu同样在/var/www/html。把自己的网页文件上传到这个目录即可完成最简单的部署。上传可以使用scp命令:
scp -r ./mywebsite/* root@你的公网IP:/var/www/html/
当需要在同一台服务器上托管多个网站时,就要用到虚拟主机功能。以Ubuntu为例,在/etc/apache2/sites-available/目录下新建配置文件:
<VirtualHost *:80>
ServerName www.ipipp.com
DocumentRoot /var/www/site1
<Directory /var/www/site1>
Options -Indexes +FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/site1_error.log
CustomLog ${APACHE_LOG_DIR}/site1_access.log combined
</VirtualHost>CentOS用户则是在/etc/httpd/conf.d/目录下新建.conf文件,写法基本相同。配置完成后启用站点并重启服务:
a2ensite site1.conf systemctl reload apache2
记得把域名解析的A记录指向ECS公网IP,如果域名在国内使用还需要完成ICP备案,否则80和443端口会被阿里云拦截。
五、常见问题排查
页面访问被拒绝(403 Forbidden):检查网站目录权限,确保目录可读可执行,通常执行chmod -R 755 /var/www/html即可。SELinux开启的CentOS系统还需要执行chcon -R -t httpd_sys_content_t /var/www/html修改安全上下文。
80端口被占用:用netstat -tlnp | grep 80或ss -tlnp | grep 80查看占用进程,常见冲突来源是Nginx,先停掉对应服务或者改用不同端口。
修改配置后不生效:先用apachectl configtest检查语法是否有误,CentOS对应命令是httpd -t,确认Syntax OK后再reload服务,避免直接restart导致服务起不来。
按照以上步骤操作,一套稳定运行的Apache Web环境就搭建完成了。后续如果需要支持PHP应用,安装对应的PHP模块并重启Apache即可扩展成完整的LAMP架构。
阿里云ECSApache环境搭建LAMP部署修改时间:2026-09-02 10:54:34