以下只是网络小白自己随便折腾,勿喷 qwq
云服务器(阿里云的ECS)
我是直接去阿里云买了一台e实例,99计划
选择服务器的时候碰到的镜像选择的问题,会发现有的需要你选择应用镜像,或者系统镜像什么的,有的却不用选,比如轻量应用服务器 这是为什么呢? 首先需要明确几个关键概念:
- 应用镜像:预装了特定应用程序(如WordPress、LAMP环境)的完整系统环境,开箱即用
- 系统镜像:仅包含纯净操作系统(如Ubuntu、CentOS),需要用户自行搭建环境
- 无选择情况:通常是托管服务(如AWS Lightsail)已默认绑定应用环境
不同场景的选择逻辑:
- 应用镜像:适合快速搭建特定服务的小白用户,优势在于免配置
- 系统镜像:适合需要自定义环境的技术用户
- 无需选择:当购买特定解决方案(如WordPress专用服务器)时,平台已固定配置
具体到主流云服务商:
- 阿里云轻量应用服务器:强制选择应用镜像(如WordPress/LAMP)或系统镜像 2.
- 腾讯云CVM:默认只提供系统镜像,需手动搭建环境 3.
- AWS Lightsail:提供”应用+系统”混合选项(如WordPress on Ubuntu)
技术本质: 所有云服务器底层都是虚拟机,区别在于:
- 应用镜像是「操作系统+中间件+应用」的封装
- 系统镜像仅是操作系统
- 无需选择的情况实际是平台替用户做了选择
域名注册
阿里云官网也可以注册,选择价格比较合适的就好了,只要不是.com
这种大域名都不是很贵,反正只是小白尝试,随便乱折腾,如果选择在国内的服务器进行域名解析,需要进行备案才能生效,备案同样在官网可以,根据要求来就行。
域名解析
先从官网到域名的控制台,找到刚注册的域名,选择解析,然后
# 添加A记录(将域名指向服务器IP)
记录类型:A
主机记录:@
记录值:填写服务器公网IP
TTL:10分钟
服务器初始化(Xshell操作)
我这里是用的Ubuntu 24.04 64位,用Wordpress搭建,用Xshell8 连接的服务器:
- 连接服务器并创建专用用户(学习用户管理)
ssh root@your_ecs_ip
# 创建学习用管理员(避免使用root)
sudo adduser blogadmin # 设置密码
sudo usermod -aG sudo blogadmin # 加入sudo组
# 切换到新用户
su - blogadmin
- 更新系统与安全加固
# 更新软件源(学习apt)
sudo apt update && sudo apt upgrade -y
# 启用UFW防火墙(学习网络安全)
sudo ufw allow OpenSSH
sudo ufw allow 80/tcp # HTTP
sudo ufw allow 443/tcp # HTTPS
sudo ufw enable # 启用后测试:sudo ufw status
安装LNMP环境(Ubuntu 24.04适配)
- 安装Nginx
sudo apt install nginx -y
sudo systemctl start nginx
curl http://localhost # 应看到"Welcome to nginx"
- 安装MariaDB10.11
sudo apt install mariadb-server -y
sudo mysql_secure_installation # 交互式配置:
1. Enter current password: (直接回车)
2. Switch to unix_socket? [Y/n] n
3. Change root password? [Y/n] Y → 设置密码(如mysql)
4. Remove anonymous users? [Y/n] Y
5. Disallow root login remotely? [Y/n] Y
6. Remove test database and access to it? [Y/n] Y
7. Reload privilege tables? [Y/n] Y
- 创建WordPress数据库
sudo mariadb -u root -p
CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'wpuser'@'localhost' IDENTIFIED BY 'Wp!Pass2025';
GRANT ALL PRIVILEGES ON wordpress.* TO 'wpuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;
- 安装PHP8.3
sudo apt install php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-zip -y
# 验证PHP版本
php -v # 应显示PHP 8.3.x
配置WordPress
- 下载并解压WordPress
cd /tmp
wget https://wordpress.org/latest.tar.gz
tar -xzvf latest.tar.gz
sudo mv wordpress /var/www/pigkid.top # 创建专用目录
- 配置权限
# 修改所有权给Web用户(Ubuntu默认www-data)
sudo chown -R www-data:www-data /var/www/pigkid.top
# 设置安全权限
sudo chmod 750 /var/www/pigkid.top
sudo find /var/www/pigkid.top -type d -exec chmod 755 {} \; # 目录755
sudo find /var/www/pigkid.top -type f -exec chmod 644 {} \; # 文件644
- 配置Nginx虚拟主机
创建配置文件:
sudo nano /etc/nginx/sites-available/pigkid.top
粘贴以下内容:
server {
listen 80;
server_name pigkid.top www.pigkid.top;
root /var/www/pigkid.top;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.3-fpm.sock; # ⚠️ Ubuntu 24.04路径
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
location ~ /\.ht {
deny all;
}
}
启用配置:
sudo ln -s /etc/nginx/sites-available/pigkid.top /etc/nginx/sites-enabled/
sudo nginx -t # 测试配置
sudo systemctl reload nginx
通过Hosts临时访问
# 本地电脑操作(非服务器):
# Windows:管理员运行Notepad修改 C:\Windows\System32\drivers\etc\hosts
# Linux/Mac:sudo nano /etc/hosts
添加:your_ecs_ip pigkid.top
WordPress安装向导
访问 https://pigkid.top 按提示填写:
- 数据库名:***
- 用户名:***
- 密码:***
- 表前缀:***(自定义防入侵)
命令行学习实践(还未完全掌握)
# 进程管理
sudo systemctl list-units | grep nginx # 学习服务状态
# 日志分析(Ubuntu日志路径)
tail -f /var/log/nginx/access.log # 实时监控访问
journalctl -u php8.3-fpm -f # 查看PHP日志
# 性能监控
htop # 安装:sudo apt install htop
备案后关键操作
备案审核通过后,立即在阿里云DNS控制台添加A记录解析 → 否则24小时后系统自动停用备案号!完成解析后,才能进行HTTPS证书安装和公网访问。
配置HTTPS(Cerbot)(部署SSL证书[^1])(详细解析见后文)
# 安装Certbot(Nginx版)
sudo apt install certbot python3-certbot-nginx -y
# 申请证书(需备案后操作)
sudo certbot --nginx -d pigkid.top -d www.pigkid.top
# 验证自动续期
sudo certbot renew --dry-run
- 性能优化(Ubuntu专属(原理还没搞清楚
# 安装OPcache加速
sudo apt install php8.3-opcache
# 编辑PHP配置
sudo nano /etc/php/8.3/fpm/php.ini
修改参数:
opcache.enable=1
opcache.memory_consumption=128
realpath_cache_size=4096K
重启服务:
sudo systemctl restart php8.3-fpm
一些访问出错的检查方案
- 查看域名解析状态
登录阿里云控制台
A记录需要主机记录@和WWW都有才可以
ps:上证书的时候忘记加WWW 所以申请失败了 - 测试服务器连通性
# 测试服务器IP是否可达
ping 您的ECS公网IP
# 测试80端口是否开放
Test-NetConnection -ComputerName 您的ECS公网IP -Port 80
- 服务器端问题排查
3.1 查看ECS实例安全组是否存在入方向规则
比如:
协议类型:TCP
端口范围:80/80
授权对象:0.0.0.0/0
若无则添加(优先级设为1) 3.2 检查服务器防火墙
# 查看UFW状态
sudo ufw status
# 如果开启,放行80端口
sudo ufw allow 80/tcp
sudo ufw reload
3.3 检查Nginx服务
# 检查服务状态
sudo systemctl status nginx
# 查看错误日志(关键!)
sudo tail -f /var/log/nginx/error.log
# 测试配置文件
sudo nginx -t
- 检查本地环境
清除DNS缓存
ipconfig /flushdns
一些解决方案
- 域名解析正常但无法访问
# 服务器执行:检查Nginx监听
sudo netstat -tuln | grep 80
# 若无监听,重启Nginx:
sudo systemctl restart nginx
- 访问显示403 Forbidden (文件权限问题)
sudo chown -R www-data:www-data /var/www/pigkid.top
sudo chmod -R 755 /var/www/pigkid.top
终极解决方案
- 重置服务器环境
# 重装Nginx
sudo apt purge nginx* -y && sudo apt autoremove -y
sudo apt install nginx -y
- 使用备用端口
- 修改安全组开放8080端口
- 修改Nginx监听8080
- 访问https://pigkid.top:8080
配置SSL证书
- 什么是Certbot?
Certbot 是由电子前沿基金会(EFF)开发的开源自动化工具,用于简化 Let’s Encrypt(免费SSL/TLS证书机构)证书的获取、安装和续期流程。它支持 Apache、Nginx 等主流 web 服务器,通过 ACME 协议(自动证书管理环境)与 Let’s Encrypt 通信,实现证书生命周期的全自动化管理,无需手动操作复杂的验证和配置步骤。
已申请 SSL 证书后的操作指南 若你已通过 Certbot 或其他方式获取了 SSL 证书(如 Let’s Encrypt 证书),接下来需完成证书安装、web 服务器配置、自动续期等步骤,确保 HTTPS 正常启用并持续有效。以下是具体流程:
- 安装证书到 web 服务器
Certbot 通常会自动完成证书安装(若使用–apache或–nginx插件),但若你手动申请了证书(如通过其他工具或方式),需手动将证书文件部署到 web 服务器:
证书文件位置(以 Let’s Encrypt 为例): 证书文件默认存储在/etc/letsencrypt/live/你的域名/目录下,关键文件包括: fullchain.pem:完整证书链(包含服务器证书和中间证书); privkey.pem:服务器私钥(需严格保密); cert.pem:服务器证书(单独文件,部分场景需用)。 2. 配置 web 服务器启用 HTTPS 需修改 web 服务器配置,让其使用证书并监听 443 端口(HTTPS 默认端口)。以下是主流服务器的配置方法:
Nginx 服务器:
- 自动配置(推荐):若已安装 Certbot,可通过以下命令自动配置 Nginx 并安装证书(需替换为你的域名):
sudo certbot --nginx -d example.com -d www.example.com
该命令会自动修改 Nginx 配置文件(如/etc/nginx/sites-available/default),添加 HTTPS 监听规则,并将 HTTP 流量重定向至 HTTPS(可选)。
- 手动配置:若需手动修改,可在 Nginx 配置文件中添加以下内容(替换为你的证书路径和域名):
server {
listen 443 ssl;
server_name example.com www.example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3; # 启用安全协议
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; # 加密套件
# 其他配置(如根目录、反向代理)...
}
# 可选:将 HTTP 重定向至 HTTPS
server {
listen 80;
server_name example.com www.example.com;
return 301 https://$host$request_uri;
}
修改后重载 Nginx:sudo systemctl reload nginx
3. 设置证书自动续期
Let’s Encrypt 证书有效期为90天,需定期续期。Certbot 可自动完成续期,只需配置自动任务:
- 测试续期:先运行 dry-run 测试,确保续期流程正常:
sudo certbot renew --dry-run
- 配置自动任务:
Cron 任务(适用于大多数 Linux 系统):编辑 crontab 文件(sudo crontab -e)
,添加以下内容(每天凌晨2点运行续期检查):
0 2 * * * sudo certbot renew --quiet
[^1]:SSL证书(Secure Sockets Layer)是数字化的安全护照,用于在服务器和浏览器之间建立加密通道。其核心作用通过技术实现: 加密传输:采用非对称加密(如RSA 2048位)和对称加密(AES-256)组合,确保数据在传输中不可被窃取 身份认证:由受信任的证书颁发机构(CA)验证服务器身份,防止钓鱼网站 完整性保护:通过MAC(消息认证码)机制防止数据被篡改 意思就是让你的网站传输的信息更安全了
强!