在搭建机场的服务器上部署 WordPress 博客

如果你租了一台外国 vps 同时想一机多用,在服务器运营商默许的情况下,除机场外再搭建一个博客是个不错的选择。

部署 Trojan-go 协议机场

此部分介绍如何搭建机场,方法及脚本参考了 https://js2panda.com/vultr-trojan ,如果你已具备机场,可跳过这一部分。

既然是为了搭建机场,一个外国服务器必不可少,这里用野草云上的 Ubuntu 22.04 为例演示。购买对应产品后,可使用 Windows 自带 cmd 或其它 SSH 工具连接。

ssh 用户名@服务器地址

在执行脚本前,我们需要完成一些准备工作:备好一个伪装域名,并解析到服务器上。
如果你没有域名,可以从 Cloudflare (需国外支付方式)或者 Namecheap (支付较容易)等购买一个,一些后缀如 .xyz 比较便宜。
购买完成后,选择一家 DNS 解析服务商,这里以 Cloudflare 为例,在 Domains -> 选中你的域名 -> DNS -> Records 中添加记录,用 tro 作伪装域名, blog 作博客域名,则配置如下图:

注意:用作机场伪装域名的, Proxy status 必须选择 DNS only,用作博客的建议选择 Proxied 。

要检查是否解析成功,可以在 cmd 中输入如下指令,返回结果应为服务器地址。

ping -4 伪装域名

接下来就可以进入部署阶段。在服务器执行一键部署 Trojan-go 的脚本:

bash <(curl -sSL "https://raw.githubusercontent.com/veip007/hj/main/trojan-go.sh")

会得到如下界面:

第一次安装输入“1”,然后输入“y”继续,依次按照提示输入伪装域名、密码。到了端口这里,如果你要搭建博客,应避免占用 443 或 80 端口,不然后期会出问题,推荐选择 8443。后面伪装站、禁用搜索引擎抓取任意,开启 BBR 加速。之后安装过程中一直回车就可以。

最后不可忽略的是,检查服务器内外的防火墙,确保 8443 端口被放行。服务器面板一般会提供防火墙规则,可手动添加;服务器内使用如下指令检查是否启用防火墙:

ufw status

如果 active,则再执行:

ufw allow 8443
systemctl restart trojan-go.service

以 Clash 为例,我们需要编写一个 yaml 文件导入,格式可按如下修改:

proxies:
  - name: "美国 - LA"
    type: trojan
    server: 你的伪装域名
    port: 8443
    password: "1"
    sni: 你的伪装域名
    skip-cert-verify: false
    udp: true

proxy-groups:
  - name: "Default"
    type: select
    proxies:
      - "美国 - LA"
      - DIRECT

rules:
  - MATCH,Default

至此,机场搭建完毕。

安装 WordPress 并搭建 Argon 主题博客

此部分进入正题,但在安装 WordPress 前,我们依然需要做准备工作:确保服务器上具备 LNMP,
Linux + Nginx + Mysql + Php-fpm

既可以下载打包好的 LNMP,但刚才搭建机场的时候已经顺便安装了 Nginx,Ubuntu 官方仓库又包含剩下的,我们也可以手动分别安装:
(实际上在这种情况下安装打包好的 LNMP 会出现系统里有两套 Nginx 抢占端口的情况,所以还是尽量避免吧)

sudo apt update
sudo apt install nginx
sudo apt install mysql-server
sudo apt install php8.1-fpm php8.1-cli php8.1-mysql

Ubuntu 22.04 对应 php 8.1, 24.04 对应 php 8.3,应注意版本区别。而且只装 php-fpm 是不够的,还需要一些必要的扩展然后重启服务:

sudo apt install -y \
php-mysql \
php-curl \
php-gd \
php-mbstring \
php-xml \
php-zip \
php-opcache \
php-intl
sudo systemctl restart php8.1-fpm
sudo systemctl restart nginx

它们的作用分别是:

  • mysql —— 让 PHP 能连接 MySQL (数据库必需)
  • curl —— 让 PHP 请求外部 URL / API
  • gd —— 图片处理 (缩放、裁剪、验证码、缩略图)
  • mbstring —— 多字节字符串支持 (中文)
  • xml —— 解析xml
  • zip —— 解压缩 zip
  • opcache —— PHP 脚本缓存加速,可提升性能
  • intl —— 国际化支持 (语言、时区、日期、排序)

都安装完成后,再确认一遍是否安装上了:

nginx -v
php -v
mysql --version

然后确认服务在跑:

sudo systemctl status nginx
sudo systemctl status php8.1-fpm
sudo systemctl status mysql
都看到绿色的 active (running) 才算成功。

进入 MySQL 创建 WordPress 用的数据库,记好数据库名、用户名和密码,后面要用:

mysql -u root -p
CREATE DATABASE blog DEFAULT CHARACTER SET utf8mb4;
CREATE USER '你的用户名'@'localhost' IDENTIFIED BY '设置密码';
GRANT ALL PRIVILEGES ON blog.* TO '你的用户名'@'localhost';
FLUSH PRIVILEGES;
EXIT;

新建一个博客目录,下载并放置 WordPress:

sudo mkdir -p /var/www/blog
cd /var/www/blog
sudo wget https://wordpress.org/latest.tar.gz
sudo tar -xzf latest.tar.gz
sudo mv wordpress/* .
sudo rmdir wordpress

也别忘了很重要的一步,设置正确的权限,包括把站点目录交给 Nginx 用户和设置安全权限:

sudo chown -R www-data:www-data /var/www/blog
sudo find /var/www/blog -type d -exec chmod 755 {} \;
sudo find /var/www/blog -type f -exec chmod 644 {} \;

配置 Nginx,一方面新建博客站点的配置文件:

sudo nano /etc/nginx/sites-available/blog

使用下面的模板完善站点配置文件:

server {
    listen 80;
    server_name 博客地址;

    root /var/www/blog;
    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.1-fpm.sock;
    }

    location ~ /\. {
        deny all;
    }
}

另一方面修改 nginx.conf,使其包含 sites-enabled:

sudo nano /etc/nginx/nginx.conf

http { ... } 里面,找到这行:

include /etc/nginx/conf.d/*.conf;

在它下面加一行:

include /etc/nginx/sites-enabled/*;

如果忘记加上,Nginx 就不会加载你的博客站点配置,会导致访问只会命中机场的伪装站(默认站点),于是被重定向过去。

两者写入退出后重载 Nginx 以启用新配置:

sudo ln -s /etc/nginx/sites-available/blog /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

然后就可以用浏览器访问了,由于没装证书,只能用 http 而不能用 https。第一次访问会进入 WordPress安装界面,这时就用上了刚才创建数据库时记下的信息,按照要求填写信息即可。在注册用户的时候也要记好密码,方便后续登录。

用管理员身份进入 WordPress 后台,在左侧 外观 -> 主题 一栏可以安装主题。这里采用 Argon 主题演示,下载好后上传启用后就可以在左侧看见 Argon 主题选项 一栏,按照自己喜好配置即可。

此时已经能满足基本使用,但我们还是应该完善一下证书,用 certbot 一条指令就可以完成。

首先安装 certbot:

sudo apt update
sudo apt install -y certbot python3-certbot-nginx

然后用这条指令申请 https:

sudo certbot --nginx -d 博客域名

期间需要填一个邮箱以便提醒证书过期、同意服务条款等,完成后应出现“Congratulations! You have successfully enabled HTTPS on https://博客域名”,如图

内容到这里就结束了,以后可能考虑出个一键脚本什么的,但毕竟需求不多,适用场景也比较局限,大概会搁置罢。

暂无评论

发送评论 编辑评论


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