厌倦了共享主机的限制?渴望对服务器拥有完全掌控权?自己动手搭建一台专属云主机,不仅能深度定制环境、优化性能,更能成为你技术成长的绝佳实践,下面就是清晰的步骤指南:
准备工作:打好根基
1、选择云服务商 (VPS提供商): 这是你的“地基”,国内用户可考虑阿里云、腾讯云、华为云;国际用户可选DigitalOcean、Linode、Vultr等,比较核心配置(CPU、内存)、存储空间(SSD优先)、带宽、数据中心位置(靠近你的目标访客)、价格以及用户评价,新手建议从基础配置(如1核1G)开始,多数项目足够。
2、挑选操作系统: Linux发行版是服务器首选,稳定高效。
Ubuntu Server 用户友好、文档丰富、社区支持强大,新手首选。
CentOS Stream 曾是企业级代表,现转向上游滚动更新(熟悉其生态仍可选)。
Debian 以稳定著称,软件包略保守。
3、购买域名(可选但推荐): 想让访客通过好记的网址(如www.yourname.com
)访问你的网站?需要一个域名,可在阿里云万网、腾讯云DNSPod、Namecheap、GoDaddy等注册商购买。
4、准备连接工具:
SSH客户端 远程管理服务器的核心,Windows用户用PuTTY 或Windows Terminal (内置OpenSSH),macOS/Linux用户直接用终端(内置OpenSSH)。
第一步:创建并连接你的云主机
1、在云平台创建实例:
* 登录云服务商控制台。
* 找到“云服务器”、“弹性计算”、“VPS”或类似入口。
* 点击“创建实例”或“购买”。
选择配置 按需选CPU、内存、硬盘(通常20G+起步)。
选择镜像 挑选你计划安装的操作系统(如 Ubuntu 22.04 LTS)。
设置登录方式 (关键安全步骤!)
强密码 设置复杂度极高的密码(大小写字母、数字、特殊字符组合,长度12位以上)。
SSH密钥对 (更安全,强烈推荐!) 在控制台生成或上传你的公钥,私钥文件(.pem
或.ppk
)务必妥善保管在本地,绝不泄露!
配置安全组 (防火墙规则)
* 初始开放SSH端口(默认22),来源IP建议限制为你的常用IP或特定IP段(提升安全性)。
* 开放HTTP(80端口) 和HTTPS(443端口),来源设为0.0.0.0/0
(允许所有IP访问网站)。
* 其他端口(如数据库端口)切勿随意开放公网访问。
* 确认配置,完成购买/创建,等待几分钟,实例状态变为“运行中”。
2、获取服务器连接信息:
* 在云控制台找到你的实例,查看其公网IP地址(IPv4),这是你服务器的“门牌号”。
3、使用SSH连接服务器:
密码登录 (如果设置)
ssh username@your_server_ip # ssh root@123.123.123.123
首次连接会询问是否信任主机指纹,输入yes
,然后输入你设置的强密码。
密钥登录 (推荐)
Windows (PuTTY):
1. 打开PuTTY。
2. 在Session
输入服务器公网IP。
3. 导航到Connection -> SSH -> Auth
。
4. 在Private key file for authentication
点击Browse
,选择你的私钥文件 (.ppk
格式,PuTTYgen转换过)。
5. 回到Session
,可以保存配置方便下次使用,点击Open
。
6. 登录用户名通常是root
(或你创建时指定的用户名)。
macOS/Linux (终端)
ssh -i /path/to/your/private_key.pem username@your_server_ip # ssh -i ~/.ssh/my_key.pem root@123.123.123.123
重要: 确保私钥文件权限为600
(chmod 600 /path/to/your/private_key.pem
)。
第二步:基础系统设置与安全加固 (至关重要!)
⚠️安全是自建服务器的首要任务! 连接后立即执行:
1、更新系统:
sudo apt update && sudo apt upgrade -y # Ubuntu/Debian # 或 sudo yum update -y # CentOS
2、创建新管理员用户 (避免长期使用root):
sudo adduser yourusername # sudo adduser adminuser sudo usermod -aG sudo yourusername # 将用户加入sudo组 (Ubuntu/Debian) # 或 (CentOS) sudo usermod -aG wheel yourusername
3、配置SSH密钥登录 (如果创建实例时未设置或需添加):
在本地生成密钥对(如果还没有)
ssh-keygen -t rsa -b 4096 # 本地终端执行,按提示操作
将本地公钥 (~/.ssh/id_rsa.pub
内容) 上传到服务器的~/.ssh/authorized_keys
文件
# 在服务器上 (以新用户登录后): mkdir -p ~/.ssh echo "粘贴你的公钥内容" >> ~/.ssh/authorized_keys chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys
* 测试新用户SSH密钥登录是否成功。
4、禁用SSH密码登录 (密钥登录成功后):
编辑SSH配置文件:
sudo nano /etc/ssh/sshd_config
找到并修改:
PasswordAuthentication no PermitRootLogin no # 强烈建议禁用root直接SSH登录
保存退出 (Ctrl+X
, 输入Y
,Enter
),重启SSH服务:
sudo systemctl restart sshd # Ubuntu/Debian # 或 sudo systemctl restart sshd # CentOS
5、配置防火墙 (UFW - Uncomplicated Firewall):
安装UFW (如未预装)
sudo apt install ufw -y # Ubuntu/Debian sudo yum install ufw -y # CentOS (可能需要先启用EPEL)
设置默认策略
sudo ufw default deny incoming # 默认拒绝所有入站 sudo ufw default allow outgoing # 默认允许所有出站
放行必要端口
sudo ufw allow OpenSSH # 或 sudo ufw allow 22 sudo ufw allow 80 # HTTP sudo ufw allow 443 # HTTPS # 如有其他特殊需求端口,按需开放
启用UFW
sudo ufw enable
查看状态
sudo ufw status verbose
6、设置时区:
sudo timedatectl set-timezone Asia/Shanghai # 替换为你的时区,如Asia/Tokyo, America/New_York
7、安装Fail2ban (防暴力破解):
sudo apt install fail2ban -y # Ubuntu/Debian sudo yum install fail2ban -y # CentOS (可能需要EPEL) sudo systemctl enable fail2ban --now
(基础配置通常够用,可按需调整/etc/fail2ban/jail.local
)
第三步:安装Web服务器环境 (以LNMP栈为例)
1、安装Nginx:
sudo apt install nginx -y # Ubuntu/Debian sudo yum install nginx -y # CentOS sudo systemctl enable nginx --now
浏览器访问http://你的服务器IP
,应看到Nginx欢迎页。
2、安装MySQL/MariaDB:
Ubuntu/Debian:
sudo apt install mysql-server -y sudo mysql_secure_installation # 运行安全脚本,设置root密码,移除测试数据库/匿名用户等
CentOS:
sudo yum install mariadb-server -y sudo systemctl enable mariadb --now sudo mysql_secure_installation # 同上
3、安装PHP (以PHP 8.x为例):
Ubuntu (添加第三方源):
sudo apt install software-properties-common -y sudo add-apt-repository ppa:ondrej/php -y sudo apt update sudo apt install php8.2-fpm php8.2-mysql php8.2-curl php8.2-gd php8.2-mbstring php8.2-xml php8.2-zip -y # 选择所需扩展
Debian:
sudo apt install php8.2-fpm php8.2-mysql php8.2-curl php8.2-gd php8.2-mbstring php8.2-xml php8.2-zip -y # 版本号根据发行版仓库调整
CentOS (启用EPEL+Remi):
sudo yum install epel-release -y sudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm -y # 替换7为你的CentOS主版本号 sudo yum-config-manager --enable remi-php82 sudo yum install php php-fpm php-mysqlnd php-curl php-gd php-mbstring php-xml php-zip -y
配置Nginx使用PHP-FPM编辑/etc/nginx/sites-available/default
(Ubuntu/Debian) 或/etc/nginx/conf.d/default.conf
(CentOS),在server
块内找到处理PHP的部分,确保类似:
location ~ \.php$ { include snippets/fastcgi-php.conf; # Ubuntu/Debian常用 # 或 include fastcgi_params; # CentOS常用 fastcgi_pass unix:/var/run/php/php8.2-fpm.sock; # 确认sock路径和PHP版本 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; }
重启服务
sudo systemctl restart nginx sudo systemctl restart php8.2-fpm # 替换为你的PHP版本
测试PHP在Web根目录(如/var/www/html
)创建info.php
:
<?php phpinfo(); ?>
访问http://你的服务器IP/info.php
,应显示PHP信息页。测试后务必删除此文件!
第四步:部署你的网站
1、上传网站文件:
方法一SCP/SFTP: 使用WinSCP (Windows)、FileZilla (跨平台)、或命令行scp
将本地网站文件上传到服务器,通常放到/var/www/yourdomain.com/public_html
(推荐自定义目录)。
方法二Git: 在服务器安装Git (sudo apt/yum install git
),克隆你的代码仓库到网站目录。
2、配置Nginx虚拟主机 (Server Block):
创建配置文件
sudo nano /etc/nginx/sites-available/yourdomain.com # Ubuntu/Debian # 或 sudo nano /etc/nginx/conf.d/yourdomain.com.conf # CentOS
基本配置示例 (替换yourdomain.com
,root
路径)
server { listen 80; listen [::]:80; server_name yourdomain.com www.yourdomain.com; # 你的域名 root /var/www/yourdomain.com/public_html; # 网站文件实际路径 index index.php index.html index.htm; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ \.php$ { include snippets/fastcgi-php.conf; # 或 include fastcgi_params; fastcgi_pass unix:/var/run/php/php8.2-fpm.sock; # 确认版本和路径 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } location ~ /\.ht { deny all; } }
启用配置
(Ubuntu/Debian) 创建符号链接
sudo ln -s /etc/nginx/sites-available/yourdomain.com /etc/nginx/sites-enabled/
* (CentOS) 配置文件已在conf.d
通常自动加载。
测试Nginx配置并重启
sudo nginx -t # 检查配置语法 sudo systemctl restart nginx
3、配置数据库:
登录MySQL
mysql -u root -p # 输入安装时设置的root密码
创建网站数据库和用户
CREATE DATABASE yourdbname; CREATE USER 'yourdbuser'@'localhost' IDENTIFIED BY 'StrongPassword!'; GRANT ALL PRIVILEGES ON yourdbname.* TO 'yourdbuser'@'localhost'; FLUSH PRIVILEGES; EXIT;
* 根据你的网站程序(如WordPress)要求,修改其配置文件(如wp-config.php
)填入正确的数据库名、用户名、密码和主机 (localhost
)。
第五步:配置域名与HTTPS (让访问更专业安全)
1、域名解析:
* 登录你的域名注册商控制台。
* 找到DNS管理/域名解析设置。
添加A记录
主机记录@
(主域名) 和www
(www子域名)。
记录值 填写你的云主机公网IP地址。
TTL默认即可,保存设置,等待DNS全球生效(通常几分钟到几小时)。
2、申请安装SSL证书 (免费Let's Encrypt):
安装Certbot工具
# Ubuntu/Debian sudo apt install certbot python3-certbot-nginx -y # CentOS (需EPEL) sudo yum install epel-release -y sudo yum install certbot python3-certbot-nginx -y
运行Certbot获取并安装证书
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com
* 按提示操作(输入邮箱同意条款)。
* 选择是否将所有HTTP请求重定向到HTTPS(强烈建议选择2
重定向)。
证书自动续期测试
sudo certbot renew --dry-run
(成功表示自动续期配置正常,系统定时任务/etc/cron.d/certbot
已自动设置)
持续维护:保持健康与安全
定期系统更新 养成习惯sudo apt update && sudo apt upgrade -y
/sudo yum update -y
。
备份!备份!备份! 这是运维铁律!
网站文件 定期打包压缩/var/www
(或你的网站目录)。
数据库 使用 `mys
文章摘自:https://idc.huochengrm.cn/zj/11438.html
评论
乔翠巧
回复如何自己搭建云主机?答案是:选好云服务提供商,配置需求资源并选购套餐;安装操作系统和应用软件后远程管理。