导读:本期聚焦于天马创作的《Apache如何在华为云弹性云服务器ECS上部署?详细安装配置教程》,敬请观看详情。想在华为云弹性云服务器上搭建网站服务却不知道从哪一步开始?这篇文章从购买和登录ECS实例讲起,一步步演示在Linux环境下安装Apache的完整流程,包括安全组端口放行、httpd服务启动、防火墙设置、虚拟主机配置以及默认站点目录的修改方法。文中还整理了部署过程中常见报错的排查思路,比如端口被占用、页面无法访问、权限不足等问题的解决办法,帮助你快速把一个可对外访问的Web服务跑起来,适合刚接触云服务器的新手参考。

把一个网站从本地搬到公网,最常见的第一步就是在云服务器上部署Web服务。Apache作为全球使用率极高的开源HTTP服务器,搭配华为云弹性云服务器ECS(Elastic Cloud Server)使用,可以快速搭建出稳定可用的网站运行环境。本文将以CentOS和Ubuntu两种主流系统为例,完整演示从零开始的部署过程,并覆盖安全组配置、虚拟主机、常见报错处理等实际操作中一定会遇到的问题。

Apache如何在华为云弹性云服务器ECS上部署?详细安装配置教程

一、部署前的准备工作

在正式安装Apache之前,需要先确认几件事。第一是拥有一台华为云ECS实例,可以在华为云控制台的“弹性云服务器ECS”页面购买,配置方面个人网站选择1核2G的入门规格基本够用,操作系统建议选择CentOS 7.9或者Ubuntu 22.04这类主流发行版,方便排查问题。第二是确认登录方式,购买时绑定密钥对或者设置root密码都可以,后续用SSH工具连接。

拿到服务器后,先通过SSH登录确认系统状态。Windows用户可以用PuTTY、XShell或者直接在命令行使用ssh命令,Mac和Linux用户直接打开终端即可:

ssh root@你的弹性公网IP
# 登录后先更新系统软件包
# CentOS / 华为云EulerOS
yum update -y
# Ubuntu / Debian
apt update && apt upgrade -y

更新过程可能需要几分钟。另外建议执行cat /etc/os-release确认系统版本,因为不同发行版安装Apache的命令和包名并不一样,这是新手最容易混淆的地方:CentOS系列中软件包叫httpd,而Ubuntu和Debian系列中叫apache2

二、安装Apache并启动服务

确认完系统环境后就可以安装了。两种系统的安装命令如下:

# CentOS 系统
yum install httpd -y
# Ubuntu 系统
apt install apache2 -y

安装完成后启动服务,并设置为开机自启动,这一点很重要,否则服务器重启后网站就访问不了了:

# CentOS 系统
systemctl start httpd
systemctl enable httpd
systemctl status httpd

# Ubuntu 系统
systemctl start apache2
systemctl enable apache2
systemctl status apache2

如果status输出中显示active (running),说明服务已经正常启动。此时在浏览器输入服务器的弹性公网IP测试,如果能看到Apache的默认欢迎页面,说明部署已经成功了一半。如果无法访问,大概率是安全组没放行端口,这是华为云ECS部署中最经典的一个坑,下一节详细说明。

还可以通过命令在服务器本地验证服务是否真的在监听80端口:

# 查看端口监听情况
netstat -tlnp | grep :80
# 或者用 curl 直接请求本地
curl -I http://127.0.0.1

如果本地curl返回HTTP 200,但外网访问不通,那问题百分之百出在网络层面而不是Apache本身。

三、安全组放行与防火墙配置

华为云ECS默认使用安全组来控制进出流量,相当于云上的一道虚拟防火墙。新购买的实例默认只放行了SSH的22端口,80和443端口需要手动添加规则。操作路径是:登录华为云控制台,进入“弹性云服务器ECS”,点击实例名称进入详情页,切换到“安全组”标签页,点击“更改安全组规则”,在入方向规则中添加两条规则:协议端口分别为80和443,源地址填0.0.0.0/0表示对所有公网IP开放。

安全组放行之后,还需要检查服务器内部的操作系统防火墙。很多新手以为改完安全组就万事大吉,结果服务器上firewalld或者ufw还在拦截请求:

# CentOS firewalld 放行并重启防火墙
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload

# Ubuntu ufw 放行
ufw allow 80/tcp
ufw allow 443/tcp
ufw reload

这两层防火墙是独立的:安全组在云平台层面拦截,firewalld和ufw在系统层面拦截,任何一层没放行都会导致访问失败。排查时建议先在服务器上curl 127.0.0.1确认Apache本身正常,再逐层排查系统防火墙和安全组,这样定位效率最高。

四、部署网站与虚拟主机配置

Apache默认的站点根目录在CentOS下是/var/www/html,Ubuntu下同样是/var/www/html,只是主配置文件路径不同:CentOS是/etc/httpd/conf/httpd.conf,Ubuntu是/etc/apache2/apache2.conf,站点配置分别放在/etc/httpd/conf.d//etc/apache2/sites-available/目录下。把自己的网页文件上传到根目录即可完成最简单的部署:

# 上传文件(在本地机器执行)
scp ./index.html root@你的公网IP:/var/www/html/

# 修改权限,确保Apache用户可读
chown -R apache:apache /var/www/html   # CentOS
chown -R www-data:www-data /var/www/html  # Ubuntu

如果需要在同一台服务器上托管多个网站,就要用到虚拟主机功能。以Ubuntu为例,在/etc/apache2/sites-available/下新建一个配置文件:

<VirtualHost *:80>
    ServerName www.ipipp.com
    DocumentRoot /var/www/mysite
    <Directory /var/www/mysite>
        Options -Indexes +FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
    ErrorLog ${APACHE_LOG_DIR}/mysite_error.log
    CustomLog ${APACHE_LOG_DIR}/mysite_access.log combined
</VirtualHost>

保存后执行a2ensite mysite.conf启用站点,再执行systemctl reload apache2重载配置。CentOS用户则直接把配置文件放到conf.d目录下重启httpd即可。配置中的AllowOverride All允许站点目录下的.htaccess文件生效,这对后续部署PHP程序或做伪静态很有用。

五、常见问题排查

部署过程中有几个高频问题值得单独说明。第一是端口被占用,启动Apache时报Address already in use,可以用lsof -i:80或者netstat -tlnp找到占用进程,通常是Nginx等先安装的服务,停掉或者改端口即可。第二是访问返回403 Forbidden,多数是目录权限不足或者缺少默认首页文件,检查目录属主和权限,确认存在index.html或index.php,也可以在配置中通过DirectoryIndex指令指定默认首页。

第三是修改配置后重启失败,Apache提供了语法检查命令httpd -tapachectl configtest,在重启前先跑一遍能快速定位拼写错误和标签未闭合的问题。日志也是排查问题的关键,CentOS的默认日志在/var/log/httpd/目录,Ubuntu在/var/log/apache2/目录,遇到疑难问题先看error_log往往比盲目搜索更有效率。

最后提一下HTTPS的配置。网站要对外正式提供服务时,建议为域名申请免费证书并启用SSL,华为云提供免费的DV证书可以直接下载使用,配合mod_ssl模块完成部署。整体来说,在华为云ECS上部署Apache的核心难点不在安装本身,而在于理解安全组、系统防火墙、Apache配置这三层结构之间的关系,理清这个思路之后,后续维护和扩展都会顺畅很多。

Apache部署华为云ECS服务器配置修改时间:2026-09-10 19:12:40

免责声明:已尽一切努力确保本网站所含信息的准确性。网站作品多为原创整理与精心创作,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们进行处理Email:chomcom@qq.com。
引用或转载本作品时,请注明当前出处:https://www.ipipp.com/html/20260910/54211.html,基于非商业用途的前提下,欢迎转载或二创本作品。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。