0

0

CentOSWeb服务器如何搭建_CentOS搭建Apache服务器

蓮花仙者

蓮花仙者

发布时间:2025-09-16 23:42:02

|

213人浏览过

|

来源于php中文网

原创

在centos上搭建web服务器需安装并配置apache(httpd),通过更新系统、安装httpd、启动服务、开放防火墙端口,可快速部署网站;使用虚拟主机功能可在同一服务器托管多个站点,结合selinux权限管理、ssl加密、mpm优化、内容压缩与缓存策略,提升安全性与性能。

centosweb服务器如何搭建_centos搭建apache服务器

在CentOS系统上搭建Web服务器,核心就是配置Apache(HTTPD)服务,它能让你快速地将网站内容呈现在互联网上。这过程比你想象的要直接,主要是通过几个关键的命令和配置步骤来完成,是构建任何在线服务的基础。

解决方案

要在CentOS上搭建Apache服务器,以下是我的操作步骤和一些思考:

首先,确保你的CentOS系统是最新状态,这是一个好习惯,可以避免很多不必要的兼容性问题。

sudo yum update -y

然后,安装Apache HTTP服务器。在CentOS中,它的包名是

httpd

sudo yum install httpd -y

安装完成后,你需要启动Apache服务,并设置它在系统启动时自动运行,这样服务器重启后你的网站也能立即上线。

sudo systemctl start httpd
sudo systemctl enable httpd

接下来,防火墙配置是必不可少的一步。CentOS默认启用

firewalld
,你需要允许HTTP(80端口)和HTTPS(443端口)流量通过,否则外部用户无法访问你的网站。

sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload

现在,你可以通过在浏览器中输入你的服务器IP地址来验证Apache是否成功运行。如果看到Apache的测试页面,那就说明一切顺利。默认的网页文件通常位于

/var/www/html
。你可以尝试创建一个简单的
index.html
文件来替换默认页面:

echo "<h1>Hello from my CentOS Apache Server!</h1>" | sudo tee /var/www/html/index.html

这样,一个基本的Web服务器就搭建好了。

为什么在CentOS上,Apache仍然是许多人的首选Web服务器?

谈到Web服务器,Apache总是一个绕不开的名字,尤其是在CentOS这样的企业级Linux发行版上。我个人觉得,选择Apache,很大程度上是看重它的“稳重”和“成熟”。它不是最新的技术,但它久经考验,拥有一个庞大且活跃的社区,这意味着当你遇到问题时,几乎总能找到现成的解决方案或者求助的对象。

它的模块化设计是我非常欣赏的一点。你需要什么功能,就加载什么模块,比如SSL加密(

mod_ssl
)、URL重写(
mod_rewrite
)、内容压缩(
mod_deflate
)等。这种高度的可扩展性让它能适应各种复杂的应用场景,从简单的静态网站到复杂的动态应用。而且,它对
.htaccess
文件的支持,让非root用户也能在特定目录下进行一些配置,这对于共享主机环境或者开发者来说非常方便,虽然有时候也会带来一些性能上的考量。

当然,也有人会说Nginx在处理高并发静态内容方面表现更优异,这没错。但在很多中小型项目,或者对配置灵活性、兼容性有较高要求的场景下,Apache的地位依然难以撼动。它就像一个经验丰富的老兵,虽然不总是最快的,但总能稳稳地完成任务。

Apache配置完成后,如何确保网站内容安全和高效访问?

搭建好Apache只是第一步,要让你的网站既安全又快速地运行,还有不少细节需要打磨。我通常会从几个方面着手:

安全方面,SELinux是CentOS的一道重要防线。 默认情况下,它可能会阻止Apache访问非标准目录下的文件。如果你把网站内容放在

/var/www/html
之外,比如
/home/user/mywebsite
,那么很可能需要调整SELinux的上下文,或者更简单粗暴地,暂时禁用它(但这不推荐在生产环境)。正确的做法是使用
semanage fcontext -a -t httpd_sys_content_t "/path/to/your/website(/.*)?"
restorecon -Rv /path/to/your/website
来赋予Apache正确的权限。

SSL/TLS加密是现代网站的标配。 没有HTTPS,你的网站在浏览器里可能会被标记为“不安全”,这不仅影响用户体验,也影响SEO。最经济高效的方式是使用Let's Encrypt,它提供免费的SSL证书。安装

certbot
工具,然后运行简单的命令就能自动化申请和续期证书,比如
sudo certbot --apache -d yourdomain.com -d www.yourdomain.com
。这大大降低了实现加密的门槛。

Destoon B2B网站
Destoon B2B网站

Destoon B2B网站管理系统是一套完善的B2B(电子商务)行业门户解决方案。系统基于PHP+MySQL开发,采用B/S架构,模板与程序分离,源码开放。模型化的开发思路,可扩展或删除任何功能;创新的缓存技术与数据库设计,可负载千万级别数据容量及访问。 系统特性1、跨平台。支持Linux/Unix/Windows服务器,支持Apache/IIS/Zeus等2、跨浏览器。基于最新Web标准构建,在

下载

访问控制也是个关键点。

httpd.conf
或虚拟主机配置中,你可以使用
<Directory>
块来限制对特定目录的访问,比如
Require all denied
,然后
Require ip 192.168.1.0/24
来只允许内网访问,这对于后台管理界面等非常有用。

至于高效访问,有几个优化点值得关注。

  • MPM(Multi-Processing Module)选择: Apache有多种MPM,如

    prefork
    worker
    event
    prefork
    是最老的,每个请求一个进程,适合老旧的、非线程安全的PHP应用。
    worker
    event
    则使用多线程处理请求,效率更高,尤其
    event
    在处理Keep-Alive连接时表现更好。查看
    httpd -V
    可以知道当前使用的MPM,通常CentOS会默认使用
    event
    worker
    。根据你的应用类型(比如PHP FPM通常搭配
    event
    worker
    ),调整
    httpd.conf
    中的MPM配置,设置合适的
    StartServers
    MinSpareThreads
    MaxRequestWorkers
    等参数,以避免服务器资源浪费或请求排队。

  • 内容压缩: 启用

    mod_deflate
    可以对HTML、CSS、JavaScript等文本内容进行Gzip压缩,显著减少传输数据量,加快页面加载速度。在配置文件中添加类似以下内容即可:

    <IfModule mod_deflate.c>
        AddOutputFilterByType DEFLATE text/plain
        AddOutputFilterByType DEFLATE text/html
        AddOutputFilterByType DEFLATE text/xml
        AddOutputFilterByType DEFLATE text/css
        AddOutputFilterByType DEFLATE application/javascript
        # ... 更多类型
    </IfModule>
  • 浏览器缓存: 利用

    mod_expires
    设置静态资源的缓存策略,告诉浏览器哪些文件可以缓存多久。这能有效减少重复请求,特别是对于图片、CSS、JS等不常变动的文件。

    <IfModule mod_expires.c>
        ExpiresActive On
        ExpiresByType image/jpg "access plus 1 year"
        ExpiresByType text/css "access plus 1 month"
        # ... 更多类型和时间
    </IfModule>

这些措施结合起来,能让你的CentOS上的Apache服务器在安全性和性能上都有一个质的飞跃。

如何在CentOS上为多个网站配置Apache虚拟主机?

如果你想在一台CentOS服务器上托管多个域名或网站,那么Apache的虚拟主机(Virtual Host)功能就是你的救星。它允许Apache根据请求的域名来决定提供哪个网站的内容,而不需要为每个网站都单独部署一台服务器。这在资源利用上非常高效。

配置虚拟主机的基本思路是为每个网站创建一个独立的配置块,指定它们的域名、文档根目录、日志文件等。

  1. 创建网站目录: 首先,为每个网站创建独立的根目录。比如,我有两个网站

    example.com
    anothersite.net

    sudo mkdir -p /var/www/example.com/html
    sudo mkdir -p /var/www/anothersite.net/html
    sudo chown -R apache:apache /var/www/example.com
    sudo chown -R apache:apache /var/www/anothersite.net
    sudo chmod -R 755 /var/www/example.com
    sudo chmod -R 755 /var/www/anothersite.net

    并在每个目录下创建测试用的

    index.html
    文件。

    echo "<h1>Welcome to Example.com!</h1>" | sudo tee /var/www/example.com/html/index.html
    echo "<h1>Welcome to Anothersite.net!</h1>" | sudo tee /var/www/anothersite.net/html/index.html
  2. 创建虚拟主机配置文件: Apache通常会在

    /etc/httpd/conf.d/
    目录下加载
    .conf
    结尾的配置文件。我们可以为每个虚拟主机创建一个单独的文件,这样管理起来更清晰。

    首先,确保主配置文件

    /etc/httpd/conf/httpd.conf
    中包含了这行(通常默认就有):
    IncludeOptional conf.d/*.conf

    然后,为

    example.com
    创建一个配置文件
    /etc/httpd/conf.d/example.com.conf

    <VirtualHost *:80>
        ServerAdmin webmaster@example.com
        ServerName example.com
        ServerAlias www.example.com
        DocumentRoot /var/www/example.com/html
        ErrorLog /var/log/httpd/example.com_error.log
        CustomLog /var/log/httpd/example.com_access.log combined
    
        <Directory /var/www/example.com/html>
            Options Indexes FollowSymLinks
            AllowOverride All
            Require all granted
        </Directory>
    </VirtualHost>

    接着,为

    anothersite.net
    创建配置文件
    /etc/httpd/conf.d/anothersite.net.conf

    <VirtualHost *:80>
        ServerAdmin webmaster@anothersite.net
        ServerName anothersite.net
        ServerAlias www.anothersite.net
        DocumentRoot /var/www/anothersite.net/html
        ErrorLog /var/log/httpd/anothersite.net_error.log
        CustomLog /var/log/httpd/anothersite.net_access.log combined
    
        <Directory /var/www/anothersite.net/html>
            Options Indexes FollowSymLinks
            AllowOverride All
            Require all granted
        </Directory>
    </VirtualHost>

    这里需要注意几点:

    • ServerName
      :指定这个虚拟主机响应的域名。
    • ServerAlias
      :指定这个虚拟主机可能响应的其他域名,比如带
      www
      的。
    • DocumentRoot
      :指定网站内容的根目录。
    • ErrorLog
      CustomLog
      :为每个网站配置独立的错误日志和访问日志,方便排查问题和统计分析。
    • <Directory>
      块:配置特定目录的访问权限和行为,
      AllowOverride All
      允许在该目录下使用
      .htaccess
      文件。
  3. 重启Apache服务: 配置完成后,一定要重启Apache服务,让新的配置生效。

    sudo systemctl restart httpd

    现在,当用户访问

    example.com
    时,Apache会提供
    /var/www/example.com/html
    下的内容;访问
    anothersite.net
    时,则提供
    /var/www/anothersite.net/html
    下的内容。别忘了,你需要确保这些域名已经正确解析到你的CentOS服务器的IP地址上。如果只是本地测试,可以在
    /etc/hosts
    文件中手动添加域名和IP的映射。

通过这种方式,我们可以灵活地管理多个网站,并且每个网站的配置都可以独立维护,这对于服务器资源有限,但需要托管多个项目的场景来说,简直是太实用了。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
nginx 重启
nginx 重启

nginx重启对于网站的运维来说是非常重要的,根据不同的需求,可以选择简单重启、平滑重启或定时重启等方式。本专题为大家提供nginx重启的相关的文章、下载、课程内容,供大家免费下载体验。

245

2023.07.27

nginx 配置详解
nginx 配置详解

Nginx的配置是指设置和调整Nginx服务器的行为和功能的过程。通过配置文件,可以定义虚拟主机、HTTP请求处理、反向代理、缓存和负载均衡等功能。Nginx的配置语法简洁而强大,允许管理员根据自己的需要进行灵活的调整。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

519

2023.08.04

nginx配置详解
nginx配置详解

NGINX与其他服务类似,因为它具有以特定格式编写的基于文本的配置文件。本专题为大家提供nginx配置相关的文章,大家可以免费学习。

587

2023.08.04

tomcat和nginx有哪些区别
tomcat和nginx有哪些区别

tomcat和nginx的区别:1、应用领域;2、性能;3、功能;4、配置;5、安全性;6、扩展性;7、部署复杂性;8、社区支持;9、成本;10、日志管理。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

243

2024.02.23

nginx报404怎么解决
nginx报404怎么解决

当访问 nginx 网页服务器时遇到 404 错误,表明服务器无法找到请求资源,可以通过以下步骤解决:1. 检查文件是否存在且路径正确;2. 检查文件权限并更改为 644 或 755;3. 检查 nginx 配置,确保根目录设置正确、没有冲突配置等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

607

2024.07.09

Nginx报404错误解决方法
Nginx报404错误解决方法

解决方法:只需要加上这段配置:try_files $uri $uri/ /index.html;即可。想了解更多Nginx的相关内容,可以阅读本专题下面的文章。

3608

2024.08.07

nginx部署php项目教程汇总
nginx部署php项目教程汇总

本专题整合了nginx部署php项目教程汇总,阅读专题下面的文章了解更多详细内容。

53

2026.01.13

nginx配置文件详细教程
nginx配置文件详细教程

本专题整合了nginx配置文件相关教程详细汇总,阅读专题下面的文章了解更多详细内容。

67

2026.01.13

Golang 测试体系与代码质量保障:工程级可靠性建设
Golang 测试体系与代码质量保障:工程级可靠性建设

Go语言测试体系与代码质量保障聚焦于构建工程级可靠性系统。本专题深入解析Go的测试工具链(如go test)、单元测试、集成测试及端到端测试实践,结合代码覆盖率分析、静态代码扫描(如go vet)和动态分析工具,建立全链路质量监控机制。通过自动化测试框架、持续集成(CI)流水线配置及代码审查规范,实现测试用例管理、缺陷追踪与质量门禁控制,确保代码健壮性与可维护性,为高可靠性工程系统提供质量保障。

6

2026.02.28

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Sass 教程
Sass 教程

共14课时 | 0.9万人学习

Bootstrap 5教程
Bootstrap 5教程

共46课时 | 3.5万人学习

CSS教程
CSS教程

共754课时 | 37.7万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号