温馨提示×

centos apache如何部署

小樊
33
2025-12-15 13:30:53
栏目: 智能运维

CentOS 上部署 Apache 的完整步骤

一 准备与安装

  • 更新系统并安装 Apache(httpd):
    • 命令:sudo yum update -ysudo yum install httpd -y
  • 启动服务并设置开机自启:
    • 命令:sudo systemctl start httpdsudo systemctl enable httpd
  • 验证运行状态:
    • 命令:sudo systemctl status httpd(应看到 active (running)
  • 访问测试:
    • 在浏览器打开 http://服务器IP,出现 Apache 测试页 表示安装成功。

二 防火墙与 SELinux 设置

  • 开放 HTTP/HTTPS 端口(firewalld):
    • 命令:sudo firewall-cmd --permanent --add-service=httpsudo firewall-cmd --permanent --add-service=httpssudo firewall-cmd --reload
    • 校验:sudo firewall-cmd --list-all(应看到 http/https 在 services 中)
  • SELinux 与目录权限(如启用 SELinux):
    • 目录上下文:sudo chcon -Rt httpd_sys_content_t /var/www/你的站点目录
    • 如应用需对外发起连接(例如后端 API/数据库):sudo setsebool -P httpd_can_network_connect 1
    • 不建议直接禁用 SELinux,优先使用布尔值与上下文进行精细化放行。

三 虚拟主机与目录结构

  • 创建站点目录与示例页面:
    • 命令:sudo mkdir -p /var/www/example.com
    • 权限:sudo chown -R apache:apache /var/www/example.comsudo chmod -R 755 /var/www/example.com
    • 测试页:echo "<html><body><h1>It works!</h1></body></html>" | sudo tee /var/www/example.com/index.html
  • 新建虚拟主机配置(推荐放在 /etc/httpd/conf.d/,后缀 .conf):
    • 示例:
      <VirtualHost *:80>
          ServerAdmin admin@example.com
          DocumentRoot /var/www/example.com
          ServerName example.com
          ServerAlias www.example.com
          ErrorLog /var/log/httpd/example.com-error.log
          CustomLog /var/log/httpd/example.com-access.log combined
      </VirtualHost>
      
  • 使配置生效:
    • 语法检查:sudo apachectl configtest
    • 重载或重启:sudo systemctl reload httpd(或 restart)。

四 启用 HTTPS 与自动续期

  • 安装 Certbot(Let’s Encrypt):
    • 命令:sudo yum install epel-release -ysudo yum install certbot python2-certbot-apache -y
  • 获取并自动配置证书:
    • 命令:sudo certbot --apache -d example.com -d www.example.com
    • 按提示选择是否重定向 HTTP→HTTPS
  • 自动续期(证书有效期 90 天):
    • 方式一:添加定时任务
      • 命令:sudo crontab -e
      • 内容:0 0 * * * /usr/bin/certbot renew --quiet
    • 方式二:启用系统定时器
      • 命令:sudo systemctl enable --now certbot-renew.timer
  • 验证续期:sudo certbot renew --dry-run

五 性能优化与 PHP 支持

  • 基础性能参数(编辑 /etc/httpd/conf/httpd.conf 或相应包含文件):
    • 建议值:
      KeepAlive On
      MaxKeepAliveRequests 100
      KeepAliveTimeout 5
      
  • 缓存模块(可选,提升静态资源命中率):
    • 安装:sudo yum install mod_cache mod_cache_disk -y
    • 示例片段:
      <IfModule mod_cache.c>
        CacheQuickHandler off
        CacheLock on
        CacheLockPath /tmp/mod_cache-lock
        CacheLockMaxAge 5
        CacheIgnoreHeaders Set-Cookie
        <IfModule mod_cache_disk.c>
          CacheRoot /var/cache/mod_cache_disk
          CacheEnable disk /
          CacheDirLevels 2
          CacheDirLength 1
        </IfModule>
      </IfModule>
      
  • 启用 Gzip 压缩(减少传输体积):
    • 示例:
      AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/javascript
      
  • PHP 支持(如运行 PHP 应用):
    • 安装:sudo yum install php php-fpm -y
    • 使 FPM 与 Apache 协同(如使用 proxy_fcgi,按发行版模块启用),并重启服务
    • 测试:echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php,访问 http://服务器IP/info.php

0