Blogs

用WordPress的cli命令替换数据库

点此安装wp cli命令 用 WP-CLI 的 wp search-replace 命令来做数据库替换,非常适合这种从 www.dian.com 切换到 wp.g9home.com 的场景。 wp cli 命令执行方式 方式 1:进入对应站点目录再执行 假设你有多个站点: 那么要替换 site2 的数据库: 方式 2:用 –path 参数指定路径 不切换目录,直接指定 WordPress 路径: 方式 3:明确数据库参数(不常用) 如果你就是想在任意目录执行,也可以直接传 DB 参数: ⚠️ 这种方式会跳过 wp-config.php,适合多站点混合时手动指定。 🔹 基本命令 🔹 常用参数说明 🔹 实际操作步骤 先 dry-run 看一下效果 输出类似: 确认没问题后,正式替换 清理缓存如果你有缓存插件或对象缓存(Redis/Memcached),执行: 🔹 注意事项

ubuntu 22安装wp cli命令

在 Ubuntu 22.04(WSL 也一样)下安装 WordPress CLI(wp-cli)的步骤如下: 1. 安装依赖 先确保有 PHP 和 curl: 2. 下载 wp-cli.phar 3. 赋予执行权限 4. 移动到 PATH 下 这样就可以用 wp 命令全局调用了。 5. 验证安装 如果看到 PHP 版本、WP-CLI 版本信息,说明安装成功。 6. 使用方式 进入你的 WordPress 根目录(比如 /var/www/html/wordpress 或 /var/www/xxx.com/)执行: 能正常返回版本号就说明可以用了。

Linux端口占用情况

查看80端口占用情况 1. 确认谁占用了 80 端口 运行: 或者: 或者: 会输出类似:

PHP测试配置文件

背景:Ubuntu系统下,使用apt安装的php7.4版本 配置文件目录结构 测试fpm配置文件 /etc/php/7.4/fpm/php-fpm.conf 由于最后有引用代码include=/etc/php/7.4/fpm/pool.d/*.conf,所以会测试/etc/php/7.4/fpm/pool.d/*.conf 测试php.ini配置文件 优雅重启 强制重启

WSL常见问题

清理、压缩、减少WSL体积 检查WSL下的目录大小,用于清理垃圾 压缩WSL的磁盘体积 WSL占用空间膨胀后,不会自动回收。需要手动处理 WSL下执行 PowerShell下执行 修改默认登录用户 在cmd下运行下面命令: 即可改变默认登录WSL的用户 windows系统升级后,自带的ubuntu版本也会跟着升级,自定义安装指定版本ubuntu后,上面的命令跟着变化: 使cron服务自动运行 编辑:/root/.bashrc 加入:service cron start 当你以root用户登入linux系统后,会自动启动cron服务 Windows10启动时自动运行WSL内命令 (参考这个:https://dev.to/ironfroggy/wsl-tips-starting-linux-background-services-on-windows-login-3o98) 并且加入执行属性: Windows下打开任务计划程序 创建基本任务,任务名称随便起,例如:Start WSL Program When Windows10 Is Running , 描述怎么写看心情 触发器,建立一个触发器,触发条件可以写:启动时 操作,建立一个操作, “程序或脚本”填:C:\Windows\System32\bash.exe “添加参数”填:-c “/root/scripts/autorun_when_windows10_start.sh” C:\Windows\System32\bash.exe -c “/root/autorun_when_windows10_start.sh” 创建任务后,查看任务,勾选“不管用户是否登录都要运行”,并且为windows用户设置一个密码!! WSL 文件权限问题 最近在 WSL 下碰到 PHP chmod(): Operation not permitted 这个问题,看起来是文件权限的问题,不过查看该文件的权限是 777,不知道是 Bug 还是什么原因导致的,Google 找了下,有说是 Windows 文件系统是 NTFS 的问题,Linux 挂载需要开启一些特性,解决办法是更改 wsl.conf 文件。 添加挂载磁盘的一些默认设置。 更改后,重启电脑,一些文件的权限会改为跟 Linux 权限一样,不再是默认的全部 777 了。 WSL配置项见:WSL配置项 WSL里Nginx+PHP,反映慢,卡住等问题 https://www.tech1024.com/original/3010.html 在wsl里搭建lnmp环境时, 访问简单的PHP 文件 (例如Hello world)没有问题, 但访问多数 PHP 文件卡死, 有的(例如phpinfo()),虽然可以加载出来但浏览器显示网页仍未加载完全或者巨慢。 原因 用 Unix Socket 方式连接 Nginx

Nginx+Fastcgi配置

适配WordPress+Woocommerce http块内配置 server块内配置 点此查看nginx+fastcgi压力测试

压力测试

站点使用WordPress + Woocommerce + Object Cache Pro,压测首页 Nginx Nginx+Fastcgi Varnish+Nginx

Varnish+Nginx+wordPress方案

架构 Nginx配置 Varnish配置 启动项配置 启动文件配置 /etc/systemd/system/varnish.service.d/customexec.conf vcl配置 vcl文件:/etc/varnish/default.vcl WordPress配置 wp-config.php配置 页面模板的处理 方法1:将页面中个人数据部分剥离出来,替换成<esi:include>标签,然后对这部分数据单独生成。方法见: 方法2:将页面中个人数据部分留空,使用cart_fragments,通过ajax动态填充。 点此查看varnish+nginx的压力测试

压力测试

站点使用WordPress + Woocommerce + Object Cache Pro,压测首页 Nginx Nginx+Fastcgi Varnish+Nginx

WordPress模板优化

关键点:由于需要缓存页面,因此页面中不能包含个人数据及动态数据。 使用<esi:include>标签优化 1、通过使用shortcode([esi src=”/esi/cart-fragment/”])或者函数(<?php esi_include(‘/esi/cart-fragment/’);?>)的方式,在个人数据/动态数据部分进行替换。 2、通过注册endpoints,使varnish访问该endpoints时,获取动态数据,替换esi标签内容。 使用cart_fragments方式处理动态数据 1、页面中个人数据及动态数据留空,并做好css标记,以便ajax进行替换 2、注册fragments

Varnish处理流程的三个主要子程序

1. vcl_recv – 请求接收阶段 作用:客户端请求到达时的第一个处理点主要任务: 2. vcl_backend_response – 后端响应阶段 作用:收到后端服务器响应后的处理主要任务: 3. vcl_deliver – 交付阶段 作用:向客户端发送响应前的最后处理主要任务: Varnish完整处理流程 return (action) 返回值详解 缓存决策类 返回值 含义 使用场景 return (pass) 跳过缓存,直接访问后端 已登录用户、POST请求 return (pipe) 直接透传,不干预连接 大文件下载、WebSocket return (lookup) 查找缓存(默认行为) 普通可缓存请求 return (hash) 生成缓存键并查找 需要自定义缓存键时 终止类 返回值 含义 使用场景 return (synth) 返回合成响应 错误页面、维护模式 return (purge) 清除缓存 PURGE请求处理 return (restart) 重新开始处理 修改请求后重新处理 详细使用示例 vcl_recv 中的典型用法 varnish sub vcl_recv { # 已登录用户跳过缓存 if (req.http.Cookie ~ “wordpress_logged_in”) { return (pass); } # POST请求直接到后端 if (req.method == “POST”) { return (pass); } # 静态文件直接查找缓存 if (req.url ~ “\.(css|js|png|jpg)$”)

Varnish+Nginx+wordPress方案

架构 Nginx配置 Varnish配置 启动项配置 启动文件配置 /etc/systemd/system/varnish.service.d/customexec.conf vcl配置 vcl文件:/etc/varnish/default.vcl WordPress配置 wp-config.php配置 页面模板的处理 方法1:将页面中个人数据部分剥离出来,替换成<esi:include>标签,然后对这部分数据单独生成。方法见: 方法2:将页面中个人数据部分留空,使用cart_fragments,通过ajax动态填充。 点此查看varnish+nginx的压力测试

Varnish清除缓存

1️⃣ 全量清空缓存 直接把 Varnish 内存里的缓存全部清掉: 这条命令会给所有 URL 打一个 ban 标记,后续请求时缓存都会失效。相当于「全站清缓存」。 如果你想立即清空所有缓存(而不是等对象逐步过期),还可以执行: 确保 ban 已经生效。 2️⃣ 按 URL 清理(精准清理) 比如只清 /about/ 页面: 或者所有包含 /product/ 的页面: 3️⃣ 使用 PURGE 方法(需要 VCL 支持) 你的 VCL 里已经写了: 这说明你可以用 HTTP PURGE 请求来清缓存。 例如清掉首页缓存: 清掉某个具体 URL: ⚠️ 注意:client.ip ~ purge 限制了只有 127.0.0.1 能发 PURGE 请求。如果要让远程机器也能清缓存,就需要在 VCL 的 acl purge 里加上对应 IP。 4️⃣ 重启 Varnish(最暴力) 直接清空全部缓存(因为默认用 malloc 存在内存里,重启后数据就没了)。

Varnish安装及配置

1. 什么是 Varnish? 2. 安装 Varnish Debian/Ubuntu CentOS/RHEL 安装完成后,你可以查看版本: 3. 配置 Varnish Varnish 默认监听 6081 端口。一般我们做两层代理: 修改监听端口 编辑配置文件(不同系统位置可能不同): 修改: 不修改原启动配置方法 新建文件/etc/systemd/system/varnish.service.d/customexec.conf,写入如下启动配置: 说明: 4. 配置 VCL 文件VCL (Varnish Configuration Language)是 Varnish 的规则配置文件。默认在 /etc/varnish/default.vcl。 示例配置(对接 Nginx 后端 8080): 5. 启动 & 检查 重启 Varnish: 检查状态: 测试: 如果看到 X-Cache: HIT,说明命中缓存。 6. 配合 Nginx 使用 Nginx 修改监听端口 Nginx 需要改为监听 8080,而不是 80: 这样: 7. 管理工具 8. 日志检查 常见示例 9. 清除Varnish 的缓存

Git常用命令

创建版本库 把文件添加到暂存区 将指定文件从暂存区移除 此命令将撤销对该文件的暂存操作,但不会撤销文件的实际更改 从暂存区和工作目录中检出指定文件 此命令将撤销对该文件的暂存操作,并使工作目录中的文件与最近一次提交的状态保持一致 提交文件到版本库 查看仓库状态 比对文件(工作区和暂存区的比对) 版本库和工作区对比 两个版本直接修改过的文件列表比较 如果是branch的话 (加上 –stat 是显示文件列表, 否则是文件内容diff) 查看日志 版本回退(回退到上一个版本) 回退到上上个版本 回退到上100个版本 回退到某个特定的版本 查看操作记录 # 删除所有未跟踪的文件和目录 # 如果你想先查看哪些文件会被删除(安全检查) 暂存修改 仅仅删除暂存区里的文件     此时你想撤销错误添加到暂存区里的文件,可以输入以下命令: 详情看: 查看某个版本更新的文件 查看某个版本更新的文件及其内容 忽略文件权限的改变 修改上一次错误的备注 将git默认的修改文件编辑器改为vim

Yara规则库

From:https://github.com/Yara-Rules/rules 这些规则库,有部分可以用来检测php代码的问题

PHP Malware Finder安装方法

安装方法见:/security/php-malware-finder/ 软件安装在:/root/php-malware-finder/中,目录文件结构如下: 其中data目录就是存放规则的目录 在此目录中执行以下命令: 1、更新规则 (目前无法更新规则,不需要执行下面命令) 2、扫描目录 基本扫描命令 1. 扫描单个目录(递归检测所有文件) 2. 扫描单个文件 3. 快速扫描(跳过大于2MB的文件) 🎯 高级用法 1. 只显示确认为恶意的文件(过滤误报) 2. 保存扫描结果到日志文件 3. 排除特定目录(如缓存目录) 📊 结果解读 ⚠️ 注意事项

Wordfence

WordPress文件安全扫描,优先推荐是Wordfence插件。

PHP Malware Finder

From:https://github.com/jvoisin/php-malware-finder PHP 恶意软件查找器 它检测到什么? PHP-malware-finder 尽最大努力检测混淆/狡猾的代码以及使用恶意软件/webshell 中经常使用的 PHP 函数的文件。 还检测到以下编码器/混淆器/Webshell 列表: 当然,绕过 PMF 是微不足道的,但它的目标是抓住孩子和白痴,而不是大脑正常的人。如果您报告了 PMF 的愚蠢定制旁路,您可能属于一个(或两个)类别,并且应该重新阅读之前的声明。 它是如何工作的? 检测是通过抓取文件系统并针对 设置 YARA 规则。是的,就这么简单! PMF 没有使用基于哈希的方法 ,而是尽可能多地使用语义模式来检测诸如“$_GET 变量被解码两次、解压缩,然后传递给某些危险的函数(如系统 )”之类的内容。 安装 从源头 或者将最后 2 个步骤替换为 go install github.com/jvoisin/php-malware-finder ,这将直接编译并安装 PMF 到你的 ${GOROOT}/bin 文件夹中。 如何使用它? 或者,如果您更喜欢使用 yara: 请记住,您至少应该使用 YARA 3.4,因为我们正在使用 哈希值,以及贪婪的正则表达式。请注意,如果您计划从源代码构建 yara,则必须在您的系统上安装 libssl-dev 才能支持哈希。 哦,顺便说一句,您可以使用 make 测试来运行综合测试套件。 码头工人 如果您想避免安装 Go 和 libyara,您也可以使用我们的 docker 映像,只需将要扫描的文件夹挂载到容器的 /data 目录: 白名单 检查 whitelist.yar 文件。 如果你懒惰,你可以使用 generate_whitelist.py 脚本。 为什么我应该使用它而不是其他东西? 因为: 发 牌 PHP-malware-finder 是 许可 根据 GNU Lesser General Public License v3。 令人惊叹的 YARA 项目在 Apache v2.0 许可下获得许可。 补丁、白名单或示例当然非常受欢迎。 我本地安装及使用方法:/security/php-malware-finder-usage/

Xdebug使用方法

Xdebug + Webgrind/KCacheGrind 属于 函数级别的性能分析(Profiler),能看到“一个 URL 执行了哪些 PHP 函数、每个函数耗时多少、调用次数”。 1. 安装 Xdebug 首先确认 PHP 版本(例:php -v)。安装 Xdebug: 查看是否成功: 2. 配置 Xdebug Profiler 编辑 php.ini 或者 FPM 配置(/etc/php/8.x/fpm/conf.d/20-xdebug.ini): 创建输出目录,并设置权限 重启 PHP-FPM 和 Nginx: 3. 触发请求,生成 profile 文件 访问一个 WordPress 页面(比如 /shop/product/123),然后到 /tmp/xdebug/ 查看: 这个文件就是 函数级调用记录。 4. 分析 profile 文件 方法 A:KCacheGrind(Linux 桌面) 你会看到: 方法 B:Webgrind(Web UI) 浏览器访问 http://yourserver/webgrind/ → 选择 profile 文件查看。 下载 Webgrind: 配置 Nginx 虚拟主机,指向 /var/www/webgrind。 (/var/www/webgrind目录需要给读写权限) 生成图形化调用图,需要安装jrfonseca/gprof2dot, 安装graphviz 安装gprof2dot 详见:https://github.com/jrfonseca/gprof2dot Webgrind中查看其他vhost的文件代码,需要在config.php配置中修改成: 5. 常见调试流程 比如你访问 /shop/product/123,在 Webgrind/KCacheGrind 里可以看到: 6.

PHP测试配置文件

背景:Ubuntu系统下,使用apt安装的php7.4版本 配置文件目录结构 测试fpm配置文件 /etc/php/7.4/fpm/php-fpm.conf 由于最后有引用代码include=/etc/php/7.4/fpm/pool.d/*.conf,所以会测试/etc/php/7.4/fpm/pool.d/*.conf 测试php.ini配置文件 优雅重启 强制重启

立即执行函数表达式 (IIFE) 的常见写法

IIFE 的几种常见写法 1. 带名字的 IIFE 名字在函数体内可见,方便调试,但外面无法调用。 2. 匿名函数 IIFE(最常见) 3. 箭头函数 IIFE 可以用参数: 4. 一元运算符触发 IIFE 只要能把 function(){} 变成「表达式」,都可以。比如: 这类写法早期为了压缩代码常见,现在不推荐。 5. async IIFE(常用于顶层 await 替代) 🔹 其他“定义即执行”的类似模式 除了 IIFE,JS 里还有一些“定义完就执行”的写法,思路类似: 6. 对象立即调用方法 7. 类的立即实例化 8. 立即调用箭头函数返回的值 ✅ 总结: IIFE 本质就是「函数表达式 + ()」。 常见形式:普通函数、带名字函数、箭头函数、async 函数。 变体:利用 !、+、new 等运算符把函数转成表达式。

Woocommerce下PHP扩展

好——我把你列的扩展按 「必须/强烈建议/可选/不必要(或仅用于开发/特殊场景)」 四类整理出来,并给出简短理由与开启建议。先说明一点:WordPress 本体、WooCommerce 和大多数插件都依赖一组基础扩展(如 mbstring、mysqli/pdo_mysql、xml、fileinfo、zip、gd/imagick、opcache 等);其他很多扩展是为特殊功能或第三方服务准备的(队列、消息、NoSQL、性能/调试工具等),不是必须的。 一、必须开启 / 强烈推荐(生产环境必有或非常有利) 这些对 WordPress + WooCommerce 电商站最关键,建议在生产环境开启: 二、推荐开启(对性能/缓存或部分插件有明显好处) 三、按需/特殊场景才开启(不是一般电商站必需) 这些通常用于特定后端、第三方服务或高级功能: 四、开发/调试用(生产环境一般关闭) 五、几类可以直接关闭 / 对你的站点基本没用 (除非你明确需要下列特性,否则关闭以减少攻击面与占用) 针对你列出的清单(快速建议 — 是否启用) 我把你原列表里常见或常被疑问的项目列出直接建议(更具体): 具体操作与自检方法 最后几条建议(实战)

2025 年最佳网站托管服务

来源:https://cybernews.com/best-web-hosting/ 凭借多年测试和审查托管服务的实践经验,我学到了一件重要的事情: 并非所有网络主机都是一样的。有些在速度方面表现出色,但在安全性方面存在不足,而另一些则提供充足的存储空间但缺乏可靠性。这就是为什么在提交之前充分了解您的托管服务提供商很重要,这样您以后就不会遇到问题和后悔。 在本文中,我分享了 2025 年 9 月最佳网站托管提供商的 10 大精选 。我的排名来自我们研究团队的实际测试。我们评估了每个提供商的易用性、性能、安全性、功能和价格。这样,您就可以自信地选择适合您的一款。 2025 年最佳网络托管服务提供商 📢 限量优惠: 获得高达 78% 的 Hostinger 折扣 + 免费月份 为什么您可以信任网络新闻 我们的内部研究团队和专家作家携手合作,定期测试托管服务并提供准确且经过事实核查的信息。了解我们如何测试和评估网站托管服务提供商的来龙去脉。 58测试的 Web 主机 1月正常运行时间监控期 1748数小时的广泛测试 2025 年最佳网站托管服务 – 详细评论 4 年多来,我一直在测试和排名网络托管服务提供商,与研究团队密切合作。每个月,我都会审查我们的整个阵容,更新排名,并突出显示任何新功能或性能变化。这样,我的建议就会保持新鲜和相关 。 您将要阅读的列表基于我 2025 年 8 月的最新发现。我查看了每个提供商的功能、性能、定价和整体托管体验,看看哪些提供商脱颖而出。因此,请继续阅读以找出最适合您的托管。 1. Hostinger 虚拟主机 网络新闻评级: 4.9★★★★★ 起始价: $ 2.69 /月 退款保证: ✅ 是的,30 天 网站: 从 25 免费域名: ✅ 是的 免费 SSL: ✅ 是(无限制) 24/7 支持: ✅ 是的 托管类型: 共享、WordPress、VPS、云和电子邮件托管 最划算的交易: 获得高达 78% 的 Hostinger 折扣 + 免费月份 访问 Hostinger Hostinger 是我的 #1 托管服务提供商,在不影响性能的情况下提供负担得起的服务 。它也是用户友好的,非常适合初学者、企业和更高级的用户。Hostinger 起价为 2.69 美元/月 。

WooCommerce订单状态含义及流转方向

1️⃣ WooCommerce 默认订单状态及说明 状态 说明 流向说明 pending 待付款(用户已下单,但未支付) 可取消 → 付款成功转 processing 或失败保持 pending failed 付款失败(支付网关返回失败) 可重新付款 → 成功转 processing on-hold 暂停/等待(管理员手动设置,或库存不足时自动设置) 管理员可手动转 processing 或 cancelled processing 处理中(已付款,需要发货) 发货完成 → completed completed 已完成(订单已付款并完成发货/服务提供) 最终状态,一般不可再修改 refunded 已退款(全部或部分退款) 最终状态 cancelled 已取消(用户取消或管理员取消) 最终状态 trash 回收站 最终状态,删除订单 2️⃣ 流转方向(典型电商订单) 3️⃣ 备注

WordPress本地化

让插件本地化 插件结构 主插件文件示例 .po/.mo文件命名示例 $domain-语言代码.po $domain-语言代码.mo .po 文件示例 msgid → 原始英文字符串(和 PHP 里的 __() 保持一致) msgstr → 目标语言翻译 编译成 .mo 文件后,WordPress 或 WPML / Loco Translate 会自动加载 生成mo文件 习惯了Linux和vim,安装软件和网页版在线转换服务都不如敲命令转换来得直接。幸运的是,GNU getext 是Linux系统自带的核心文本工具之一,提供 msgfmt 命令将.po文件翻译成.mo文件: GNU getext 包还提供 msgunfmt 命令将.mo文件转换成.po文件: 主题本地化 语言翻译相关函数

用WordPress的cli命令替换数据库

点此安装wp cli命令 用 WP-CLI 的 wp search-replace 命令来做数据库替换,非常适合这种从 www.dian.com 切换到 wp.g9home.com 的场景。 wp cli 命令执行方式 方式 1:进入对应站点目录再执行 假设你有多个站点: 那么要替换 site2 的数据库: 方式 2:用 –path 参数指定路径 不切换目录,直接指定 WordPress 路径: 方式 3:明确数据库参数(不常用) 如果你就是想在任意目录执行,也可以直接传 DB 参数: ⚠️ 这种方式会跳过 wp-config.php,适合多站点混合时手动指定。 🔹 基本命令 🔹 常用参数说明 🔹 实际操作步骤 先 dry-run 看一下效果 输出类似: 确认没问题后,正式替换 清理缓存如果你有缓存插件或对象缓存(Redis/Memcached),执行: 🔹 注意事项

ubuntu 22安装wp cli命令

在 Ubuntu 22.04(WSL 也一样)下安装 WordPress CLI(wp-cli)的步骤如下: 1. 安装依赖 先确保有 PHP 和 curl: 2. 下载 wp-cli.phar 3. 赋予执行权限 4. 移动到 PATH 下 这样就可以用 wp 命令全局调用了。 5. 验证安装 如果看到 PHP 版本、WP-CLI 版本信息,说明安装成功。 6. 使用方式 进入你的 WordPress 根目录(比如 /var/www/html/wordpress 或 /var/www/xxx.com/)执行: 能正常返回版本号就说明可以用了。

Cloudflare Tunnel 暴露本地网站

背景:WSL下安装的WordPress网站使用域名www.test.com,通过hosts配置DNS,映射到本地127.0.0.1;Cloudflare里买的域名是dian.com。 1. 安装 cloudflared 在 WSL 里: 2. 登录 Cloudflare 会弹出一个链接,在浏览器里选择你的 Cloudflare 账号和域名。 授权成功后,会在用户目录下生成授权证书文件:/root/.cloudflared/cert.pem 3. 创建隧道 它会输出一个隧道 ID,同时在 ~/.cloudflared/ 下生成一个配置文件(json 格式) vi ~/.cloudflared/config.yml 内容 注意: 配置 Cloudflare DNS 4. 给域名添加隧道 DNS 解析 Cloudflare 的 DNS 面板会自动添加一条 CNAME 记录:wp.dian.com CNAME <随机隧道ID>.cfargotunnel.com 。 这样全世界访问 wp.dian.com 时,会被转到你的本地服务。 5. 运行隧道 假设 WSL 里的 WordPress 在 http://localhost:8000: 现在访问 https://wp.dian.com 就会直接连到你本地的 WordPress。 6. 修改 WordPress 配置 WordPress 本地之前用的是 www.dian.com,现在要切换到 https://wp.g9home.com,不然登录、跳转会出错。 修改方法: 以后如果你想要用 自定义子域名(比如 pay.dian.com),只要在 config.yml 的 hostname 里改一下,再跑一遍 cloudflared tunnel route dns 即可。 www.test.com 只能本地用,外部(WordPress.com)无法访问,所以必须用 Cloudflare

SEO 项目全盘路线图

3-6 个月周期的 SEO 推广项目,适合从零到有的完整执行。 SEO 项目路线图(示例) 🟢 阶段一:战略规划(第 1-2 周) 目标:明确方向、资源和执行框架 🔵 阶段二:站内优化(第 3-6 周) 目标:打好网站内部基础,确保内容能被搜索引擎良好收录 🟡 阶段三:内容建设 & 站外推广(第 2-3 月) 目标:建立内容矩阵,逐步获取外部链接与曝光 🟠 阶段四:监控与优化(第 3-6 月) 目标:数据驱动迭代,不断提升 SEO 效果 🔴 阶段五:长期战略(6 个月后持续) 目标:将 SEO 转化为稳定的流量与品牌资产 ✅ 项目管理建议

SEO 全盘策划的逻辑框架

一、前期战略规划(顶层设计) 二、站内 SEO 策略 三、站外 SEO 策略 四、数据监控与持续优化 五、长期布局(战略视角) 👉 总结一句话:SEO 全盘策划 = 战略定位(目标、市场、用户) + 站内优化(结构、内容、技术) + 站外推广(外链、品牌、传播) + 数据驱动迭代(监控、复盘、优化) + 长期品牌化布局。

Cloudflare Tunnel 暴露本地网站

背景:WSL下安装的WordPress网站使用域名www.test.com,通过hosts配置DNS,映射到本地127.0.0.1;Cloudflare里买的域名是dian.com。 1. 安装 cloudflared 在 WSL 里: 2. 登录 Cloudflare 会弹出一个链接,在浏览器里选择你的 Cloudflare 账号和域名。 授权成功后,会在用户目录下生成授权证书文件:/root/.cloudflared/cert.pem 3. 创建隧道 它会输出一个隧道 ID,同时在 ~/.cloudflared/ 下生成一个配置文件(json 格式) vi ~/.cloudflared/config.yml 内容 注意: 配置 Cloudflare DNS 4. 给域名添加隧道 DNS 解析 Cloudflare 的 DNS 面板会自动添加一条 CNAME 记录:wp.dian.com CNAME <随机隧道ID>.cfargotunnel.com 。 这样全世界访问 wp.dian.com 时,会被转到你的本地服务。 5. 运行隧道 假设 WSL 里的 WordPress 在 http://localhost:8000: 现在访问 https://wp.dian.com 就会直接连到你本地的 WordPress。 6. 修改 WordPress 配置 WordPress 本地之前用的是 www.dian.com,现在要切换到 https://wp.g9home.com,不然登录、跳转会出错。 修改方法: 以后如果你想要用 自定义子域名(比如 pay.dian.com),只要在 config.yml 的 hostname 里改一下,再跑一遍 cloudflared tunnel route dns 即可。 www.test.com 只能本地用,外部(WordPress.com)无法访问,所以必须用 Cloudflare

Scroll to Top