从零开始:我的VPS网站部署踩坑全记录(含数据库配置)
大家好,今天想分享下上周我在新买的VPS上部署个人博客的全过程。作为一个习惯用现成云服务的前端开发,这次自己折腾服务器真是踩了不少坑,不过最终成功部署的感觉特别爽!
1. 前期准备:选购VPS和基础配置
我选择了某云服务商最便宜的套餐(1核1G内存),毕竟个人博客访问量不大。拿到服务器后第一件事:
# 更新系统
sudo apt update && sudo apt upgrade -y
# 创建新用户(强烈建议别直接用root!)
adduser deployer
usermod -aG sudo deployer
这里有个小插曲:第一次配置SSH密钥时手滑把公钥输错了,结果把自己锁在服务器外面…最后还是通过控制台的救援模式解决的(尴尬)。
2. 环境搭建:LNMP全家桶
我选择Nginx+MySQL+PHP的组合,用Oneinstack一键安装:
wget http://mirrors.linuxeye.com/oneinstack-full.tar.gz
tar xzf oneinstack-full.tar.gz
cd oneinstack
./install.sh
安装过程中有几个注意点:
- MySQL 8.0默认的身份验证方式可能不兼容老程序
- PHP版本要根据你的CMS需求选择(我用的WordPress需要7.4+)
- 记得记下MySQL的root密码!(别问我怎么知道的)
3. 数据库配置:安全第一
安装完成后,我做了这些安全加固:
-- 创建专用数据库用户
CREATE DATABASE myblog;
CREATE USER 'blog_user'@'localhost' IDENTIFIED BY '复杂密码';
GRANT ALL PRIVILEGES ON myblog.* TO 'blog_user'@'localhost';
FLUSH PRIVILEGES;
⚠️ 血泪教训:曾经有次我把数据库用户权限设成了’%’,结果被爆破攻击…现在永远只用localhost!
4. 网站部署:Nginx配置技巧
我的Nginx配置关键部分:
server {
listen 80;
server_name myblog.com;
root /data/www/myblog;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ .php$ {
fastcgi_pass unix:/dev/shm/php-cgi.sock;
include fastcgi.conf;
}
}
这里有个性能优化点:把PHP的sock文件放在/dev/shm内存目录,速度比普通磁盘快很多。
5. 最后的防线:基础安全设置
完成部署后别忘了:
- 配置ufw防火墙:
sudo ufw allow 22,80,443
- 安装fail2ban防爆破
- 设置自动备份(我用crontab+rsync)
折腾了两天终于搞定,现在访问自己的博客感觉特别有成就感。虽然云服务很方便,但自己动手部署能学到更多底层知识。下次准备试试用Docker来部署,应该会更简单吧?
感谢分享!正准备自己搭个博客,这篇教程太及时了。
楼主提到的MySQL权限问题真的血泪教训,我之前也被攻击过😭
小白问下,这个配置1核1G够用吗?访问量大了会不会卡?
用Docker确实会更方便,期待楼主的下篇教程!