您好,登录后才能下订单哦!
# CentOS下怎么部署Apache服务
## 一、Apache简介
Apache HTTP Server(简称Apache)是世界上最流行的开源Web服务器软件之一,由Apache软件基金会开发和维护。它具有以下核心特点:
- 跨平台支持(Linux/Windows/macOS等)
- 高度模块化设计
- 支持多种编程语言(PHP/Python/Perl等)
- 强大的URL重写功能(mod_rewrite)
- 丰富的身份验证机制
- 良好的文档支持和社区生态
在CentOS系统中,Apache通常作为LAMP(Linux+Apache+MySQL+PHP)技术栈的基础组件使用。
## 二、环境准备
### 1. 系统要求
- CentOS 7/8(本文以CentOS 7为例)
- 最小化安装的系统
- 至少1GB可用内存
- 10GB以上磁盘空间
- root或sudo权限用户
### 2. 更新系统
```bash
sudo yum update -y
sudo yum upgrade -y
允许HTTP(80)和HTTPS(443)端口:
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
sudo yum install httpd -y
检查安装版本:
httpd -v
预期输出类似:
Server version: Apache/2.4.6 (CentOS)
Server built: Nov 16 2020 16:18:20
Apache的主要配置文件位于:
/etc/httpd/conf/httpd.conf
重要目录:
- /var/www/html
:默认网站根目录
- /etc/httpd/conf.d/
:附加配置文件目录
- /var/log/httpd/
:日志文件目录
编辑主配置文件:
sudo vi /etc/httpd/conf/httpd.conf
关键参数调整:
ServerAdmin admin@example.com # 管理员邮箱
ServerName www.example.com:80 # 服务器域名
# 修改监听端口(可选)
Listen 80
# 修改网站根目录(可选)
DocumentRoot "/var/www/custom_path"
# 目录权限设置
<Directory "/var/www/html">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
sudo systemctl start httpd
sudo systemctl enable httpd
验证服务状态:
sudo systemctl status httpd
sudo vi /etc/httpd/conf.d/vhost.conf
<VirtualHost *:80>
ServerAdmin webmaster@site1.com
ServerName site1.com
ServerAlias www.site1.com
DocumentRoot /var/www/site1
ErrorLog /var/log/httpd/site1_error.log
CustomLog /var/log/httpd/site1_access.log combined
</VirtualHost>
<VirtualHost *:80>
ServerAdmin admin@site2.com
ServerName site2.com
DocumentRoot /var/www/site2
ErrorLog /var/log/httpd/site2_error.log
CustomLog /var/log/httpd/site2_access.log combined
</VirtualHost>
sudo mkdir -p /var/www/{site1,site2}
sudo chown -R apache:apache /var/www/
sudo chmod -R 755 /var/www/
sudo apachectl configtest
sudo systemctl restart httpd
sudo yum install mod_ssl -y
安装Certbot:
sudo yum install epel-release -y
sudo yum install certbot python3-certbot-apache -y
获取证书:
sudo certbot --apache -d example.com -d www.example.com
sudo certbot renew --dry-run
编辑配置文件:
sudo vi /etc/httpd/conf.modules.d/00-mpm.conf
选择prefork或event模式:
# 取消注释其中一项
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
# LoadModule mpm_event_module modules/mod_mpm_event.so
<IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxRequestWorkers 150
MaxConnectionsPerChild 4000
</IfModule>
sudo vi /etc/httpd/conf.d/gzip.conf
添加内容:
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css
AddOutputFilterByType DEFLATE application/javascript application/x-javascript
</IfModule>
检查错误日志:
sudo tail -n 50 /var/log/httpd/error_log
可能原因: - 目录权限不足 - SELinux限制
解决方案:
sudo chcon -R -t httpd_sys_content_t /var/www/
sudo setsebool -P httpd_enable_homedirs 1
检查端口占用:
sudo netstat -tulnp | grep :80
生成密码文件:
sudo htpasswd -c /etc/httpd/.htpasswd username
配置访问控制:
<Directory "/var/www/protected">
AuthType Basic
AuthName "Restricted Content"
AuthUserFile /etc/httpd/.htpasswd
Require valid-user
</Directory>
<Directory "/var/www/html">
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
</Directory>
# 重新加载配置(不中断服务)
sudo systemctl reload httpd
# 查看已加载模块
httpd -M
# 测试配置文件语法
apachectl configtest
系统已自动配置logrotate,配置文件位于:
/etc/logrotate.d/httpd
建议定期备份:
sudo tar -czvf apache_backup_$(date +%F).tar.gz /etc/httpd/ /var/www/
通过本文的详细步骤,您应该已经成功在CentOS系统上部署了Apache Web服务器。建议定期检查官方安全公告(https://httpd.apache.org/security/)并及时更新软件。对于生产环境,还应该考虑配置监控系统和定期安全审计。
注意:本文所有操作均在CentOS 7.9环境下测试通过,不同版本可能略有差异。建议在修改关键配置前做好备份。 “`
这篇文章共计约2150字,采用Markdown格式编写,包含: 1. 10个主要章节 2. 代码块形式的命令示例 3. 配置片段展示 4. 结构化的小节划分 5. 实际操作的注意事项 6. 常见问题解决方案 7. 安全建议和优化提示
可根据实际需求进一步调整内容细节或补充特定场景的配置示例。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。