2021年12月

title

京东买了五年多的网件R6400稳如老狗,多年来默默服役都快忘却了它的存在。近期安装了个360的辣鸡监控,云ai分析人形目测用的是截图上传服务器进行分析,本来抠抠搜搜的5mbps电信上传可能极大影响了上传速度,所以考虑路由器挂个迅雷快鸟上传会员试试能否改善,因而想起了梅林路由器系统,那么这个电磁炉r6400就拿来热身了。

一 、备份routerinfo:

熟话说,备份,备份,再备份,有备无患,另外新手刷机前务必熟读各种救砖教程,以防不测,敲定三思后再行动
我的流程分享是R6400 v1版本,2018年后购买的r6400应该都是v2版本的,
v1的cpu是800Mhz的,版本号一般是V1.0.1.xx
v2的cpu是1Ghz升级性能的,版本号一般为V1.0.4.xx

v2不能直接从网件官方路由系统直接升级到梅林的系统,所以请自行寻找别的教程记录。

1、开启Windows的Telnet服务

开启方式如下图所示:
1:用Windows自带Telnet客户端
在“开启或关闭Windows功能”(控制面板打开或直接快捷搜索)里勾选“Telnet客户端”选项。
Telnet功能开启
2:开启路由器的Telnet
在浏览器中输入"路由器IP/debug.htm",然后登录路由器,勾选“Enable Telnet”,即可开启路由器的Telnet。
比如我的路由器debug地址如下:
http://192.168.0.1/debug.htm

我目前是升级后的固件版本
V1.0.1.76_1.0.48
是没有此选项的,所以考虑先降级
找寻官方产品页面搜索R6400可以找到许多固件版本
根据前人分享经验:
https://blogs.xiaoquisme.com/network/router.html
说的1.0.0.20这个版本是可以开启的telnet的,我就不尝试别的版本了,降级前建议重置一下路由器
downgrade

再次打开http://10.0.0.1/debug.htm页面发现telnet 选项成功出现,勾选
enable Telnet

3:查询路由器的routerinfo
打开一个DOS窗口,输入“telnet 路由IP",回车后进入telnet。
输入routerinfo截图保存路由信息。
[collapse status="false" title="路由器参数信息"]

routerinfo

BusyBox v1.7.2 (2015-06-11 13:19:59 CST) built-in shell (ash)
Enter 'help' for a list of built-in commands.

# routerinfo

Release version : 802.11ac Dual Band Gigabit Wireless Router R6400
U12H332T00/V1.0.0.20/1.0.11
Time : Jun 11 2015 13:21:53
CFE version : v1.0.31
WSC PIN - 48745093
LAN mac address - 2C3012345678
WAN mac address - 2C3012345678
WLAN_G mac address - 2C3012345678
WLAN_N mac address - 2C3012345678
Board ID - U12H332T00_NETGEAR
serial number - 4B345xxxxxxxx
SSID - NETGEAR23
SSID_5G - NETGEAR23-5G
Passphrase - ancientsparrow184
Passphrase_5G - ancientsparrow184
region_num - 0x0004
sku_name - PR
language - Chinese
wl_region - 2
timezone - 8

[/collapse]

4:恢复/还原routerinfo
开启telnet,输入下面的命令,后面的信息需改成之前的备份(wifi名称和密码可以改为自己常用的)
recovery
我没用上这个,不知道有没有效果
原文:https://post.m.smzdm.com/p/514788/

二、直接刷入梅林初始版本x7.2.1

1、先刷梅林初始版本7.2.1:

Netgear R-series initial files>R6400_380.63_2_X7.2.1.chk
File R6400_380.63_2-X7.2.1.chk
Size 26427450 bytes
Modified 2016年12月9日, 164743
MD5 351D7ED0D02399B8A54F21BC6D10783F
SHA1 28703328D65C7322F9DD37241F6727EB530487C1
CRC32 6D9AA996

直接在网件固件上刷就行了。强烈建议原厂固件先恢复原厂设置再刷,应该能避免一些奇怪的问题。
等个3-5分钟看到wifi出现NETGEAR和NETGEAR_5G无线信号说明就是启动完毕,输入http://10.0.0.1
就可以成功看到ASUS登录界面了

刷好后梅林后再恢复原厂设置一次

reset

2、建议升级到x7.8版本

这里建议升级到x7.8:使用对应的trx文件,在梅林的升级页面选择即可。
update_to_x7.8

安心等待你的NETGEAR wifi出现,别手动重启路由器。

当然了,有的人喜欢x7.4有的人喜欢x7.7,看自己需求,最新的x7.9.1之后貌似就没有更新了,你喜欢折腾可以都用一遍看看哪个适合自己了。
升级完毕自动会重启的,登录页面如下:
login_page

输入之前的用户名密码即可,你的x7.8 梅林就成功了。
最后再重置一次路由器,以免各种意外,注意默认登录地址变成192.168.50.1,不再是10.0.0.1了
192.168.50.1

3、流程小结

小结一下就是V1.0.1.76_1.0.48>>备份配置,恢复出厂>>10.0.0.1登录,降级为V1.0.0.20>>恢复出厂>>刷入R6400_380.63_2_X7.2.1.chk>>获得梅林x7.2.1>>恢复出厂>>刷入R6400_380.69_2-X7.8-ks.trx>>192.168.50.1登录,恢复出厂
总共刷入3个固件包,7次重启等待,目测半小时跑不了。当然你也可以全程不恢复出厂,出现什么幺蛾子就不清楚了。

4、开启软件中心配置和参数优化

软件中心要想使用首先要进系统管理-系统设置,把红色选项全都选到【是】,然后应用页面设置,接下来
重启一下就可以安装软件中心的插件了。
开启 JFFS 脚本支持&格式化 JFFS 分区

如果你的版本有以下选项,可以酌情考虑提高稳定性设置内容:
通用Beamforming 关闭
802.11ac Beamforming 关闭
Internet Detection 关闭
wifi信号增强:无线网络>>专用设置 里面将area地区选择All或者澳洲,发射功率拉满100%

5、开启SSH登录授权

顺便还可以开启路由器Merlin系统的SSH,方便离线安装各种插件包
系统管理 -> 系统设置 -> 服务。 之后开启ssh。 应用本页面设置
ssh 登陆上你的路由器 (用户名和密码都是你登陆路由器的用户名和密码)
ssh 用户名@192.168.50.1:端口
设置了密钥就选择自己的私钥登录
upload_pub_key
强烈建议别开启WLAN访问,建议修改默认22端口,添加密钥。
SSH

6、修复软件中心访问显示

因为各种原因,新版本的软件中心默认应该是没在线插件显示了(有域名更替原因,深层的政策影响等等),如果要显示信息,可以替换域名:
ssh登录后输入:

sed -i 's/koolshare.ngrok.wang/ks.ddnsto.com/g' /koolshare/scripts/ks_app_install.sh
sed -i 's/koolshare.ngrok.wang/ks.ddnsto.com/g' /koolshare/webs/Main_Soft_center.asp

software_center

官方TG交流群:https://t.me/xbchat

7、离线插件包安装前的系统修正

目前来说,一些敏感插件我们只能离线安装了,离线安装只支持x7.0以上版本
x7.8版本的安装包bash脚本貌似故意打错了个字,我们先更名,再vi编辑删除掉检测包名的detect_package(){}部分:

mv /koolshare/scripts/ks_tar_intall.sh /koolshare/scripts/ks_tar_install.sh

以防出错,建议先手动备份下原文件:

cp /koolshare/scripts/ks_tar_install.sh /koolshare/scripts/ks_tar_install.sh_bak
vi /koolshare/scripts/ks_tar_install.sh

删除detect_pakage(){}方法所有内容,按两次dd快速删除光标所在行,注释掉install方法里面对应的包名判定方法detect_package "$soft_name"
最后按Esc,输入:wq保存
这样安装任何插件不会识别包名了
install-extensions

附送个迅雷快鸟.tar.gz插件吧
xlnetaccelerate
温馨提示,迅雷快鸟登录提示输入验证码的话,F12打开开发者控制台,console栏输入以下内容:

$("#kuainiao_verify_key").show();
$("#kuainiao_verify_code").show();
$("#kuainiao_verify_title").show();

F12_dev_console

然后清空会话,点击验证码,网络会出现
image?t=MEA&1640971210696
点击此名称元素,右侧详情查看
Set-Cookie:VERIFY_KEY=7E71F512CCD55CB36480908D88A79A1E963FF0628610190022ECCDFDC6912039; Path=/; Domain=xunlei.com
提取KEY=xxxxxxxxxx;中间xxxxxx内容填入key栏目即可。
Get_key

再去github安装需要的插件吧!
https://github.com/koolshare/koolshare.github.io
https://github.com/cary-sas/v2ray_bin
v2ray

三、附送netgear网件通用救砖教程

【koolshare改版固件】刷【原厂】:
• 使用救砖的方法 https://www.cnblogs.com/airoot/p/14009122.html
固件双清方法:
如果固件出现问题,一时找不到解决办法,可以尝试双清并手动配置,方法如下
• 格式化jffs分区:方法同上;
• 恢复出厂设置:进入路由管理界面 -【【系统管理】- 【恢复/导出/上传设置】- 【原厂默认值】,点击原厂默认值一栏的【恢复】按钮;
• 建议完成双清后手动配置路由,而不是用以前备份的配置,以避免可能的问题;
软件中心重置方法:
如果软件中心出现问题,可以尝试用格式化jffs分区的方法重置软件中心,格式化后建议重新配置软件中心及插件,而不是用以前备份的jffs分区文件去恢复!

网件通用救砖.rar
这玩意扫描有毒,自行决定是否使用

title
众所周知,OneDrive大容量,内容限制宽松,入手门槛低,加上目前国际版拥有不错的cdn加速下载效果,是分享网络文件的一个不错选择,尤其是反感百度网盘党的上佳选择。
那么,OneDrive分享整个文件夹,官方提供的下载方式是非常有限的:
1.你自己一个个文件夹点开,手动一个个下载,然后手动本地新建文件夹结构目录并整理还原;
2.使用官方的打包文件夹为zip包下载(忍受官方服务器打包缓慢甚至抽风报错的极差体验,以及最大20GB单个zip包的限制);
3.下着下着网络中断,没有断点续传,重头再来吧!
所以,批量下载整个文件夹的需求是非常迫切的,还好,大佬们都做过不少类似功能的批量文件结构获取脚本,这里用SharePoint Download List Generator来做演示:

一,实现逻辑和原理

首先,网络上分享的OneDrive链接,和我们自己的微软账号基本上不会是同一个域,因此许多官方手段,同域转移,mover之类,或者rclone配置授权等,是不能直接采用的,当然,大佬们也没空一个个拉你邮箱进去当来宾什么的;
那么解决方案只能从公开分享的页面爬取完整的文件目录结构,并且通过网页cookie授权拿到FedAuth来拼接完整的下载请求,通过脚本的整理加工,这里可以批量生成aria2下载请求链接,存入完整下载任务列表到txt文档,就可以使用aria2开启指定下载任务了

二、工具部署

1.Aria2c下载器部署

这玩意儿相信各大松鼠党都早有耳闻或者轻车熟路了,直接下载官方zip包解压到合适地方即可,此工具需要python3环境,我们都依次安装,顺便将aira2c下载器所在路径加入系统path环境,这里都略过,很简单,我的博客之前多次提到,百度谷歌也有很多

2.SharePoint下载列表生成器部署

SharePoint Download List Generator
直接下载上述项目中的requirements.txt和sharepoint_gen_aria2_download_list.py脚本即可,解压到自己喜欢的目录,当然你也可以顺手加入系统环境变量;
在此生成器目录内,资源管理器地址栏输入cmd直接在此位置快速开启cmd窗口,按项目提示,依次安装所需组件,并运行脚本:

pip install -r requirements.txt
python sharepoint_gen_aria2_download_list.py

接下来按着提示,需要我们输入资源网址,这里演示为各位asmr爱好者喜欢的小北方网址,随便找个OneDrive分享地址,点进去
Asmr
获取到公开分享地址为:
同人音声1.5TBOneDrive合集地址
根据说明,我们需要获取到两个小玩意:

  • 完整网址路径;
  • FedAuth授权cookies.
    对于完整分享网址,一般来说,和公开的网址基本一致,流程简单说下:

1、SharePoint分享页面按下F12打开开发者工具(chrome浏览器),找到Network标签,F5重新载入页面后,搜索RenderListDataAsStream请求查看response返回栏,在此栏目里ctrl+F打开搜索,输入listUrl进行查询,获得地址为/personal/ztxdjj_ztxdjj_me/Documents,与主域拼接获得:
https://ztxdjj-my.sharepoint.com/personal/ztxdjj_ztxdjj_me/Documents/
这就是该网站的根目录
listUrl

配置过rclone应该熟悉,这是OneDrive默认分配的网站地址(SharePoint,OneDrive在微软管理后台都按着网站来进行部署的)

2、然后就是提示输入FedAuth认证信息了,类似的方法,F12打开开发者控制台,选择network标签,刷新页面,搜索fedAuth,在第一个出现的位置就是了,选择后右侧查看Headers信息里面的set-cookies:FedAuth信息
FedAuth
将FedAuth=之后所有内容复制,直到第一个分号结束,如下图,就是你需要粘贴进去的授权信息了:
FedAuth-input

3、接下来就是输入你指定的下载路径,这里搭配我之前提到的计划任务rclone move监控路径

C:\Users\Administrator\Downloads\Baidudisk\同人音声

稍等片刻,提示你获取完整下载列表成功,已保存到当前目录下aria2-links.txt文档中
aria2-links.txt
你可以简单复制清单txt文档到你的aria2c目录下,执行cmd下载任务指令即可:

aria2c --header="Cookie:FedAuth=xxxxxxxxxxxxxxxxxxx;" --input-file=aria2-links.txt --max-concurrent-downloads=2 --max-connection-per-server=5 --save-session=session.txt --save-session-interval=30 --file-allocation=none

连接数,速度限制参数自行调整
接下来就可以看到aria2c开始欢快地跑起来了
task-running

搭配rclone/gclone move脚本,即可实现小盘鸡自动上传到OneDrive/Google drive了
auto-download&upload
温馨提示:OneDrive网页cookies有效期约为24小时,失效后,重新获取FedAuth,然后对比session.txt剩余的未完成任务,打开新生成的aria2-links.txt,把已完成的任务删掉后保存,再次运行新的FedAuth参数下载指令,即可继续任务。

自动上传脚本和计划任务这里顺带简单介绍下:

三、Windows下搬运百度盘文件到OneDrive的简单配置

很多mjj喜欢把吃灰的小盘vps dd win搬运百度盘文件到OneDrive或者Google drive,但是大部分吃灰vps都是10-50gb这种小盘,随搬随删如果手动操作肯定费神费力,这里提供个大家都常用的工具和配置方法,简单实现无人值守无缝搬运数tb 百度盘文件到你的od gd:
工具:rclone即可
步骤:
1.新建rclone拷贝bat脚本
在你的rclone目录新建bat文件,我这里命名Rclone-move.bat,编辑写入以下内容

rclone move "C:/Users/Administrator/Downloads/Baidudisk/" "Onedrive:/Baidudisk/" -v --stats 15s --transfers 2 --bwlimit 50M  --onedrive-no-versions  --cache-chunk-size 10M --local-encoding=None --exclude "*.downloading" --log-file=C:\Software\rclone-v1.56.2-windows-amd64\log.txt --delete-empty-src-dirs --retries 1 --dry-run

解释:使用rclone move指令即可实现搬运本地路径文件到目标位置,
--exclude "*.downloading" 排除正在下载的度盘文件,
--log-file= 则是日志文件路径,你可以搭配日志等级指令-v或者-q(仅记录错误日志)来检查运行状况
--local-encoding=None 此指令是折中解决OneDrive文件命名编码支持问题,下一个rclone版本将有效修复,目前版本不加这个,则无法拷贝一些特殊字符文件,如书名号中文问号之类的
--delete-empty-src-dirs 则是move完毕后移除空目录
--onedrive-no-versions 则是去掉旧版本,防止OneDrive重复上传同一个文件,占用历史文件版本空间
--dry-run 则是测试用,运行一遍后自己检查log日志文件是否达到预期,满意后删除此参数
2.新建windows日志计划安排
导入此计划任务配置,自行修改即可:
[collapse status="false" title="计划任务配置"]

<?xml version="1.0" encoding="UTF-16"?>
<Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
  <RegistrationInfo>
    <Date>2021-12-21T15:48:27.3169591</Date>
    <Author>WINDOWS\Administrator</Author>
    <Description>每5分钟检查一次本地百度盘文件C:/Users/Administrator/Downloads/Baidudisk/ 并移动已完成文件到Onedrive盘/Baidudisk/文件夹下</Description>
  </RegistrationInfo>
  <Triggers>
    <CalendarTrigger>
      <Repetition>
        <Interval>PT5M</Interval>
        <StopAtDurationEnd>false</StopAtDurationEnd>
      </Repetition>
      <StartBoundary>2021-12-21T07:45:51.0718017Z</StartBoundary>
      <Enabled>true</Enabled>
      <ScheduleByDay>
        <DaysInterval>1</DaysInterval>
      </ScheduleByDay>
    </CalendarTrigger>
  </Triggers>
  <Principals>
    <Principal id="Author">
      <UserId>WINDOWS\Administrator</UserId>
      <LogonType>InteractiveToken</LogonType>
      <RunLevel>LeastPrivilege</RunLevel>
    </Principal>
  </Principals>
  <Settings>
    <MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
    <DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries>
    <StopIfGoingOnBatteries>true</StopIfGoingOnBatteries>
    <AllowHardTerminate>false</AllowHardTerminate>
    <StartWhenAvailable>true</StartWhenAvailable>
    <RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>
    <IdleSettings>
      <StopOnIdleEnd>true</StopOnIdleEnd>
      <RestartOnIdle>false</RestartOnIdle>
    </IdleSettings>
    <AllowStartOnDemand>true</AllowStartOnDemand>
    <Enabled>true</Enabled>
    <Hidden>false</Hidden>
    <RunOnlyIfIdle>false</RunOnlyIfIdle>
    <WakeToRun>false</WakeToRun>
    <ExecutionTimeLimit>PT0S</ExecutionTimeLimit>
    <Priority>7</Priority>
    <RestartOnFailure>
      <Interval>PT1M</Interval>
      <Count>3</Count>
    </RestartOnFailure>
  </Settings>
  <Actions Context="Author">
    <Exec>
      <Command>C:\Software\rclone-v1.56.2-windows-amd64\Rclone-move.bat</Command>
      <WorkingDirectory>C:\Software\rclone-v1.56.2-windows-amd64\</WorkingDirectory>
    </Exec>
  </Actions>
</Task>

[/collapse]

保存为Rclone-move.xml文件,然后任务计划程序导入计划选择此计划任务xml文件即可,路径自行匹配,执行逻辑为2021-12-21 15:48:27后每隔5分钟检查一次是否在执行,如果在拷贝中,则等待下一个5分钟再次检查。请在rclone bat脚本内指令检查无误后再执行此计划任务,同时修改启动程序路径为你自己实际rclone bat文件位置。
这样你就不用担心硬盘太小,或者折腾其他工具了。

我们这里演示的是使用gclone上传到Google drive,参考指令如下:

gclone move "C:/Users/Administrator/Downloads/Baidudisk/同人音声" "GdriveSA:{xxxxxxxyyyyyyyyyzzzzzzzz}" -v --stats 15s --transfers 2 --bwlimit 50M   --cache-chunk-size 5M --local-encoding=None --exclude "*.downloading" --log-file=C:\Software\rclone-v1.56.2-windows-amd64\log_asmr.txt --delete-empty-src-dirs --retries 1

如果你不考虑之后将google drive文件传到OneDrive的话, --local-encoding=None参数可以去掉

好了,这样你只需要丢给vps,躺着睡一觉回来,1.5TB文件就成功地从大佬们分享的OneDrive公开页面,自动存入你的Google drive了
Google drive
而你的花费或许比我这年付11.99刀,virmach大水牛每月3/5tb流量的成本更低。
最后祝大家身体健康。

title
前言:Windows环境下网站环境配置基本思路和linux是一致的,需要linux系统下lnmp环境安装流程的可以看之前的文章
[post cid="601" cover=""/]
Windows网站配置修改和路径path添加略有不同,这里简写成WNMP(windows+ nginx + mariadb/mysql + php),那么开始逐个组件下载安装配置吧!

一、组件下载

1.Nginx

访问http://nginx.org/en/download.html 获取windows版本的nginx
这里直接下载http://nginx.org/download/nginx-1.21.4.zip zip包
解压到c:/Wnmp/ 目录下,即C:/Wnmp/nginx-1.21.4

2.Mysql/Mariadb

下载windows x64版本安装包文件MSI,默认是最新的10.6.5 :
https://mariadb.org/download/?t=mariadb&p=mariadb&os=windows&cpu=x86_64&pkg=msi
你也可以自行选择zip包,这里演示zip包为mariadb-10.6.5-winx64.zip,解压到
C:/Wnmp/mariadb-10.6.5-winx64

3.PHP for Windows

访问此页面选择你需要的版本:
https://windows.php.net/download/
一般来说windows环境下我们使用fast CGI线程来执行访问php,所以组合搭配non thread safe版本就行,提升效率,并且不用进行线程安全锁定,具体介绍可以参看:https://www.php.cn/php-weizijiaocheng-418642.html
这里选择的是php-7.4.26-nts-Win32-vc15-x64版本演示,下载zip包解压到:
C:/Wnmp/php-7.4.26-nts-Win32-vc15-x64
php8.0版本语法不支持传参为null的方式,如果你选择这个,那么typecho只能下载最新开发版,而且兼容小问题不少,这里直接用低版本的php吧

可选:
如果你的windows系统没有VS环境包,运行报错缺少VCRRUNTIME140.dll之类的,建议下载:
https://docs.microsoft.com/en-US/cpp/windows/latest-supported-vc-redist?view=msvc-170
Visual Studio 2015, 2017, 2019, and 2022这个包对应的x64安装包即可
如果你想要cmd命令行窗口后台运行,可以下载
https://redmine.lighttpd.net/attachments/660/RunHiddenConsole.zip
这里就随意放到
C:/Wnmp/
调用这个小工具启动php就可以保持程序在后台持续运行

以上,全部解压到合适的位置后,根据你的实际路径,我们添加系统PATH:
编辑一个 Set-wnmp-path.txt文档,填入如下内容:

setx /m Path "%PATH%;C:\Wnmp\nginx-1.21.4;C:\Wnmp\mariadb-10.6.5-winx64\bin;C:\Wnmp\php-7.4.26-nts-Win32-vc15-x64;"

并保存为.bat 批处理文件,执行,查看我的电脑 右键 属性 >>>系统高级设置>>>高级菜单>>>环境变量选项>>>系统变量>>>选择Path (路径)检查是否成功;
你也可以搜索Path/系统环境变量 ,来快速访问。
如果你以前配置过当前用户的Path变量的话,上述设置中的%PATH%组成将会是系统Path+用户Path组合,如果不需要用户Path,则建议使用cmd指令set >> c:\environment.txt 导出所有Path到指定位置,将其中需要的系统Path部分取出替换上述bat脚本中的%PATH%,最后请注意windows系统一般只支持最大1023字节的Path总长度,如超过长度,自行删减。
需要的组件全部下载完毕,设置好路径之后.cmd输入:

php -v
mysqld -V
nginx -v

查看是否设置成功
然后选择一个你喜欢的做站路径,这里演示为

C:\Wnmp\www\omo.moe

接下来就可以开始配置各个组件的详细参数了。

二、配置参数

我们依次配置第一步中各个组件

1.首先php配置

找到C:\Wnmp\php-7.4.26-nts-Win32-vc15-x64
将默认的 php.ini-development 复制一份为php.ini
编辑php.ini
修改以下配置,按需自行增减:

; On windows:
;extension_dir = "ext"

修改为

extension_dir = "C:/Wnmp/php-7.4.26-nts-Win32-vc15-x64/ext"

;cgi.fix_pathinfo=1

修改为

cgi.fix_pathinfo=0

默认是1,会有一定的安全风险,我们将通过fastcgi_param SCRIPT_FILENAME $request_filename方式来处理,搭配关闭pathinfo获得安全保障
此设置拓展阅读参看:
https://php.net/cgi.fix-pathinfo
https://bugs.php.net/bug.php?id=50852&edit=1

按需修改:

upload_max_filesize = 2000M
max_execution_time = 300
post_max_size = 80M
extension=curl
extension=fileinfo
extension=gd2
extension=gettext
extension=mbstring
extension=openssl
extension=pdo_mysql
extension=sockets

开启需要的extensions:
你的数据库使用不同则选择对应的,比如pdo_sqlite,很多博主的typecho数据库应该选择的是sqlite,或者mysqli则是mysql数据库专用插件。
php -m可以查看你下载的php包含的所有插件,大佬也可以自己编译需要的插件放到ext目录下

对比linux系统下:

yum install php-fpm php-mysql

我们发现没有php-fpm,windows版本的使用php-cgi.exe来执行fastcgi模块,默认是无法动态生成子进程进行管理的,目前来说解决方案有两个:
一是通过https://github.com/deemru/php-cgi-spawner 或者魔改的xxfpm 来实现子进程生成和管理;
二是手动配置bat脚本并配置nginx的fastcgis_pass 单端口模式为php_pool池模式,来生成多个php_pool负载均衡,获得类似多个子进程的效果,
参看:https://www.nginx.com/resources/wiki/start/topics/examples/phpfastcgionwindows/
这块暂且不谈,我们先连通nginx fastcgi和php:
基本流程是 启动 php-cgi.exe -b 127.0.0.1:9000 通过nginx的配置文件加入:
fastcgi_pass 127.0.0.1:9000
就可以持续传递php文档请求给php-cgi进行解析了
我们继续

2.nginx配置调试

找到nginx目录下的 nginx.conf
去掉以下注释:

location ~ .php$ {
root           html;
fastcgi_pass   127.0.0.1:9000;
fastcgi_index  index.php;
fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
include        fastcgi_params;
}

先做个测试配置:

worker_processes 4;
events
{
  worker_connections 1024;
}
error_log C:/Wnmp/nginx-1.21.4/logs/error.log;
http
{
  include mime.types;
  default_type application/octet-stream;
  server
  {
    listen 80;
    index index.html index.htm index.php;
    location ~ \.php$
    {
      root html;
      fastcgi_pass 127.0.0.1:9000;
      fastcgi_index index.php;
      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
      include fastcgi_params;
    }
  }
}

工作进程数按vps配置来,我这4cores设置成4(官方说实际上没什么卵用):
开始测试:
cmd输入
php-cgi -b 127.0.0.1:9000
启动我们的php-cgi监听
netstat -anob | findstr :9000
查看是否运行
如果要指定php.ini配置路径,参考指令:php-cgi -b 127.0.0.1:9000 -c C:\Wnmp\php-7.4.26-nts-Win32-vc15-x64\php.ini
然后新开一个cmd

cd C:\Wnmp\nginx-1.21.4
start nginx / nginx -s start

打开浏览器,输入http://127.0.0.1应该可以看到nginx默认欢迎页面
我们在/html目录下新建一个a.php,内容为

<?php phpinfo(); ?>

再打开浏览器输入http://127.0.0.1/a.php
应该就能看到详细的php配置参数了
FastCGI
我们注意到Server API CGI/FastCGI
则说明fast-cgi桥梁打通,测试成功

nginx -s quit
退出nginx

温馨提示:

如果你在启动nginx各种测试中忘记退出当前pid对应进程,导致积压了一堆后台进程的话,可以输入
taskkill /F /IM nginx.exe > nul
清理所有的nginx任务,或者以下方法进行指定进程清理:

cd C:\Wnmp\nginx-1.21.4
tasklist | findstr "nginx.exe"

或者tasklist /fi "imagename eq nginx.exe"
任选一个指令查看隐藏的nginx进程对应的pid数字,将数字写入 ./log/nginx.pid

20672 | Out-File -Encoding ASCII ./logs/nginx.pid
nginx -s quit

退出后再次查询进程列表:
tasklist | findstr "nginx.exe"
找到新的进程id,重复以上步骤直到全部正确退出,从内存释放。

3.配置mariadb

打开cmd
cd C:\Wnmp\mariadb-10.6.5-winx64\bin
参看
https://dev.mysql.com/doc/refman/8.0/en/windows-install-archive.html 查看帮助,
首先在mariadb目录下新建配置文件,以my.ini命名,同时手动创建对应的data文件夹:

[mysqld]
basedir=C:\\Wnmp\\mariadb-10.6.5-winx64
datadir=C:\\Wnmp\\mariadb-10.6.5-winx64\\data
#port=3306
character_set_server=utf8
sql_mode=NO_ENGINE_SUBSTITUTION,NO_AUTO_CREATE_USER
#default_authentication_plugin=mysql_native_password
max_connections=20

如需远程访问,自行去掉对应端口注释#,如果你经常使用一些旧版本的工具插件,可选择默认配置加密方式为旧版mysql_native_password,
mysql8.0+默认的加密方式为caching_sha2_password,
mysql8.0加密方式切换
输入ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';即可修改root用户的加密规则以及密码。
mariadb会默认寻找windows系统目录%WINDIR%,以及C:\ 然后是安装目录下的my.ini文件,然后是my.cnf文件读取配置,具体的逻辑如下:
Table 4.1 Option
Files Read on Windows Systems

File NamePurpose
%WINDIR%\my.ini, %WINDIR%\my.cnfGlobal options
C:\my.ini, C:\my.cnfGlobal options
BASEDIR\my.ini, BASEDIR\my.cnfGlobal options
defaults-extra-fileThe file specified with --defaults-extra-file, if any
%APPDATA%\MySQL.mylogin.cnfLogin path options (clients only)
DATADIR\mysqld-auto.cnfSystem variables persisted with SET PERSIST or SET PERSIST_ONLY (server only)

建议只在mariadb根目录下创建my.ini,不要多处放置,路径要么双反斜杠\\,要么单斜杠/.

初始化下数据库配置:
mariadb-install-db
建议设置下默认配置文件路径,当然一般纯净环境也不会出现错乱
mariadbd --defaults-file=C:\\Wnmp\\mariadb-10.6.5-winx64\\my.ini --console
如果需要远程访问,注意允许数据库通过防火墙。
防火墙
--console开启控制台消息方便查询错漏;

正常来说应该可以看到如下就绪提示:
2021-12-09 21:28:54 0 [Note] mysqld: ready for connections.
Version: '10.6.5-MariaDB' socket: '' port: 3306 mariadb.org binary distribution
窗口挂在那不要关闭,然后你就可以新开一个cmd窗口进行登录操作配置了

mariadbd --install xxxx安装对应windows服务,不取名的话,默认则是MySQL(无力吐槽mariadb核心还是mysql的模样)
mariadbd --remove xxxx删除对应名称服务;
官方推荐mysql-install-db.exe/mariadb-install-db.exe生成数据库进行操作会更加安全可靠,并可以直接生成windows服务,创建root用户密码,创建对应数据文件夹下my.ini配置文件等。
直接指令安装,不用配置文件的方法为管理员身份启动cmd并输入:

mariadb-install-db.exe --datadir=C:\\Wnmp\\www\\mariadb --service=Mariadb --password=yourpassword

启动此数据库则输入:

sc start Mariadb

如需删除,则先停止此服务再删除:

sc stop Mariadb
sc delete Mariadb
rmdir /s /q C:\Wnmp\www\mariadb

如上,启动对应数据库服务后,输入
mariadb -u root -p登录
密码为你刚才配置的密码
Mariadb开启普通日志等:
my.ini配置文件mysql栏下新增

general_log_file        C:/Wnmp/www/mariadb/mysql.log
general_log             = 1

登录mysql开启 :
SET GLOBAL general_log ='ON';
https://stackoverflow.com/questions/5441972/how-to-see-log-files-in-mysql

三大件基本测试配置完成,我们可以做最终调试了。

4.综合调试

之前提到windows环境下nginx默认没有php-fpm管理子进程负载均衡的,
一是通过https://github.com/deemru/php-cgi-spawner 或者魔改的xxfpm来实现子进程生成和管理;
二是手动配置bat脚本并配置nginx的fastcgis_pass模式为php_pool池模式,来生成多个php_pool负载均衡,获得多个子进程的效果。
这里演示第二种方法,配置nginx的php_pool模式分配多个服务,对接我们多个php-cgi主进程进行负载均衡,提升效率:
新建nginx-php启动脚本,放置于C:\Wnmp下,也就是RunHiddenConsole.exe所在位置,命名:Start-nginx-php.bat 内容为:

@echo off
set php_home=C:\Wnmp\php-7.4.26-nts-Win32-vc15-x64
set nginx_home=C:\Wnmp\nginx-1.21.4
:start-php
echo Starting PHP FastCGI...
set PHP_FCGI_MAX_REQUESTS=1000
set PHP_FCGI_CHILDREN=1
RunHiddenConsole %php_home%\php-cgi.exe -b 127.0.0.1:9000 -c  %php_home%\php.ini
RunHiddenConsole  %php_home%\php-cgi.exe -b 127.0.0.1:9001 -c  %php_home%\php.ini
RunHiddenConsole  %php_home%\php-cgi.exe -b 127.0.0.1:9002 -c  %php_home%\php.ini
RunHiddenConsole  %php_home%\php-cgi.exe -b 127.0.0.1:9003 -c  %php_home%\php.ini
:start-nginx
echo Starting NGINX...
RunHiddenConsole %nginx_home%/nginx.exe -p %nginx_home%

再创建nginx-php关闭脚本,命名为Stop-nginx-php.bat 内容为:

@echo off
echo Stopping nginx...
taskkill /F /IM nginx.exe > nul
echo Stopping PHP FastCGI...
taskkill /F /IM php-cgi.exe > nul
exit

nginx目录下conf/nginx.conf里,我们在server区域内加入

upstream php_pool {
ip_hash;
server 127.0.0.1:9000 weight=1 max_fails=3 fail_timeout=20s;
server 127.0.0.1:9001 weight=1 max_fails=3 fail_timeout=20s;
server 127.0.0.1:9002 weight=1 max_fails=3 fail_timeout=20s;
server 127.0.0.1:9003 weight=1 max_fails=3 fail_timeout=20s;
keepalive 30;
}

将fastcgi_pass 项修改为 php_pool
此时你的nginx配置文件看起来应该是这样的:

worker_processes 4;
events
{
  worker_connections 1024;
}
error_log C:/Wnmp/nginx-1.21.4/logs/error.log;
http
{
  include mime.types;
  default_type application/octet-stream;
  server
  {
    listen 80;
    index index.html index.htm index.php;
    location ~ \.php$
    {
      root html;
      fastcgi_pass php_pool;
      fastcgi_index index.php;
      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
      include fastcgi_params;
    }
  }
  upstream php_pool
  {
    # ip_hash;
    server 127.0.0.1:9000 weight=1 max_fails=3 fail_timeout=20s;
    server 127.0.0.1:9001 weight=1 max_fails=3 fail_timeout=20s;
    server 127.0.0.1:9002 weight=1 max_fails=3 fail_timeout=20s;
    server 127.0.0.1:9003 weight=1 max_fails=3 fail_timeout=20s;
    keepalive 30;
  }
}

务必注意监听端口和php-cgi启动脚本里面的端口一一对应,才能正确传输数据。
ip_hash是以ip的hash值锁定对应用户缓存到指定的php-cgi进程里,保障用户体验,也提升数据安全,这里测试环境不开启此项
keepalive 30秒随意设置吧,效果是等待tcp链接请求空闲30s后关闭对应端口server

将之前C:\Wnmp\nginx-1.21.4\html\a.php测试页面文件增加一个sleep(10):

<?php
sleep(10);
phpinfo();
?>

我们分别在chrome和IE浏览器打开4个窗口访问http://127.0.0.1/a.php
查看 nignx目录下/log/access.log日志可见
多线程处理请求
结果测试IE是32' 35' 37' 38' 多线程连接成功,chrome则是39' 49' 59' 02'似乎chrome的请求是单线程依次请求的?不过基本上可以证明多线程是成功的,接下来用实际站点多设备测试看看。
上面的分配模式,在低负荷场景(比如我这种日ip=1的小博客),单独一个php-fcg主线程其实就足够的,或者一个主线程加set PHP_FCGI_CHILDREN=4,4个子线程也可以做到多线程效果,只不过不是动态分配的,4个子进程会常驻,直到1000请求触发。分为upstream多个站点对接多个php-cgi仅仅是闲的蛋疼做的技术测试,个人使用基本上用不到这样的负载均衡,折腾过程全当练习备用吧。

当然,你也可以使用之前提到的方案一,下载spawner cgi脚本进行管理:
https://github.com/deemru/php-cgi-spawner

事实上,你也可以不去管这块,个人小博客单进程足够同时响应数十个请求(博客又没有sleep 10这种纯测试代码,基本上都是0.xx 秒就完成一个请求的),而且windows环境下最推荐的还是IIS自带网站服务,在大型架构上效率优势会更高,再不济apache也好一些,nginx只是beta版本,开发者这些年来也不热衷于解决windows平台上这些底层效率问题,一心沉迷linux。
最后是数据库的导入和typecho 网站数据的连通,这里和linux环境类似,
sc start Mariadb启动服务之后,登录root用户
mariadb -u root -p --default-character-set=utf8
注意这里要用utf8字符编码方式登录,否则下面导入旧数据中文就会乱码。

CREATE DATABASE typecho_xxx; 
CREATE USER omo_xxx@localhost IDENTIFIED BY 'password'; 
GRANT ALL PRIVILEGES ON typecho_xxx.* TO omo_xxx@localhost IDENTIFIED BY 'password';
//以下为自用的恢复备份流程示例,新站不需要这部分操作:
source C:\Wnmp\2021.12.12-auto-Databases.sql
UPDATE typecho_contents SET text = REPLACE(text,'omo.moe','la.omo.moe');
UPDATE typecho_comments SET url = REPLACE(url, 'https://omo.moe', 'https://la.omo.moe');
UPDATE typecho_options SET `value`  = 'https://la.omo.moe' WHERE  (`name` = 'siteUrl' );
exit;

解压网站数据到 C:\Wnmp\www\omo.moe
修改nginx/conf/nginx.conf配置好ssl路径和证书,顺手做好域名解析
如果你是全新建站,只需要创建typecho需要的数据库和一个管理员赋权对应数据库即可,后面的数据导入和网站数据恢复都不需要操作。

[collapse status="false" title="附我的博客配置参考:"]

worker_processes 4;
events
{
  worker_connections 1024;
}

error_log C:/Wnmp/nginx-1.21.4/logs/error.log;
http
{
  include mime.types;
  default_type application/octet-stream;

  server
  {
    listen 80;
    server_name la.omo.moe www.la.omo.moe;
    return 301 https://la.omo.moe$request_uri;
  }
  server
  {
    listen 443 ssl http2;
    server_name www.la.omo.moe;
    return 301 https://la.omo.moe$request_uri;
  }
  server
  {
    listen 80;
    listen [::]:80 default_server;
    root C:/Wnmp/www/omo.moe;
    index index.html index.htm index.php;
    #charset koi8-r;
    access_log C:/Wnmp/nginx-1.21.4/logs/omo.moe.access.log;

    listen 443 ssl http2 default_server;
    ssl_certificate "C:/Wnmp/nginx-1.21.4/cert/omo_moe.crt";
    ssl_certificate_key "C:/Wnmp/nginx-1.21.4/cert/omo_moe.key";
    ssl_session_timeout 10m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_prefer_server_ciphers on;

    error_page 404 /404.html;
    error_page 500 502 503 504 /50x.html;
    location = /50x.html
    {
      root /html;
    }
    location /omomoe
    {
      # 与 V2Ray 配置中的 path 保持一致 ,通过v2ray客户端设置访问路径,通过接头地点初步认定身份
      proxy_redirect off;
      proxy_pass http://127.0.0.1:12345; # 这里按自己喜欢设定,匹配之后v2ray的监听地址从12345接收转发的流量
      proxy_http_version 1.1;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection "upgrade";
      proxy_set_header Host $host; # Show real IP in v2ray access.log
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

    client_max_body_size 2000m;

    location /
    {
      index index.html index.php;
      if (-f $request_filename/index.html)
      {
        rewrite (.*) $1/index.html break;
      }
      if (-f $request_filename/index.php)
      {
        rewrite (.*) $1/index.php;
      }
      if (!-f $request_filename)
      {
        rewrite (.*) /index.php;
      }
    }
    location ~ \.php
    {
      fastcgi_pass php_pool;
      fastcgi_index index.php;
      include fastcgi_params;
      fastcgi_split_path_info ^((?U).+\.php)(/?.+)$;
      fastcgi_param PATH_INFO $fastcgi_path_info;
      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
    location ~ ^.+\.php
    {
      fastcgi_split_path_info ^(.+\.php)(.*)$;
      fastcgi_param PATH_INFO $fastcgi_path_info;
      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
      fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
    }
    location ~ /.ht
    {
      deny all;
    }
    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
    {
      expires 15d;
    }
    location ~ .*\.(js|css)?$
    {
      expires 1d;
    }
  }
  upstream php_pool
  {
    # ip_hash;
    server 127.0.0.1:9000 weight=1 max_fails=3 fail_timeout=20s;
    server 127.0.0.1:9001 weight=1 max_fails=3 fail_timeout=20s;
    server 127.0.0.1:9002 weight=1 max_fails=3 fail_timeout=20s;
    server 127.0.0.1:9003 weight=1 max_fails=3 fail_timeout=20s;
    keepalive 30;
  }
}

[/collapse]

三、Typecho博客安装

将你的typecho安装文件
http://typecho.org/downloads/
解压放入网站根目录,打开http://127.0.0.1/install.php开始安装,安装流程选择合适的数据库类型,一路配置下来即可,公网访问请将443,80端口加入防火墙放行即可

一些兼容问题修复:

  • a.登录后台提示:
Notice: Undefined offset: 1 in C:\Wnmp\www\omo.moe\admin\common.php on line 31
Notice: Trying to access array offset on value of type null in /admin/common.php on line 32

https://github.com/typecho/typecho/issues/1244
可以考虑安装最新开发版本
把该文件第 32 行代码 $params = parse_url($currentMenu[2]); 修改为
$params = parse_url(isset($currentMenu[2]) ? $currentMenu[2] : null);

  • b.无法开启https
    在网站根目录下config.inc.php增加
/** 开启HTTPS */
define('__TYPECHO_SECURE__',true);

如果是恢复linux旧站数据,安装空白typecho完毕就可以登录mariadb数据库 source指令导入旧数据库,以及覆盖博客网站数据文件到对应目录
之后再将当前windows版本的配置和数据备份一份,以后就可以直接拷贝恢复了。

四、网站配置环境开机自启动

nginx自启动可以将bat脚本加入任务计划程序,也可以尝试使用nssm管理器安装配置服务

1.将bat脚本加入任务计划程序

选择计算机管理>>系统工具>>任务计划程序>>任务计划程序库 创建任务(快捷搜索task也可以打开)
在弹出的任务属性菜单,常规 取名,启动选择不管用户是否登录都要运行,勾选不存储密码,选择使用最高权限运行,手动输入system,选择system角色启动
选择触发器栏目,设置启动时触发,激活于当前时间即可,
延迟合适的秒数和分钟即可,不满意预设可以手动输入时间。
选择操作栏目,操作设置为启动程序,选择程序脚本C:\Wnmp\Start-nginx-php.bat起始于C:\Wnmp
选择条件栏目,都不要勾选
选择设置栏目,最下面如果此任务已经运行,选择规则为:请勿启动新实例
这样一个计划任务就成功加入,咱们的启动nginx-php脚本就可以开机自动执行了,mariadb那边已经自动创建了windows服务,默认设置的是自动,就不用额外配置了
[collapse status="false" title="我的计划任务xml配置参考,你可以保存为xxx.xml文件后导入此配置"]

<?xml version="1.0" encoding="UTF-16"?>
<Task version="1.4" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
  <RegistrationInfo>
    <Date>2021-12-15T17:20:39.3416042</Date>
    <Author>WINDOWS\Administrator</Author>
  </RegistrationInfo>
  <Triggers>
    <BootTrigger>
      <StartBoundary>2021-12-15T09:19:31.8870853Z</StartBoundary>
      <Enabled>true</Enabled>
      <Delay>PT1M</Delay>
    </BootTrigger>
  </Triggers>
  <Principals>
    <Principal id="Author">
      <UserId>S-1-5-18</UserId>
      <RunLevel>HighestAvailable</RunLevel>
    </Principal>
  </Principals>
  <Settings>
    <MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
    <DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries>
    <StopIfGoingOnBatteries>true</StopIfGoingOnBatteries>
    <AllowHardTerminate>false</AllowHardTerminate>
    <StartWhenAvailable>true</StartWhenAvailable>
    <RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>
    <IdleSettings>
      <StopOnIdleEnd>true</StopOnIdleEnd>
      <RestartOnIdle>false</RestartOnIdle>
    </IdleSettings>
    <AllowStartOnDemand>true</AllowStartOnDemand>
    <Enabled>true</Enabled>
    <Hidden>false</Hidden>
    <RunOnlyIfIdle>false</RunOnlyIfIdle>
    <DisallowStartOnRemoteAppSession>false</DisallowStartOnRemoteAppSession>
    <UseUnifiedSchedulingEngine>false</UseUnifiedSchedulingEngine>
    <WakeToRun>false</WakeToRun>
    <ExecutionTimeLimit>PT0S</ExecutionTimeLimit>
    <Priority>7</Priority>
    <RestartOnFailure>
      <Interval>PT1M</Interval>
      <Count>30</Count>
    </RestartOnFailure>
  </Settings>
  <Actions Context="Author">
    <Exec>
      <Command>C:\Wnmp\Start-nginx-php.bat</Command>
      <WorkingDirectory>C:\Wnmp\</WorkingDirectory>
    </Exec>
  </Actions>
</Task>

[/collapse]

计划任务管理参考文章
当然你也可以将bat脚本加入开机启动文件夹快捷方式,设置开机自启动:
文件资源管理器地址栏输入
C:\Users\%USERNAME%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
或者win+R呼出运行框,输入shell:startup打开开机启动项
将你的启动nginx bat脚本创建快捷方式放到此文件夹,开机登录当前用户即可,很简单,但是弊端是你注销了当前用户那就不会运行了,不太适合vps使用(得登录)。开机快捷方式自启动参考文章
nssm管理器创建nginx服务也比较简单,这里略过,网上教程很多

2.V2ray服务端的配置和细节

最后这个附送的V2ray服务端配置简单说说:

v2ray配置直接照搬linux就行,记得使用windows版本的zip包,V2ray本身就是全能路由功能,服务端和客户端于一体。
config.json配置文件里面的

"streamSettings":
{
  "network": "ws",
  "wsSettings":
  {
    "path": "/omomoe"
  }
}

path路径记得和上面提到的nginx的网站配置文件里面location /区域里的path一致即可
[collapse status="false" title="V2ray配置参考"]

{
    "stats": {},
    "log": {
        "loglevel": "warning",
        "access": "C:/Software/v2ray-windows-64/access.log",
        "error": "C:/Software/v2ray-windows-64/error.log"
    },
    "api": {
        "tag": "api",
        "services": [
            "StatsService"
        ]
    },
    "policy": {
        "levels": {
            "0": {
                "statsUserUplink": true,
                "statsUserDownlink": true
            }
        },
        "system": {
            "statsInboundUplink": true,
            "statsInboundDownlink": true
        }
    },
    "inbounds": [{
            "port": 12345,
            "protocol": "vmess",
            "settings": {
                "clients": [{
                        "email": "a@omo.moe",
                        "id": "UUID_1",
                        "level": 0,
                        "alterId": 0
                    },
                    {
                        "email": "b@omo.moe",
                        "id": "UUID_2",
                        "level": 0,
                        "alterId": 0
                    },
                    {
                        "email": "c@omo.moe",
                        "id": "UUID_3",
                        "level": 0,
                        "alterId": 0
                    }
                ]
            },
            "streamSettings": {
                "network": "ws",
                "wsSettings": {
                    "path": "/omomoe"
                }
            }
        },
        {
            "listen": "127.0.0.1",
            "port": 8080,
            "protocol": "dokodemo-door",
            "settings": {
                "address": "127.0.0.1"
            },
            "tag": "api"
        }
    ],
    "outbounds": [{
        "protocol": "freedom",
        "settings": {}
    }],
    "routing": {
        "settings": {
            "rules": [{
                "inboundTag": [
                    "api"
                ],
                "outboundTag": "api",
                "type": "field"
            }]
        },
        "strategy": "rules"
    }
}

[/collapse]
开机自启动可以参考nginx网站环境自启动操作加入bat脚本即可,或者单独加入计划任务程序,那么启动后延迟时间建议略晚于网站环境。
要么使用nssm管理服务或者其他小工具,或者不在乎GUI占用内存资源的话,下载
v2rayNG设置勾选开机自启动也行。

关于windows端网络加速这个意义不大,过时的锐速本质多倍发包,不是很推荐,本来windows的v2ray也就是备用玩玩,能用就行,有大佬推荐好的加速工具不妨留言交流

到此,windows系统下网站环境nginx+php+mysql/mariadb和v2ray简单应用就配置完毕了,
不难,但是很多细节操作对于萌新来说还是有点烦恼的,网络上关于windows版本的配置细节是各种残缺错漏野路子乱操作很多,花费了4,5天才理清,真是一言难尽
最后希望能对你有所帮助,少走一点弯路,让网络分享少一份抄袭,多一点自己的思考。