Pig_kid的小破站building

以下只是网络小白自己随便折腾,勿喷 qwq

云服务器(阿里云的ECS)

我是直接去阿里云买了一台e实例,99计划

选择服务器的时候碰到的镜像选择的问题,会发现有的需要你选择应用镜像,或者系统镜像什么的,有的却不用选,比如轻量应用服务器 这是为什么呢? 首先需要明确几个关键概念:

  1. 应用镜像:预装了特定应用程序(如WordPress、LAMP环境)的完整系统环境,开箱即用
  2. 系统镜像:仅包含纯净操作系统(如Ubuntu、CentOS),需要用户自行搭建环境
  3. 无选择情况:通常是托管服务(如AWS Lightsail)已默认绑定应用环境

不同场景的选择逻辑:

  • 应用镜像:适合快速搭建特定服务的小白用户,优势在于免配置
  • 系统镜像:适合需要自定义环境的技术用户
  • 无需选择:当购买特定解决方案(如WordPress专用服务器)时,平台已固定配置

具体到主流云服务商:

  1. 阿里云轻量应用服务器:强制选择应用镜像(如WordPress/LAMP)或系统镜像 2.
  2. 腾讯云CVM:默认只提供系统镜像,需手动搭建环境 3.
  3. AWS Lightsail:提供”应用+系统”混合选项(如WordPress on Ubuntu)

技术本质: 所有云服务器底层都是虚拟机,区别在于:

  • 应用镜像是「操作系统+中间件+应用」的封装
  • 系统镜像仅是操作系统
  • 无需选择的情况实际是平台替用户做了选择

域名注册

阿里云官网也可以注册,选择价格比较合适的就好了,只要不是.com 这种大域名都不是很贵,反正只是小白尝试,随便乱折腾,如果选择在国内的服务器进行域名解析,需要进行备案才能生效,备案同样在官网可以,根据要求来就行。

域名解析

先从官网到域名的控制台,找到刚注册的域名,选择解析,然后

# 添加A记录(将域名指向服务器IP)  
记录类型:A  
主机记录:@  
记录值:填写服务器公网IP  
TTL:10分钟  

服务器初始化(Xshell操作)

我这里是用的Ubuntu 24.04 64位,用Wordpress搭建,用Xshell8 连接的服务器:

  1. 连接服务器并创建专用用户(学习用户管理)
ssh root@your_ecs_ip  

# 创建学习用管理员(避免使用root)  
sudo adduser blogadmin  # 设置密码
sudo usermod -aG sudo blogadmin  # 加入sudo组  

# 切换到新用户  
su - blogadmin  
  1. 更新系统与安全加固
# 更新软件源(学习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适配)

  1. 安装Nginx
sudo apt install nginx -y  
sudo systemctl start nginx  
curl http://localhost  # 应看到"Welcome to nginx"  
  1. 安装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  
  1. 创建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;  
  1. 安装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

  1. 下载并解压WordPress
cd /tmp  
wget https://wordpress.org/latest.tar.gz  
tar -xzvf latest.tar.gz  
sudo mv wordpress /var/www/pigkid.top  # 创建专用目录  
  1. 配置权限
# 修改所有权给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  
  1. 配置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  

备案后关键操作


  1. 备案审核通过后,立即在阿里云DNS控制台添加A记录解析 → 否则24小时后系统自动停用备案号!完成解析后,才能进行HTTPS证书安装和公网访问。



  2. 配置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
  1. 性能优化(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  

一些访问出错的检查方案

  1. 查看域名解析状态
    登录阿里云控制台
    A记录需要主机记录@和WWW都有才可以
    ps:上证书的时候忘记加WWW 所以申请失败了
  2. 测试服务器连通性
# 测试服务器IP是否可达
ping 您的ECS公网IP

# 测试80端口是否开放
Test-NetConnection -ComputerName 您的ECS公网IP -Port 80
  1. 服务器端问题排查
    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
  1. 检查本地环境
    清除DNS缓存
ipconfig /flushdns

一些解决方案

  1. 域名解析正常但无法访问
# 服务器执行:检查Nginx监听
sudo netstat -tuln | grep 80

# 若无监听,重启Nginx:
sudo systemctl restart nginx
  1. 访问显示403 Forbidden (文件权限问题)
sudo chown -R www-data:www-data /var/www/pigkid.top
sudo chmod -R 755 /var/www/pigkid.top

终极解决方案

  1. 重置服务器环境
# 重装Nginx
sudo apt purge nginx* -y && sudo apt autoremove -y
sudo apt install nginx -y
  1. 使用备用端口
  • 修改安全组开放8080端口
  • 修改Nginx监听8080
  • 访问https://pigkid.top:8080

配置SSL证书

  1. 什么是Certbot?
    Certbot 是由电子前沿基金会(EFF)开发的开源自动化工具,用于简化 Let’s Encrypt(免费SSL/TLS证书机构)证书的获取、安装和续期流程。它支持 Apache、Nginx 等主流 web 服务器,通过 ACME 协议(自动证书管理环境)与 Let’s Encrypt 通信,实现证书生命周期的全自动化管理,无需手动操作复杂的验证和配置步骤。

已申请 SSL 证书后的操作指南 若你已通过 Certbot 或其他方式获取了 SSL 证书(如 Let’s Encrypt 证书),接下来需完成证书安装、web 服务器配置、自动续期等步骤,确保 HTTPS 正常启用并持续有效。以下是具体流程:

  1. 安装证书到 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(消息认证码)机制防止数据被篡改 意思就是让你的网站传输的信息更安全了

评论

  1. L
    1 月前
    2025-8-06 19:16:06

    强!

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇