xmlrpc.php 存在于 WordPress 网站程序中,通过使用 HTTP 作为传输机制和 XML 作为编码机制来标准化这些通信来实现此目的。然而,xmlrpc.php 文件引入了安全漏洞,并且可能成为被攻击的目标。
最近网站大量 POST 请求 xmlrpc.php,导致 CPU 负载爆满,内存也比平时占用更多,感觉是被人扫描攻击了。所以这个涉及到了 WordPress 安全,必须重视起来。
XML-RPC 是支持 WordPress 与其他系统之间通信的规范。XML-RPC 不仅用于移动应用程序:它还用于允许 WordPress 和其他博客平台之间进行通信,还支持引用和 pingback。但是由于 REST API 已集成到 WordPress 核心中,因此 xmlrpc.php 文件不再用于此通信。
如果您的站点上启用了 XML-RPC,则黑客可能会利用 xmlrpc.php 在短时间内向您的站点发送大量 pingback,从而在您的站点上发起 DDoS 攻击。这可能会使服务器超载,并使站点无法正常运行。而每次 xmlrpc.php 发出请求时,它都会发送用户名和密码进行身份验证,所以,黑客可以使用它来尝试爆破您的站点。
在此基础上,我们 还发现了攻击//xmlrpc.php
地址,来耗尽 WordPress 站点的服务器资源,所以更加推荐最后一种方法。
因此,您现在应该在站点上禁用 xmlrpc.php,但是很多人不知道该如何停用 xmlrpc.php 文件,虽然将其删除是最简单的方法,但是由于 WordPress 经常升级,又会重新生成该文件,所以在此基础上,WPEXP 跟大家分享五个禁用 xmlrpc.php 的方法,供大家选择使用。
在当前主题的 functions.php 文件添加下面这行代码就能关闭 xmlrpc.php
复制
//通过 functions.php 函数文件禁用 xmlrpc.php
add_filter('xmlrpc_enabled', '__return_false');
在 WordPress 根目录编辑 wp-config.php 文件,最开始的地方添加:
复制
if(strpos($_SERVER['REQUEST_URI'], 'xmlrpc.php') !== false){
$protocol = $_SERVER['SERVER_PROTOCOL'] ?? '';
if(!in_array($protocol, ['HTTP/1.1', 'HTTP/2', 'HTTP/2.0', 'HTTP/3'], true)){
$protocol = 'HTTP/1.0';
}
header("$protocol 403 Forbidden", true, 403);
die;
}
Nginx 规则
复制
location ~* ^/xmlrpc.php$ {
return 403;
}
Apache 规则
在 .htaccess 文件前面添加以下代码。
复制
<Files xmlrpc.php>
Order Allow,Deny
Deny from all
</Files>
这个的前提要求需要保护好自己的服务器 IP 不被发现,在此基础上可以在云防火墙或者 CDN 中写好阻止 xmlrpc.php 访问,比上述所有配置都要进一步降低服务器性能的消耗,因为它还没有请求你服务器就被拦截了。
这里以 CloudFlare WAF 防火墙为例,在添加/xmlrpc.php
基础上,再添加一个//xmlrpc.php
以防万一。怕大家看不懂,这里使用 URI 完整,小伙伴们可以考虑使用 URI 包含规则,填写一个/xmlrpc.php
即可。
退而求其次,如果你有使用宝塔的 Nginx 防火墙,那么也可以使用防火墙来阻止 xmlrpc.php 访问。但是这个毕竟还是会涉及服务器资源的占用,在能够做好 IP 不泄露的情况下,使用云端防火墙或 CDN 去阻止是最好的!
很多时候robots.txt 包含了很多信息,有些安全软件把robots当漏洞来处理,实际上这个算不上漏洞,充其量是因此泄露而已!
以下代码是禁止直接访问,但匹配并排除搜索引擎蜘蛛
nginx站点配置文件中加入以上节点
将上面代码添加如wordpress中可以防止通过地图对wordpress文章的采集:
默认会显示的几个代码:
nameCheap也是我们最为喜欢的域名注册商之一,其虽然是从ENOM代理商做起来的,但是经历过年的壮大发展目前品牌已经深入我们用户口碑。其至少在我们普通站长中的口碑和形象还是非常好的,虽然不及Godaddy优惠码>多,也不支持支付宝付款,但是其DNS的稳定,以及变化多样的促销优惠信息还是深得我们喜欢。在NameCheap注册域名到底有哪些优势呢?
第一,性价比高。NameCheap在没有节日特别优惠活动的时候,平时的每月优惠活动价格并不是最为便宜的,但是首次注册域名送隐私保护这样折合出来的费用还是比较具有竞争力的。
第二,稳定性。我们在使用Godaddy域名的时候,如果我们是用来做中文网站,我们必须要用第三方DNS或者购买付费DNS解析才比较稳定,Namecheap域名的自带DNS还是相当的稳定。我们不需要再使用第三方DNS。
第三,免费隐私保护。购买域名,都免费赠送域名隐私保护,我个人还是比较喜欢隐私保护的,因为如果你的网站较多,还是会受到”站群”影响,虽然是微乎其微的影响,但毕竟还是有利的,尤其是对域名的安全性也是比较好。
第四,优惠活动。NameCheap每月都会有固定的优惠,不论是在主机还是在域名上,每月还是有小幅度的优惠;而且在每逢大的节日,都会有较大的转入和新注册优惠,而且还是比较大方。
第一、Namecheap域名优惠码
优惠码:SCARYDMS
备注说明:新注册或者转移.COM/ORG/NET/BIZ/INFO域名可以使用,新注册.COM域名仅需9.61+0.18美元,送隐私保护。转入.COM域名仅需8.79+0.18美元,送隐私保护。续费域名没有优惠。
第二、Namecheap企业邮局优惠码
优惠码:SCARYPE
Namecheap商家有提供企业邮局,如果我们有需要域名邮局、企业邮局的话可以选择,还是比较便宜的。优惠码折扣后可以六五折优惠。
第三、Namecheap SSL优惠码
优惠码:SCARYSSL
备注说明:新购买Namecheap SSL证书,可以享受八三折优惠。
第四、续费优惠码
优惠码:COUPONFCNC
Namecheap域名新注册活动便宜,但是续费是比较贵的,我们一定要使用这个优惠码享受续费优惠。适合域名和SSL等。
需要注意的几个问题:
第一,域名隐私保护也是免费的,我们可以在购买域名的时候开启。
第二,域名是可以自由转出的,但必须在新购买60天之后转出。
第三,在平时,如果有低价注册或者转入优惠,如果我们第二次转出到其他注册商,然后在有转入优惠想转入进来是不可以的。
wordpress avada 主题是外贸建站常用的一个主题,在更换域名后会出现小图标不显示,那么怎么办呢?办法如下,删除下面的缓存文件,再重新刷新网页图标就显示出来了
删掉这些文件,系统会自动重新生成的。如果是其他主题的话,你们可以自己备份之后尝试。
然后,清空浏览器缓存,就可以看到前端了。
1 WordPress错误怎么办?
当WordPress网站出现一些致命错误问题,找不到原因时,必须禁用所有插件,然后逐个启用,以便观察是WordPress主题,或是哪些WordPress插件造成冲突。
但是,禁用所有WordPress插件,绝对会影响在网站前台浏览的访问者。
两全其美的调试WordPress错误的方法,可能是你所需要的。
innity_adZoneAsync.q.push(function(){innity_adZoneAsync.display(“ee389847678a3a9d1ce9e4ca69200d06″,”96572”,{“target”:”div-ad-innity-96572/0″,”origin”:”MY”});});
WordPress致命错误怎么解决?
WordPress网站搬家后,首页前台空白打开后台也空白,怎么办?
建议开启“WordPress调试模式”,对WordPress进行故障排除。
如何开启WordPress调试模式?
define('WP_DEBUG', false);
”,修改为“define('WP_DEBUG', true);
”/** * 开发者专用:WordPress调试模式 * * 将这个值改为true,WordPress将显示所有用于开发的提示 * 强烈建议插件开发者在开发环境中启用WP_DEBUG * * 要获取其他能用于调试的信息,请访问Codex * * @link https://codex.wordpress.org/Debugging_in_WordPress */ define('WP_DEBUG', true); //define('WP_DEBUG', false);
define('WP_DEBUG', false);
” 修改回“define('WP_DEBUG', false);
”。刷新出错网页后,就会显示类似以下造成WordPress错误的插件提示信息 ▼
innity_adZoneAsync.q.push(function(){innity_adZoneAsync.display(“ee389847678a3a9d1ce9e4ca69200d06″,”96574”,{“target”:”div-ad-innity-96574/0″,”origin”:”MY”});});
Strict Standards: Redefining already defined constructor for class PluginCentral in /home/eloha/public_html/etufo.org/wp-content/plugins/plugin-central/plugin-central.class.php
on line 13
在启用Health Check & Troubleshooting插件调试错误之前,一定要先做好网站备份,否则一旦出现严重错误,难以恢复数据。
对于启用了“健康检查与故障排除
”插件的“故障排除模式”功能的站长,网站所有插件将被禁用并切换到默认主题,但其他网站的访问者将照常查看该网站。
第 1 步:安装Health Check & Troubleshooting
插件
Health Check & Troubleshooting
”或下载后上传。第 2 步:启用“故障排除”模式 ▼
WordPress网站启用故障排除模式后,你的WordPress后台将自动切换回WordPress 默认主题,所有WordPress 插件也会停止使用。
别紧张,如果你用其他浏览器作为访问者浏览网站,是可以如常访问的。
所以这时候你可以放心找出问题慢慢解决。
但是,如果你的网站以这种方式呈现出两种状态,可能会过度消耗主机资源,所以一般选择在很少的时候做比较好访客。
(如果网站流量不高,就会觉得不是特别耗主机性能)
第 3 步:复制站点信息到剪贴板
WordPress后台 → 工具 → 站点健康 → 信息 → 复制站点信息到剪贴板
第 4 步:将刚才复制的站点信息,粘贴到记事本。
第 5 步:搜索“wp-plugins-active
”,即可记录和查看已启用的WordPress插件。
在WordPress顶部导航这里, 可以先设置主题启用 ▼
wp-plugins-active
”列表,可根据字母开头逐个启用WordPress插件,比如先从A字母开头小范围地启用WordPress插件。假如想要在故障排除模式中启用WordPres插件,点击“故障排除已启用 ” ▼
▲ 此WordPress版本的中文翻译不完善,图中的这个“故障排除已启用”应该是“在故障排除模式中启用”才对。
Health Check & Troubleshooting(健康检查和故障排除)
插件会自动停用,所以一定要先启用此插件,否则在查看“站点健康”页面时,会出现错误提示“抱歉,你不能访问此页面”。“Health Check & Troubleshooting
”插件提供了网站“状态”、“信息”、“故障排除”和“工具”等数据,让你了解当前网站的健康状况 ▼
Health Check & Troubleshooting
是一个非常必要的WordPress插件。
希望我们( https://www.wordpressx.com/ ) 分享的《WordPress错误怎么办?Health Check & Troubleshooting插件排查》,对您有帮助。
1 什么是 Redis 缓存?
你可能听说过 APC/APCu、Opcache、Xcache,它们可以显着加速 WordPress 或任何类型的受支持的 php 脚本。
在本教程中,我将向你展示如何使用 Redis 对象缓存加速 WordPress,我们将继续在 CWP 上安装 Redis 缓存,所以让我们开始吧。
第 1 步 :转到 CWP控制面板
innity_adZoneAsync.q.push(function(){innity_adZoneAsync.display(“ee389847678a3a9d1ce9e4ca69200d06″,”96572”,{“target”:”div-ad-innity-96572/0″,”origin”:”MY”});});
导航到底部并找到“ redis
”并选中它然后点击“ Build
”按钮,在php重建过程完成后,你可以通过以下命令检查redis是否在运行 ▼
service redis status
你会得到这样的输出(在CentOS 7上测试,CentOS 6有不同的输出,比如“ running ”)
[[email protected] ~]# service redis status Redirecting to /bin/systemctl status redis.service ● redis.service - Redis persistent key-value database Loaded: loaded (/usr/lib/systemd/system/redis.service; enabled; vendor preset: disabled) Drop-In: /etc/systemd/system/redis.service.d └─limit.conf Active: active (running) since Sun 2022-02-20 16:41:24 +08; 12s ago Main PID: 2486 (redis-server) Status: "Ready to accept connections" CGroup: /system.slice/redis.service └─2486 /usr/bin/redis-server 127.0.0.1:6379
此时一切都很好,现在输入以下命令,检查 php redis 是否安装好了 ▼
php -m | grep -i redis
输出将是这样的 ▼
innity_adZoneAsync.q.push(function(){innity_adZoneAsync.display(“ee389847678a3a9d1ce9e4ca69200d06″,”96574”,{“target”:”div-ad-innity-96574/0″,”origin”:”MY”});});
[[email protected] ~]# php -m | grep -i redis redis [[email protected] ~]#
如果输出为 redis
,那么一切都很好,我们将继续安装 WordPress 和 Redis 的集成。
安装CWP7控制面板的方法,请看这里 ▼
如何安装CWP控制面板?CENTOS WEB PANEL配置教程
如何安装CWP控制面板? CENTOS WEB PANEL配置教程 网络推广人员用VPS建站,有众多免费或付费的控制面板可以选择。 在不知道要如何选择功能齐全的VPS控制面板时,推荐使用CWP控制面板。 什……
第 2 步 :在 WordPress 中启用 redis-object-cache 插件之前,你必须在 wp-config.php
文件中添加以下定义 ▼
define( 'WP_CACHE_KEY_SALT', 'www.wordpressx.com
:' );
www.wordpressx.com
替换为你的网站。第 3 步 :登录到 WordPress后台 → 转到“插件” → “安装插件” ▼
Redis Object cache
点此进入WordPress官网 免费下载Redis Object cache插件
第 4 步 :假设你已经安装了 Redis Object cache
插件,现在导航到 Redis 设置并单击“启用对象缓存”。
WordPress启用 Redis 缓存加速插件后,它将显示“已连接”,如下图所示 ▼
特别声明:如果默认安装的程序是英文的,截图理所当然是英文的。
使用如下命令查看本地Redis缓存是否生成 ▼
redis-cli monitor
Redis缓存也可能会导致WordPress插件和WordPress主题修改不生效。
手动删除Redis缓存的命令▼
redis-cli flushall
#进入redis redis-cli #清空 flushall #退出 exit
查看Redis的memory配置 ▼
redis-cli info memory
返回查询结果 ▼
# Memory used_memory:24645472 used_memory_human:23.50M used_memory_rss:40558592 used_memory_rss_human:38.68M used_memory_peak:140777552 used_memory_peak_human:134.26M used_memory_peak_perc:17.51% used_memory_overhead:1619888 used_memory_startup:811872 used_memory_dataset:23025584 used_memory_dataset_perc:96.61% allocator_allocated:24964648 allocator_active:26865664 allocator_resident:37646336 total_system_memory:17179869184 total_system_memory_human:16.00G used_memory_lua:37888 used_memory_lua_human:37.00K used_memory_scripts:0 used_memory_scripts_human:0B number_of_cached_scripts:0 maxmemory:0 maxmemory_human:0B maxmemory_policy:noeviction allocator_frag_ratio:1.08 allocator_frag_bytes:1901016 allocator_rss_ratio:1.40 allocator_rss_bytes:10780672 rss_overhead_ratio:1.08 rss_overhead_bytes:2912256 mem_fragmentation_ratio:1.65 mem_fragmentation_bytes:15954144 mem_not_counted_for_evict:0 mem_replication_backlog:0 mem_clients_slaves:0 mem_clients_normal:20496 mem_aof_buffer:0 mem_allocator:jemalloc-5.1.0 active_defrag_running:0 lazyfree_pending_objects:0 lazyfreed_objects:0
以下是启动Redis缓存后,如何配置pid文件的方法 ▼
Redis找不到pid?Redis启动后如何配置pid文件位置地址
Redis启动找不到pid文件位置?Redis的pid文件在哪里?Linux怎么查看Redis进程pid文件位置地址?Linux 查找redis进程命令 ▼ps -ef | grep redis返回显示以下查询结果 ▼redis 28221……
希望我们( https://www.wordpressx.com/ ) 分享的《WordPress怎么用Redis加速缓存插件?CWP开启Redis缓存》,对您有帮助。
1 WordPress替换主页网址图片链接插件
当你将WordPress网站搬家移动到新域名或服务器时,你可能需要在数据库上运行搜索/替换,让网站能够如常运行工作。
幸运的是,有几个WordPress插件可用于此任务,但是,对于一些关键功能,它们都有不同的方法。
之前我们有分享过WordPress网站搬家插件:WP Migrate DB。
WP Migrate DB插件替换网址链接的缺点:
但由于WP Migrate DB插件没有试运行的功能,也无法选择需要替换的数据表……
如果数据库容量庞大,需要长时间等待,浪费时间又消耗很多内存……
最近我们发现到这款更加好用更的Better Search Replace插件,可以替换WordPress主页网址图片链接的插件 ▼
Better Search Replace插件在替换WordPress主页网址图片链接时,可以选择需要替换数据表 ▼
▲ Better Search Replace插件在执行替换WordPress网址链接之前,默认会勾选“试运行”操作
WordPress插件汇集了这些插件的最佳功能,将以下功能结合到一个简单的插件中:
点此进入WordPress官网 免费下载Better Search Replace插件
希望我们( https://www.wordpressx.com/ ) 分享的《Better Search Replace插件替换WordPress主页网址图片链接》,对您有帮助。
1 WordPress默认生成的网站地图
WordPress网站地图插件有很多,有免费和付费的WP博客站点地图,应该选择设置哪个最好用?
因为有些网站文章太多,启用后访问XML网站地图URL,可能会出现500错误,所以只有亲自测试后,选择适合自己的,才是最好用的WordPress站点地图插件。
百度不收录文章怎么办?
不过,在百度搜索资源平台提交网站地图,要求文件地址格式为txt或xml,每个地址文件最多包含50,000个网址且需小于10MB。
“请勿提交索引型sitemap,索引型不予处理,且若存在索引型sitemap,将不允许提交新文件;请删除索引型sitemap后再尝试提交数据。”
因此,需要找到符合度搜索资源平台要求,能够生成“非索引型sitemap”的网站地图插件。
接下来,分享在外星人UFO网站上测试WordPress网站地图插件的一些体会。
WordPress默认生成的XML站点地图 ▼
WordPress5.5 版本开始,自带默认 XML 网站地图:你的网站首页/wp-sitemap.xml
WordPress默认生成的网站地图功能 | WordPress默认生成的网站地图缺点 |
|
|
Companion Sitemap Generator插件生成的html网站地图 ▼
Companion Sitemap Generator网站地图插件功能 | Companion Sitemap Generator网站地图插件缺点 |
|
|
点此进入 Companion Sitemap Generator WordPress插件官网
Yoast SEO 插件生成的XML Sitemap网站地图功能 | Yoast SEO 插件生成的XML Sitemap网站地图缺点 |
|
|
点此进入 Yoast SEO WordPress插件官网
Google XML Sitemaps插件生成的xml网站地图 ▼
Google XML Sitemaps网站地图插件功能 | Google XML Sitemaps网站地图插件缺点 |
|
|
点此进入 Google XML Sitemaps WordPress插件官网
XML Sitemap & Google News网站地图插件功能 |
|
点此进入 XML Sitemap & Google News WordPress插件官网
API推送:最快速提交百度的方式。建议你马上用这种方式把网站的新文章链接推送给百度,这样才能确保新链接能及时被百度收录。
百度普通收录API收录插件,请浏览下方教程 ▼
百度普通收录API怎么对接?WP插件自动推送工具程序设置教程
WordPress代码实现的百度普通收录API提交方式,可能无法使用,所以最好是使用WordPress插件来实现快速自动或主动提交新文章链接给百度。 百度站长搜索资源平台的提交收录的方式有3种:AP……
注意事项:
希望我们( https://www.wordpressx.com/ ) 分享的《WordPress网站地图怎么生成?设置WP博客站点地图插件》,对您有帮助。
我们:CWP控制面板转KLOXO-MR替换wordpress文件夹路经
在phpMyAdmin管理工具中,点击想要修改的MySQL数据库名称,然后点击顶部的“搜索”选项卡。
替换wordpress文件夹路经:
1)搜索:
/home/用户名/public_html/site/
2)替换:
/home/admin/site/
温馨提示:建议如果替换的字符不多的话,可以手动修改就手动修改,不然部分数据(比如backwpup备份插件)可能会丢失,需要创新创建。
3)搜索出来后,在新窗口打开顶部的“SQL”选项卡。
4)然后输入以下SQL替换字符:
UPDATE wp_options SET option_value = REPLACE(option_value,'/home/用户名/public_html/site/','/home/admin/site/');
替换wordpress文件夹路经:
搜索:
/home/admin/site/
替换:
/home/用户名/public_html/site/
3)搜索出来后,在新窗口打开顶部的“SQL”选项卡。
4)然后输入以下SQL替换字符:
UPDATE wp_options SET option_value = REPLACE(option_value,'/home/admin/site/','/home/用户名/public_html/site/');
希望我们( https://www.wordpressx.com/ ) 分享的《我们:CWP控制面板转KLOXO-MR替换wordpress文件夹路经》,对您有帮助。