在 CentOS 7 和 CentOS 8 上搭建网站是完全可行的。CentOS 是一个基于 Red Hat Enterprise Linux(RHEL)的稳定、安全且广泛使用的 Linux 发行版,非常适合用于服务器环境。下面我会详细介绍如何在 CentOS 7 和 CentOS 8 上搭建一个基本的网站(例如使用 LAMP 或 LNMP 架构)。
✅ 一、选择 CentOS 版本
| 版本 | 状态 | 建议用途 |
|---|---|---|
| CentOS 7 | 已进入维护期 | 适合老旧项目或遗留系统 |
| CentOS 8 | 已停止维护 | 更现代的系统,但官方支持已结束 |
⚠️ 注意:CentOS 官方已经宣布 CentOS 8 在 2021 年底停止维护,而 CentOS 7 将于 2024 年 6 月停止支持。如果你需要长期支持版本,建议考虑:
- CentOS Stream(滚动更新)
- AlmaLinux、Rocky Linux、Oracle Linux(与 RHEL 兼容的替代品)
✅ 二、部署网站的基本方式
方式一:LAMP 架构(Apache + MySQL/MariaDB + PHP)
1. 安装 Apache(httpd)
# CentOS 7/8 都适用
sudo yum install httpd -y
sudo systemctl enable httpd
sudo systemctl start httpd
2. 安装 MariaDB(MySQL 替代)
sudo yum install mariadb-server mariadb -y
sudo systemctl enable mariadb
sudo systemctl start mariadb
sudo mysql_secure_installation
3. 安装 PHP
sudo yum install php php-mysqlnd php-pdo php-gd php-cli -y
重启 Apache:
sudo systemctl restart httpd
创建测试文件 /var/www/html/info.php:
<?php
phpinfo();
?>
访问 http://你的IP地址/info.php 查看是否正常显示 PHP 信息。
方式二:LNMP 架构(Nginx + MySQL/MariaDB + PHP-FPM)
1. 安装 Nginx
sudo yum install epel-release -y
sudo yum install nginx -y
sudo systemctl enable nginx
sudo systemctl start nginx
2. 安装 PHP-FPM
sudo yum install php php-fpm php-mysqlnd php-pdo php-gd php-cli -y
sudo systemctl enable php-fpm
sudo systemctl start php-fpm
3. 修改 Nginx 配置以支持 PHP
编辑默认站点配置文件:
sudo vi /etc/nginx/conf.d/default.conf
修改如下内容(示例):
location ~ .php$ {
root /usr/share/nginx/html;
fastcgi_pass unix:/run/php-fpm/www.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
重启服务:
sudo systemctl restart nginx
sudo systemctl restart php-fpm
同样可以测试 info.php 文件。
✅ 三、部署实际网站(如 WordPress)
你可以将网站程序上传到 /var/www/html/ 目录,或者为每个网站创建虚拟主机。
示例:安装 WordPress
cd /tmp
wget https://wordpress.org/latest.tar.gz
tar -zxvf latest.tar.gz
sudo cp -r wordpress/* /var/www/html/
sudo chown -R apache:apache /var/www/html/
sudo chmod -R 755 /var/www/html/
然后通过浏览器访问 http://你的IP地址 进入 WordPress 安装向导。
✅ 四、防火墙设置(Firewalld)
确保开放 HTTP/HTTPS 端口:
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
✅ 五、其他建议
- 使用 Let’s Encrypt 免费证书实现 HTTPS。
- 使用宝塔面板、Webmin 等控制面板简化操作(适用于非专业用户)。
- 定期更新系统和软件包,增强安全性。
- 考虑使用 SELinux 来加强安全策略。
✅ 总结
| 功能 | CentOS 7 | CentOS 8 |
|---|---|---|
| Apache 安装 | ✅ 支持 | ✅ 支持 |
| Nginx 安装 | ✅ 支持 | ✅ 支持 |
| PHP 安装 | ✅ 支持 | ✅ 支持 |
| MariaDB/MySQL | ✅ 支持 | ✅ 支持 |
| 官方支持状态 | 维护至 2024 | 已停止维护 |
| 推荐新项目使用 | ❌ 不推荐 | ❌ 不推荐 |
如果你正在开始一个新项目,建议使用 Rocky Linux 或 AlmaLinux 代替 CentOS 8,它们是 CentOS 的良好替代品,提供更长期的支持。
如需我帮你写一个完整的脚本或部署某个特定网站(比如 WordPress、Discuz、Typecho、Django 等),欢迎继续提问!
CDNK博客