这个过程适用于大多数主流的 Linux 发行版,如 Ubuntu/Debian 和 CentOS/RHEL,我会尽量提供不同发行版的命令。
总览:搭建网站的核心步骤
- 准备工作:获取一台云服务器或 VPS,并连接到它。
- 基础配置:更新系统、设置防火墙、创建用户。
- 安装 Web 服务器:安装并配置 Apache。
- 安装数据库:安装并配置 MariaDB (MySQL 的一个分支)。
- 安装编程语言环境:安装 PHP。
- 创建网站:配置虚拟主机,存放网站文件。
- 部署网站内容:上传你的网站代码(WordPress)。
- 安全加固:配置 SSL 证书,启用 HTTPS。
第一步:准备工作
-
购买/准备服务器:
- 选择一个云服务提供商,如阿里云、腾讯云、AWS、Vultr、DigitalOcean 等。
- 选择一个 Linux 发行版,Ubuntu 20.04/22.04 或 CentOS 7/8 是非常好的选择,对于新手,Ubuntu 更友好。
- 购买符合你需求的配置(1核CPU/2GB内存/40GB硬盘起步就足够)。
-
连接服务器:
- 服务器创建成功后,你会获得一个公网 IP 地址。
- 使用 SSH (Secure Shell) 客户端连接你的服务器,在 Windows 上,可以使用 PuTTY 或 Windows Terminal + WSL;在 macOS 或 Linux 上,可以直接使用终端。
- 命令格式:
ssh root@你的服务器公网IP
- 首次登录时,系统可能会询问你是否信任该主机的指纹,输入
yes即可,然后输入你在购买时设置的 root 密码。
第二步:基础系统配置
-
更新系统包
- Ubuntu/Debian:
sudo apt update && sudo apt upgrade -y
- CentOS/RHEL:
sudo yum update -y
- Ubuntu/Debian:
-
设置防火墙
- Ubuntu/Debian (使用 UFW):
# 允许 SSH 连接(必须,否则可能把自己锁在外面) sudo ufw allow OpenSSH # 允许 HTTP (80) 和 HTTPS (443) 端口 sudo ufw allow 'Apache Full' # 启用防火墙 sudo ufw enable # 输入 'y' 确认
- CentOS/RHEL (使用 firewalld):
# 启动防火墙并设置开机自启 sudo systemctl start firewalld sudo systemctl enable firewalld # 添加永久规则 sudo firewall-cmd --permanent --add-service=ssh sudo firewall-cmd --permanent --add-service=http sudo firewall-cmd --permanent --add-service=https # 重新加载防火墙使规则生效 sudo firewall-cmd --reload
- Ubuntu/Debian (使用 UFW):
-
创建新用户 (推荐)
- 为了安全,不要一直使用
root用户操作,创建一个具有sudo权限的新用户。 - 将
your_user替换为你想要的用户名。# 创建用户 adduser your_user # 为新用户设置密码 passwd your_user # 将新用户添加到 sudo 组 usermod -aG sudo your_user
- 之后,你可以断开
root连接,用ssh your_user@你的服务器公网IP重新登录。
- 为了安全,不要一直使用
第三步:安装 Web 服务器 (Apache)
Apache 是世界上最流行的 Web 服务器软件之一。
-
安装 Apache
- Ubuntu/Debian:
sudo apt install apache2 -y
- CentOS/RHEL:
sudo yum install httpd -y
- Ubuntu/Debian:
-
启动并设置开机自启
- Ubuntu/Debian:
sudo systemctl start apache2 sudo systemctl enable apache2
- CentOS/RHEL:
sudo systemctl start httpd sudo systemctl enable httpd
- 注意:在 CentOS 上,Apache 默认监听的端口是
8080,而不是80,你需要修改配置文件/etc/httpd/conf/httpd.conf,将Listen 8080改为Listen 80,然后重启httpd服务。
- Ubuntu/Debian:
-
测试 Apache
- 在你的浏览器中输入
http://你的服务器公网IP。 - 如果看到 "Apache2 Ubuntu Default Page" 或 "Apache HTTP Server Test Page" 等字样,说明 Apache 安装成功!
- 在你的浏览器中输入
第四步:安装数据库 (MariaDB)
MariaDB 是 MySQL 的一个完全开源的分支,性能和兼容性都很好。
-
安装 MariaDB
- Ubuntu/Debian:
sudo apt install mariadb-server mariadb-client -y
- CentOS/RHEL:
sudo yum install mariadb-server mariadb -y
- Ubuntu/Debian:
-
启动并设置开机自启
-
sudo systemctl start mariadb sudo systemctl enable mariadb
-
-
运行安全脚本 (非常重要!)
- 这个脚本会帮你设置 root 密码、移除匿名用户、禁止远程 root 登录等。
- 运行以下命令,然后根据提示操作:
sudo mysql_secure_installation
- 大部分选项直接按回车键选择默认值即可,但设置
root密码时请务必设置一个强密码。
第五步:安装 PHP
PHP 是一种用于服务器端编程的语言,绝大多数网站(如 WordPress、Drupal)都使用它。
-
安装 PHP 和常用扩展
- Ubuntu/Debian:
sudo apt install php libapache2-mod-php php-mysql php-curl php-gd php-mbstring php-xml php-xmlrpc php-soap php-intl php-zip -y
- CentOS/RHEL:
# 首先安装 EPEL 仓库 sudo yum install epel-release -y # 安装 PHP 和常用扩展 sudo yum install php php-mysqlnd php-curl php-gd php-mbstring php-xml php-xmlrpc php-soap php-intl php-zip -y
- Ubuntu/Debian:
-
测试 PHP
- 创建一个测试文件,让 Apache 来处理它。
# 在 Ubuntu/Debian 上 sudo nano /var/www/html/info.php # 在 CentOS/RHEL 上 sudo nano /var/www/html/info.php
- 在打开的文件中输入以下内容:
<?php phpinfo(); ?>
- 按
Ctrl + X,然后按Y,再按Enter保存退出。 - 在浏览器中访问
http://你的服务器公网IP/info.php。 - 如果看到一个显示 PHP 详细信息的页面,说明 PHP 安装成功。
- 安全提示:测试完成后,建议立即删除该文件!
sudo rm /var/www/html/info.php
- 创建一个测试文件,让 Apache 来处理它。
第六步:创建网站 (配置虚拟主机)
虚拟主机允许你在一台服务器上托管多个网站。
-
创建网站目录
- 我们假设要创建一个名为
example.com的网站。 -
# 创建网站根目录 sudo mkdir -p /var/www/example.com # 设置目录所有者 sudo chown -R $USER:$USER /var/www/example.com # 给目录设置正确的权限 sudo chmod -R 755 /var/www/example.com
- 我们假设要创建一个名为
-
创建虚拟主机配置文件
-
Ubuntu/Debian:
sudo nano /etc/apache2/sites-available/example.com.conf
-
CentOS/RHEL:
sudo nano /etc/httpd/conf.d/example.com.conf
-
粘贴到文件中,并替换
example.com为你的域名:<VirtualHost *:80> ServerAdmin webmaster@example.com ServerName example.com ServerAlias www.example.com DocumentRoot /var/www/example.com ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
-
-
启用虚拟主机
- Ubuntu/Debian:
# 启用新配置 sudo a2ensite example.com.conf # 禁用默认的站点 (可选) sudo a2dissite 000-default.conf # 重启 Apache 使配置生效 sudo systemctl restart apache2
- CentOS/RHEL:
# 重启 Apache 使配置生效 sudo systemctl restart httpd
- Ubuntu/Debian:
第七步:部署网站内容
你的服务器已经准备好接收网站文件了,你可以通过以下方式之一来部署:
-
上传静态文件
- 使用 SFTP (如 FileZilla, WinSCP) 或
scp命令将你的 HTML, CSS, JavaScript 文件上传到/var/www/example.com/目录。
- 使用 SFTP (如 FileZilla, WinSCP) 或
-
使用 CMS (如 WordPress)
- 这是最常见的方式,我们需要下载并解压 WordPress 到网站目录。
-
# 进入网站目录 cd /var/www/example.com # 下载 WordPress (请访问官网获取最新版本链接) sudo wget https://wordpress.org/latest.tar.gz # 解压 sudo tar -xzvf latest.tar.gz # 将解压后的文件移动到根目录 sudo mv wordpress/* . # 设置正确的所有者和权限 sudo chown -R www-data:www-data /var/www/example.com sudo find /var/www/example.com -type d -exec chmod 755 {} \; sudo find /var/www/example.com -type f -exec chmod 644 {} \; - 在浏览器中访问
http://example.com,你将看到 WordPress 的安装向导,按照提示操作,你需要之前创建的 MariaDB 数据库信息。
第八步:安全加固 (启用 HTTPS)
使用 HTTPS 协议可以加密用户和服务器之间的通信,保护数据安全,我们可以使用 Let's Encrypt 提供的免费 SSL 证书。
-
安装 Certbot
- Ubuntu/Debian:
sudo apt install certbot python3-certbot-apache -y
- CentOS/RHEL:
sudo yum install certbot python3-certbot-apache -y
- Ubuntu/Debian:
-
获取并安装 SSL 证书
- Certbot 会自动检测你的 Apache 配置,并获取证书。
- 将
your_email@example.com替换为你的邮箱,example.com替换为你的域名。 -
sudo certbot --apache --agree-tos --redirect -m your_email@example.com -d example.com -d www.example.com
- 这个命令会:
--apache: 自动配置 Apache。--agree-tos: 同意服务条款。--redirect: 自动将 HTTP 请求重定向到 HTTPS。-d: 指定要保护的域名。
-
验证和自动续期
- Certbot 会自动设置证书的续期任务,你无需担心证书过期。
- 你可以通过以下命令检查续期任务是否成功设置:
sudo systemctl status certbot.timer
- 如果看到
active (enabled),说明一切正常。
总结与后续
恭喜!你已经成功在 Linux 服务器上搭建了一个安全的网站。
后续你可以做的事情:
- 域名解析:到你的域名注册商处,将
example.com和www.example.com的 A 记录指向你的服务器公网 IP。 - 性能优化:配置缓存(如 OPcache)、启用 Gzip 压缩。
- 使用更快的 Web 服务器:如 Nginx,通常作为 Apache 的反向代理来提升性能。
- 配置邮件服务器:使用 Postfix 或 Exim 来发送网站通知邮件。
- 定期备份:设置自动备份脚本,定期备份你的网站文件和数据库。
这个指南为你提供了一个坚实的基础,搭建服务器是一个不断学习和实践的过程,遇到问题多查官方文档和社区,你会越来越熟练。
