前期准备
选择VPS服务商与系统
- 推荐主流云厂商(如阿里云、酷盾安全、华为云或国外DigitalOcean/Linode),根据需求选Linux发行版(Ubuntu/CentOS优先,兼容性强)。
- 确保已购买并完成初始化设置(获取IP地址、root密码或密钥对)。
安全组/防火墙配置
端口类型 | 协议 | 用途 | 必须开放 |
---|---|---|---|
HTTP | TCP | 80 | |
HTTPS | TCP | 443 | ✅(可选但建议) |
SSH管理入口 | TCP | 自定义高位端口(如22→改为56789) | ⚠️仅内部使用 |
💡 提示:通过控制面板添加规则,避免暴露默认22端口降低风险。
(图片来源网络,侵删)
安装Web服务环境
方案A:LAMP栈(Linux+Apache+MySQL+PHP)
# Ubuntu示例 sudo apt update && apt install -y apache2 mariadb-server php libapache2-mod-php systemctl enable --now apache2 mariadb
验证测试页:浏览器访问 http://<你的VPS_IP>
应显示Apache默认页面。
方案B:Nginx+PHP-FPM高性能组合
# CentOS示例 yum install -y epel-release https://rpms.remirepo.net/enterprise/remi-release-7.rpm yum install -y nginx php-fpm php-mysqlnd systemctl enable --now nginx php-fpm
配置文件路径:/etc/nginx/conf.d/default.conf
,修改服务器块指向网站根目录(通常为/usr/share/nginx/html
)。
部署静态/动态内容
- 上传文件到网页目录
- 使用WinSCP或SFTP工具连接VPS,将索引文件(如
index.html
)放入对应位置:- Apache →
/var/www/html/
- Nginx →
/usr/share/nginx/html/
- Apache →
- 使用WinSCP或SFTP工具连接VPS,将索引文件(如
- 权限检查
chmod -R 755 /path/to/website # 确保所有者可读写,其他用户只读 chown -R www-data:www-data /path/to/website # 根据Web服务器用户调整属主
- 重启服务生效配置变更
systemctl restart apache2 # Apache重载配置 nginx -s reload # Nginx平滑重启
域名绑定(可选但推荐)
若已有域名,需完成以下步骤加速访问:
| 步骤序号 | 操作内容 | 目标效果 |
|----------|------------------------------|------------------------|
| 1 | 登录DNS提供商管理后台 | |
| 2 | 添加A记录解析到VPS公网IP | example.com → IP地址 |
| 3 | VPS内配置虚拟主机映射 | server_name example.com; |
| 4 | SSL证书申请与强制跳转HTTPS | Let's Encrypt免费证书 |
🔗 工具推荐:Certbot自动部署SSL证书
sudo apt install certbot python3-certbot-nginx
→certbot --nginx certonly -d example.com
(图片来源网络,侵删)
常见故障排查指南
现象 | 可能原因 | 解决方案 |
---|---|---|
“Connection refused” | 防火墙阻挡端口 | ufw allow <PORT> |
“403 Forbidden” | SELinux限制或目录权限不足 | setsebool -P httpd_enable_homedirs on |
“File not found” | 文档根路径配置错误 | 检查配置文件中的DocumentRoot 指令 |
PHP代码不解析 | FastCGI未正确关联 | 确保启用了try_files $uri $uri/ /index.php?query=$query_string 规则 |
相关问题与解答
Q1: VPS网页能打开但图片加载失败怎么办?
✅ A: 检查两点:①图片路径是否为相对路径(建议用绝对URL测试);②确认Nginx/Apache已配置静态资源缓存规则,例如在Nginx中添加:
location ~ \.(jpg|jpeg|png|gif)$ { expires 30d; add_header Cache-Control "public"; }
Q2: 如何防止他人恶意扫描我的VPS端口?
✅ A: 采取三层防护:①关闭不必要的端口(如RDP远程桌面);②启用Fail2ban自动封禁暴力破解IP;③定期更新系统补丁,命令示例:
sudo apt install fail2ban # Debian系安装 sudo systemctl enable fail2ban #
