使用docker安装apache环境部署wordpress

环境:centos7

首先在DaoCloud注册

#安装、启动docker
curl -sSL https://get.daocloud.io/docker | sh
systemctl docker start
#拉取所需镜像(nginx-proxy、wordpress、mysql)
dao pull daocloud.io/daocloud/nginx-proxy:latest
dao pull daocloud.io/daocloud/dao-wordpress:latest
dao pull daocloud.io/library/mysql:latest
#mysql
docker run  --restart="always" -d 
  -v /data/docker/msqyl:/etc/mysql/conf.d 
  -p 0.0.0.0:3306:3306 --name mysql 
  -e MYSQL_ROOT_PASSWORD=root mysql:latest
默认账号密码:root/rot
#nginx-proxy
docker run --restart="always" -d -p 80:80 -v   
      /var/run/docker.sock:/tmp/docker.sock:ro 
      daocloud.io/daocloud/nginx-proxy

详细的使用方法查看nginx-proxy 使用

#wordpress
docker run --restart="always" --name wordpress --link mysql:mysql -e VIRTUAL_HOST=www.domain.com -v /data/wordpress:/var/www/html -d -p 8080:80 daocloud.io/daocloud/dao-wordpress:latest

www.domain.com 替换成你自己需要绑定的域名,方便nginx-proxy 自动发现

启动后发现没有办法正常访问

apache2配置

进入wordpress容器进行配置

docker exec -it wordpress /bin/bash

写入域名

echo "ServerName www.domain.com" >> /etc/apache2/httpd.conf

重启

/etc/init.d/apache2 restart

最后输入域名或者localhost:8080 进行访问

利用Nginx的auth_basic模块密码保护WordPress后台目录

有时候WordPress会遭遇到一些别有用心的人尝试访问wp-admin进行登录,这时候如果对后台目录的访问进行一个限制,就能防止一部分恶意行为。那么今天就利用一下Ngnix的ngx_http_auth_basic_module模块,进行一个简单的访问验证。

默认情况下Nginx已经安装编译了这个模块,我们可以通过几步就可以完成对指定目录的保护。

第一步:创建密码文件

登录ssh到你想要存放密码文件的目录,用Vi建立文本( 按 i 插入模式 :wq 保存并退出)

格式为 用户名:密码

建立完成后,记得设置一下文件权限为400

[root@izyi5 www]# vi my.pass
test:123456
~
:wq
[root@izyi5 www]#chmod 400 my.pass

第二步:修改Nginx配置

仿照下面代码修改站点的Nginx配置文件

server{
server_name  www.blog67.com blog67.com;

index index.html index.php;
root /data/site/www.blog67.com;

#添加auth_basic验证代码
#location后为需要保护的目录路径,此处以WP后台为例
#auth_basic为提示文本
#auth_basic_user_file为密码文件路径

location /wp-admin/
{
auth_basic "Test For blog67.com";
auth_basic_user_file /www/my.pass;
}

}

注意:密码文件路径一定要正确,否则会一直出现403错误

然后重载Nginx配置,执行

nginx -s reload

效果

现在可以访问一下后台看看,出现下图:

未分类

成功~

wordpress更换域名、数据库批量替换域名过程记录

群里网友说公司抬头更改了,所以要把公司网站把域名改一下,而网站内容里面涉及到原来域名的地方太多,手动换要很久,那么可以使用phpmyadmin批量替换一下。下面就把wordpress更换域名、数据库批量替换域名过程记录下来,给有需要的朋友提供一个参考。

一、考虑把老域名做301重定向到新域名

前面写过不少类似的教程,可以参考一下:

宝塔linux面板常见问题解答 http://www.vpsss.net/2001.html

如何在windows vps中做域名301重定向 http://www.vpsss.net/63.html

lnmp环境设置301重定向 http://www.vpsss.net/569.html

DNSPOD实现域名301重定向的方法 http://www.vpsss.net/1538.html

对域名301重定向设置方法的补充和完善 http://www.vpsss.net/1566.html

二、替换域名

尽管下面操作魏艾斯博客做过几十次了,但还是提醒您更改网站和数据库内容之前,务必先备份一下,以防不必要的意外情况出现。

备份、备份、备份,重要的事情说三遍!

1、在wordpress后台更换域名,如下图在设置-常规中,把wordpress地址和站点地址更换为新域名,保存。

未分类

或者登录到phpmyadmin数据库管理页面,找到wp_options表; 第二步:将表中的siteurl和 home 字段的值修改为当前的新域名,如下图修改siteurl值的修改和home值。

未分类

以上方法二选一即可,个人感觉修改数据库的方法最好,操作最简便。

2、点击SQL,将下面命令输入进去:

UPDATE wp_posts SET post_content = replace( post_content, ‘http://www.old.com’, ‘http://www.new.com’ ) ;
UPDATE wp_posts SET guid = replace( guid, ‘http://www.old.com’, ‘http://www.new.com’ ) ;
www.old.com代表老域名,www.new.com代表新域名,用自己的域名替换一下。

然后点击 执行,如果没有出现错误,那么就会将文章和评论里的所有地址进行了更换。

未分类

3、网站根目录下 robots.txt里面,一般会有sitemap的命令,把老域名换成新域名,否则会导致百度站长工具里面的抓取诊断错误。

4、如果你使用了百度站长工具,还需要以下操作。老域名不要删除,在网站管理里面添加新域名(需要验证通过),然后找到“网站改版”这个栏目,添加改版规则,旧域名www.old.com,新域名www.new.com,这样百度权重转移会快些。还有网页抓取-robots里面要更新一下。还有站长工具-链接提交里面的主动提交-sitemap,新域名http://www.new.com/sitemap_baidu.xml输入进去,点击提交。

5、用网站统计代码的还需要更换新代码。网站统计添加新域名,把统计代码放到网站后台,在wp后台-外观-主题设置-流量统计代码,保存。

使用wordpress插件Autoptimize合并压缩CSS和JS文件提高访问速度

网站中加载了过多的js、css文件势必会导致WordPress访问速度变慢,服务器在海外的这一点尤为明显;

为了让WordPress打开的速度变快一点,如果你的网站加载了不少js、css文件可以考虑将其压缩合并一下减少加载次数降低文件体积可以有效降低加载压力从而有效增快打开的速度;

Autoptimize这是国外比较有名的WordPress优化插件

  • 利用它能够轻易傻瓜化将网站css/js文件压缩合并并且生成缓存,这对提高WordPress访问速度是大大有利的;

  • 好多复杂的主题模板,动不动就是加载了一大堆js文件,但又不想丢掉一些主题特效的用这个插件来优化自己的个人博客再为合适不过;

Autoptimize特点

  • 合并js/css
  • 压缩缓存html
  • 添加Expires Headers【网页缓存】

Autoptimize设置说明

未分类

  • HTML:优化HTML代码:果断勾选,自动压缩HTML文件

  • Keep HTML comment?:是否保留HTML注释,根据需要选择,部分功能需要保留,例如Google Adsen

未分类

  • JavaScript:优化JavaScript代码:果断勾选

  • Force JavaScript in?:把JavaScript强制放在头部。一般来说,我们都提倡把JavaScript放在页面的底部,以此来加速网站。

  • 但对于部分基于jQurey的WordPress主题来说,则会出现错位等的情况,一般不勾选。

  • 只在中寻找脚本?:与Force JavaScript in选项配合使用,针对基于jQurey的
    WordPress主题,以此来控制基于jQurey的WordPress主题缓存文件的过大的问题。

  • Exclude scripts from Autoptimize:排除名单,即不同时压缩的JavaScript文件。一般情况下保持默认即可。

  • 添加异常处理环绕(try-catch wrapping)?:若压缩JavaScript代码的过程中,出现网站部分功能出错的问题,勾选此项能解决大部分问题。

  • 优化CSS代码:同上,勾选 Generate data: URIs for images?:把CSS中包含的小图片(背景之类的)直接合并入CSS文件,而不是作为一个单独的图片。

  • 勾选 Inline and Defer CSS?:合并和延迟CSS。此选项的意思是在网页刚开始加载的时候,只加载必要的CSS文件,其它部分延迟加载。

  • 部分访问量大的WordPress站点,可勾选此项,减缓服务器压力,加快速度。

  • Inlining all CSS:合并所有CSS,此项可以提高访问量小的WordPress站点的加载速度,反之,访问量大的话,则会减慢速度,加大服务器负载!小站点勾选此项。

  • Exclude CSS from Autoptimize:排除的CSS文件。

wordpress全站开启HTTPS协议的方法教程

自从百度站长平台发布的《百度开放收录https站点公告》中表示对相同权值的站点,会优先对待采用https协议的页面后,https瞬间火爆起来,各大小网站纷纷启用https协议。但是很多wordpress用户给服务器安装配置SSL证书开启https协议后发现,网站内容不能正常访问显示了,之所以会这样是因为还没有对wordpress进行对应的修改,下面博客吧分享两种修改方法让wordpress网站全面支持https协议。

方法一

利用wordpress提供的api,通过修改主题让wordpress支持https。

优点:不涉及数据库,操作简单,不再使用https时只需要把代码删除即可,不会伤及网站。缺点:换主题的时候要重新修改。

代码一:HTTPS绝对链接替换(推荐)

在当前使用主题的functions.php文件中添加以下代码:

add_filter('get_header', 'fanly_ssl');
function fanly_ssl(){
    if( is_ssl() ){
        function fanly_ssl_main ($content){
            $siteurl = get_option('siteurl');
            $upload_dir = wp_upload_dir();
            $content = str_replace( 'http:'.strstr($siteurl, '//'), 'https:'.strstr($siteurl, '//'), $content);
            $content = str_replace( 'http:'.strstr($upload_dir['baseurl'], '//'), 'https:'.strstr($upload_dir['baseurl'], '//'), $content);
            return $content;
        }
        ob_start("fanly_ssl_main");
    }
}

代码二:HTTPS相对链接替换

使用相对链接,HTTP和HTTPS双协议共存。

在当前使用主题的functions.php文件中添加以下代码:

add_filter('get_header', 'fanly_ssl');
function fanly_ssl(){
    if( is_ssl() ){
        function fanly_ssl_main ($content){
            $siteurl = get_option('siteurl');
            $upload_dir = wp_upload_dir();
            $content = str_replace( 'http:'.strstr($siteurl, '//'), strstr($siteurl, '//'), $content);
            $content = str_replace( 'http:'.strstr($upload_dir['baseurl'], '//'), strstr($upload_dir['baseurl'], '//'), $content);
            return $content;
        }
        ob_start("fanly_ssl_main");
    }
}

以上代码来自:https://zhangzifan.com/wordpress-ssl-link.html

方法二

修改修改库,把原来的http替换为https。

优点:一劳永逸,绝对https。缺点:需要操作数据库,需要动手能力和理解能力,不再使用https时还要修改数据库。

操作步骤:

1、登陆网站后台,在设置——常规里修改“WordPress地址(URL)”和“站点地址(URL)”为https协议的地址,如下图:

未分类

2、登陆网站数据库的phpmyadmin管理页面,在SQL中执行下面的查询语句:

UPDATE wp_posts SET post_content = REPLACE(post_content, 'http://www.boke8.net','https://www.boke8.net');

作用是把文章内容中原来的附件URL改为https协议的URL,如果不修改的话,附件如图片就不能显示。

如果评论或者文章自定义字段中也使用过网站的地址,那么还要执行以下语句:

UPDATE wp_comments SET comment_content = REPLACE(comment_content, 'http://www.boke8.net','https://www.boke8.net');
UPDATE wp_comments SET comment_author_url = REPLACE(comment_author_url, 'http://www.boke8.net','https://www.boke8.net');
UPDATE wp_postmeta SET meta_value = REPLACE(meta_value, 'http://www.boke8.net','https://www.boke8.net');
UPDATE wp_termmeta SET meta_value = REPLACE(meta_value, 'http://www.boke8.net','https://www.boke8.net');

提醒:把代码中博客吧的域名改为自己网站的域名再执行,此外操作前一定要对数据库进行备份

3、进入后台——设置——多媒体中,把文件上传里的“文件的完整URL地址”修改为https协议后的地址,如果原来没有设置完整URL地址,就忽略这一步:

未分类

附:

百度开放收录https站点公告地址:

http://zhanzhang.baidu.com/wiki/392

wordpress重定向循环的几种解决方法

最近我的wordpress博客总会出现wordpress重定向循环问题,经常导致google浏览器打不开,最近firefox也出现重定向循环这东西了,立马意识到问题的严重性,更严重的就是修改分页规则没用了,也导致cos-html-cache无法缓存。

页面重定向循环出现的提示是:

此页面重定向不正确
Firefox 检测到该服务器正在将此地址的请求循环重定向。
此问题可能是因为禁用或拒绝 Cookie 导致。

  • 我想到了一个问题。打开Wordpress博客时,程序会检测wp-config.php文件是否存在。如果存在将尝试根据配置文件调用数据库,显示网站——排除其他因素,这是网站能正常打开;如果没有,则跳转到安装提示页,安装完毕后,方可正常访问。

  • 我的擦想:问题极可能出现在这里,Wordpress是否会设置一个参数X,用于确定安装是否完毕。值为1表示已安装;值为0表示未安装或因其他原因需重新安装。默认X为0,成功安装后X变成1,同时把安装页设置跳转到首页。

  • 问题来了,如果0变1失败(比如说因为文件写入错误),访问时,X为0于是系统跳转到安装页提示用户安装,,但这时安装页是被设置跳转到首页的。于是你推给我我推给你。在这来回折腾中,Firefox不耐烦了,恼了,给用户循环重定向错误提示。

  • 很遗憾,这种办法我无法确定是否真实——通过对比安装成功的博客文件,我没能把猜想变为现实。附不得言从网上查到的资料:

WordPress3.1循环重定向错误解决办法

  • 修改wp-include下的/template-loader.php文件或canonical.php文件。修改起来并不复杂,缺点是内核文件改动,以后升级务必注意。官方没有给出解决办法,于是只好采用这个办法。

循环重定向解决方法一

  • 禁用上面代码,解决循环重定向错误

  • 禁用上面代码,解决循环重定向错误

  • 找到wp-include文件夹下的template-loader.php文件,使用/代码/注释掉第六行和第七行。

if( defined(‘WP_USE_THEMES’) && WP_USE_THEMES )

do_action(‘template_redirect’);

循环重定向解决方法二

  • 通过给do_redirect赋值解决wordpress循环重定向

  • 通过给do_redirect赋值解决wordpress循环重定向

  • 找到wp-include文件夹下的canonical.php文件,使用//注释掉第37行。另起一行加入下面代码。其实也就是把变量$do_redirect的值修改为false。

function redirect_canonical( $requested_url = null,$do_redirect = false ) {

循环重定向解决方法三

找到您的当前主题文件夹下的functions.php文件,在最后加上下面一行代码:

remove_filter(‘template_redirect’, ‘redirect_canonical’);

此方法推荐使用,不会因为wordpress升级而而重新修改

循环重定向解决方法四

插件办法,下载Permalink Fix & Disable Canonical Redirects Pack安装上就ok。

至此,问题全部解决。

配置WordPress使用LS-Cache缓存数据

未分类

前言

米饭之所以中意 OpenLiteSpeed 还是因为其 LS-CACHE 用于加速 WordPress 更方便也更稳定,缓存方案由 LiteSpeed 官方维护而不是第三方开发者。这里就介绍一下,WP 如何快速使用 LS Cache。

LS Cache 简单高效,据 LiteSpeedTech 公司宣称效果优于 Varnish,并且能够及时的兼容服务器软件上的最新技术。

安装

虚拟主机

如果虚拟主机厂商使用 LiteSpeed Server 作为服务器软件代替 Apache,那么很可能也会购买 LS Cache 扩展。一些大牌的如 HawkHost、A2Hosting 等,牌子越大越有可能。

服务器

服务器环境建议使用 ols1clk 来一键安装 OpenLiteSpeed 和 WordPress,默认就会开启 LS Cache 并下载 WP 插件。

设置

在插件中搜索 LiteSpeed Cache 并下载安装并启用。

然后额,对,什么都不用设置自动就安装好了也开启了缓存功能。如果有更加进一步的设置可以进入选项卡进行设置。值得一提的是,LS-Cache 是一个高效的 PageCache(页面缓存) 方案,如果网站本来有使用 W3tc、WP Super Cache 等缓存插件的可以停用或者关闭页面缓存的功能。其他的对象缓存、前端压缩等功能可以继续保留。

如果同意服务器下有多个网站需要使用 LS-Cache

需要在 wp-config.php 中加入:

define( "LSWCP_TAG_PREFIX", "该网站唯一的字符串比如说域名" ) ;

例如:

define( "LSWCP_TAG_PREFIX", "mf8biz" ) ;
define( "LSWCP_TAG_PREFIX", "mifar" ) ;

可以区分不用的网站,避免网站建缓存出现混乱。

效果

退出登陆状态,进入一篇文章先刷新一下以避免是第一次访问还没被缓存的尴尬,然后打开浏览器开发者工具,可以在 Header 中看到:

x-litespeed-cache:hit

如果出现 hit 了,那么也就是命中缓存了,说明该页面已经被缓存了。

未分类

WordPress解决百度分享不支持https的方法

最近越来越多的朋友用上了HTTPS,但是不知为何,百度分享迟迟没有支持HTTPS,导致使用了百度分享的网站被浏览器显示警告。

本文就为大家介绍下WordPress解决百度分享不支持HTTPS的方法,同时也介绍下等英博客出品的主题中,对与此事的处理方法。

一、开启HTTPS开关

一般在waitig出品的主题中,都有一个是否开启https的选项,如果你开启了https,则将这个选项打钩。

比如,在wait主题中,是在【高级设置】里:

未分类

二、下载开源代码

waitig 采用的解决方案是github上@hrwhisper提供的,地址是在:https://github.com/hrwhisper/baiduShare 。

在开启了主题配置中的HTTPS开关后,再下载其中的static文件夹,上传到网站根目录,网站即可正常支持HTTPS协议。

配置定时清理优化wordpress数据库

WordPress易操作、易扩展(插件机制),但不如意之处也有,所以我会趁闲暇之余进行优化,我戏称之“Wordpress归真计划”。自动运维系列其实没有太多可写,无非是自动更新升级、自动清理垃圾(文件+数据)、自动提交代码(版本管理)等几个方面。本次分享wp数据库自动清理优化——删除过期无效数据并优化数据表。该想法源于归真计划中的“Kill Plugins”【注1】,要告别的插件是WP Clean Up,先感谢插件作者@BoLiQuan。

  • 指导思想:将插件做的交给系统自动进行,解放人力。
  • 技术核心:SQL+LinuxCrontab

一、数据清理SQL语句

先说三处需要谨慎清理的:

1、草稿数据

发布体【注2】的草稿数据。注意如果你的习惯不是离线写文章,这一条语句请谨慎考虑使用。

$sql.=“DELETE FROM {$table_prefix}posts WHERE post_status = ‘draft’;”;

2、待审评论

这条语句处理的是待审评论数据,如果wordpress设置了评论审核,那么这一条也要谨慎使用,待审评论不一定是垃圾评论。

$sql.=“DELETE FROM {$table_prefix}comments WHERE comment_approved = ‘0’;”;

3、配置表配置项

options表存储着wp和站长的配置数据,请按照自己的情况书写清理语句,清理之前自己做好表备份,通常这种工作处理一次就够了,不必每次都执行。

比如下面的代码是适合我网站的:清除非当前模板主题的配置项;删除无用插件配置项,比如我已经不用了的LoginLockDown(详见:WordPress扫二维码登录后台功能实现案例—WpQrLogin)、BaiduSubmit(已重写自动推送,并融入主题)、WP Backup。

//query current theme name
$themes = $pdo->query(“select option_value from {$table_prefix}options where option_name=’current_theme’ “)->fetch();
//$theme_name = strtolower($themes[0]);
//clear other themes’ options
$sql.=“DELETE FROM {$table_prefix}options WHERE option_name like ‘%theme_mod_%’ AND option_name<>’theme_mod_{$theme_name}’;”;
//unused plugins option
$sql.=“DELETE FROM {$table_prefix}options WHERE option_name like ‘%loginlockdown%’ ;”;
$sql.=“DELETE FROM {$table_prefix}options WHERE option_name like ‘%baidusubmit%’ ;”;
$sql.=“DELETE FROM {$table_prefix}options WHERE option_name like ‘%backwpup%’; “;

—–分割线—–

4、发布体版本

有多少人写文章是多人协作的?你写文章的时候需要对比上一个版本查看自己做了哪些修改?如果都不是,可以使用下面的语句清理发布版本。

$sql.=“DELETE FROM {$table_prefix}posts WHERE post_type = ‘revision’;”;

5、自动草稿

不多解释,请按需使用。我个人习惯离线撰写文章,在线写的时候倾向于自己手动保存,而且我已经移除了wp自动草稿的功能,所以数据库中所有自动草稿数据都是我不需要的。

$sql.=“DELETE FROM {$table_prefix}posts WHERE post_status = ‘auto-draft’;”;

6、回收站

删除的发布体,以后不用自己手动去后台回收站清空了。

$sql.=“DELETE FROM {$table_prefix}comments WHERE comment_approved = ‘trash’;”;

7、无用的发布体元数据(附加数据)

postmeta表中因发布体删除而遗留下来的数据。比如文章的自定义字段,有些人在设计自定义字段面板的时候没有设计delete,就会产生这样的情况。

$sql.=“DELETE pm FROM {$table_prefix}postmeta pm LEFT JOIN {$table_prefix}posts wp ON wp.ID = pm.post_id WHERE wp.ID IS NULL;”;

8、垃圾评论

$sql.=“DELETE FROM {$table_prefix}comments WHERE comment_approved = ‘spam’;”;

9、无用的评论元数据(附加数据)

删除评论遗留的附加数据或者做过评论优化残留的数据况。大多数wp使用者会有Askimet的数据,这些数据记录有助于插件过滤垃圾评论,可去可留。

$sql.=“DELETE FROM {$table_prefix}commentmeta WHERE comment_id NOT IN (SELECT comment_id FROM {$table_prefix}comments);”;
$sql.=“DELETE FROM {$table_prefix}commentmeta WHERE meta_key IN (‘akismet_history’,’akismet_result’,’akismet_user_result’,’akismet_user’);”;

10、无效的关系数据

删除发布体或者分类(待确定)以后残留的数据。

$sql.=“DELETE FROM {$table_prefix}term_relationships WHERE object_id NOT IN (SELECT ID FROM {$table_prefix}posts);”;

11、无用的用户元数据(附加数据)

$sql.=“DELETE FROM {$table_prefix}usermeta WHERE user_id NOT IN (SELECT ID FROM {$table_prefix}users);”;

12、订阅消息

$sql.=“DELETE FROM {$table_prefix}options WHERE option_name LIKE ‘_site_transient_browser_%’ OR option_name LIKE ‘_site_transient_timeout_browser_%’ OR option_name LIKE ‘_transient_feed_%’ OR option_name LIKE ‘_transient_timeout_feed_%’;”;

二、数据表优化SQL

原插件中优化工作很简单,仅使用了OPTIMIZE,但对大多数人而言足够了。它对MyISAM/INNODB引擎的数据表还是很有用的,能够删除冗余数据(包括字段和索引),提高表的查询效率。

$result = $pdo->query(‘SHOW TABLE STATUS FROM `’.DB_NAME.’`’)->fetchAll();
foreach($result as $row){
    $sql.= “OPTIMIZE TABLE {$row[‘Name’]};”;
}

注意:所有语句最终会综合到一起依次执行,所以必须有分隔符,即:每一句SQL语句必须要用分号结尾。

三、自动化的实现

小节标题挺高大上,其实就是个定时计划任务+执行脚本。

1、执行脚本PHP

执行脚本的核心就是文章一二节提到的部分,我们再补充一下数据库操作,略做完善后命名(如gznotes.php);

将文件放到wordpress根目录,然后可以利用php命令直接执行,进行首测(注意:非HTTP访问),命令如下:

[/gznotes.com]# php /YourPath/gznotes.php

/**
* Copyright (c) DingLipeng
* Author       : DingLipeng(Daniel Ting)
* Author URI   : http://www.gznotes.com/
* Created Time : 2017-08-12 16:09
*/
//read db config from wp-config.php
$config_str = file_get_contents(dirname(__FILE__).DIRECTORY_SEPARATOR.’wp-config.php’);
preg_match_all(“!define(s*’DB_.*);|\$table_prefix.*;!”,$config_str,$res);
foreach ( $res[0] as $re ) {
    eval($re);
}
$pdo = null;
try{
    $pdo = new PDO(“mysql:host=”.DB_HOST.“;dbname=”.DB_NAME,DB_USER,DB_PASSWORD);
} catch (PDOException $exception){
    echo “Connect Failed:”.$exception->getMessage();
    exit();
}
$sql = “”;
//============start sql str=====
    //……
//============sql str end=====
$pdo->exec($sql);
//log completed or affected number of rows
exit(“Succn”);

2、定时计划任务Crontab

大多数人用Linux系统的服务器,所以一般都有crontab神器。如果没有请安装(我的是 CentOS 6.8):

[/gznotes.com]# yum –y install vixie-cron

安装完成,记得加入开机启动项

[/gznotes.com]# chkconfig –level 345 crond on

关于crontab使用,引用@蚂蚁快跑 【参考链接1】博文中的几张图片:

未分类

未分类

未分类

未分类

未分类

未分类

WordPress自动运维教程—如何自动清理优化数据库-crontab1

图:Linux Crontab定时计划任务讲解

老规矩,运维放到夜深人静,访客稀少的时候进行,频率方面不用太高,一个周一次就可以,任务形式可以有多种表现,比如可以在/etc/crontab直接书写:

#每周日的凌晨3点

0 3  *  * 0 root /usr/bin/php  /YourPath/gznotes.php >>/YourPath/clean.log

#每隔七天凌晨3点

0 3 */7 * * root /usr/bin/php  /YourPath/gznotes.php >>/YourPath/clean.log

也可以在/etc/cron.weekly中添加执行脚本clean.sh,并赋予执行权限chmod +x  /etc/cron.weekly/wp-cleaner.sh,文件命令如下:

#!/bin/sh

php /YourPath/gznotes.php>>/YourPath/clean.log

#把命令执行的结果追加输出到指定目录下的clean.log文件中

注意:写完后手动执行看下有没有错误,如果像上面命令那样指定了结果输出,那么打开clean.log文件查看执行的结果。

然后,启动crond,查看状态,查看当前用户所有任务列表:

[/gznotes.com]# service crond start

[/gznotes.com]# service crond status

[/gznotes.com]# crontab -l

CentOS 7.2安装LAMP(apache mariadb php)搭建WordPress

导语

WordPress是一个以PHP和MySQL为平台的自由开源的博客软件和内容管理系统。WordPress具有插件架构和模板系统。Alexa排行前100万的网站中有超过16.7%的网站使用WordPress。

一.LAMP环境搭建

LAMP即Linux+Apache+MySQL(MariaDB)+PHP,由于其开源免费,所以是目前非常受欢迎的一组网站解决方案,本文也将采用此方案。

1. Linux选择

笔者选用的是CentOS 7.2这个版本,CentOS实质为无支持版的RHEl,稳定性还是比较高的,当然也可以选择其它发行版,只是后续的操作略有不同,本文将只介绍在CentOS下的操作(系统的安装和本文关系不大,故不再赘述)。

2. 安装Apache

直接yum安装

# yum -y install httpd

安装完成后,启动服务

# systemctl start httpd.service

设置为开机启动

# systemctl enable httpd.service

之后可以在浏览器输入localhost进行测试,由于笔者没有安装GUI,只能在客户端浏览器进行测试,在这之前需要打开80和443端口

首先开启防火墙并设置为开机启动

# systemctl start firewalld.service
# systemctl enable firewalld.service

开启端口(80和443)

# firewall-cmd --permanent --zone=public --add-service=http
# firewall-cmd --permanent --zone=public --add-service=https

重启防火墙

# firewall-cmd --reload

查询已开启端口

# irewall-cmd --list-ports

未分类

客户端测试
未分类

3. 安装并配置数据库(Mariadb)

由于甲骨文公司收购了MySQL后,有将MySQL闭源的潜在风险,所以在CentOS 7中弃用了MySQL,改为支持Mariadb(MySQL的一个分支,与之完全兼容),所以本文也将使用该数据库。

同样还是利用yum命令进行安装,并且配置开机启动

# yum -y install mariadb-server mariadb
# systemctl start mariadb.service
# systemctl enable mariadb.service

配置root密码

# mysql_secure_installation

配置过程中会有几个选项,大家根据自己的需要进行配置就好了

未分类

使用root用户登录mysql

# mysql -u root -p

为WordPress创建数据库

# CREATE DATABASE wordpress;

查看创建结果

未分类

为该数据库创建用户

# CREATE USER username@localhost IDENTIFIED BY 'password';

说明:username – 你将创建的用户名, host – 指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost, 如果想让该用户可以从任意远程主机登陆,可以使用通配符%. password – 该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器.

更改用户权限,保存并退出

# GRANT ALL PRIVILEGES ON wordpress.* TO wordpressuser@localhost;
# FLUSH PRIVILEGES;
# exit

重启服务

# systemctl restart mariadb.service

4. 安装PHP及相关组件

首先安装PHP

# yum -y install php

安装相关组件

# yum -y install php-mysql php-gd php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-snmp php-soap curl curl-devel

安装完成之后我们可以新建一个php页面进行测试

# vim /var/www/html/info.php

编辑为以下内容

未分类

重启httpd服务

# systemctl restart httpd.service

打开网址 http://x.x.x.x/info.php 进行查看(x.x.x.x为vps的ip地址)

未分类
php测试页

二. WordPress安装与配置

安装wget(下载) unzip(解压) net-tools(网络管理)

# yum -y install wget unzip net-tools

下载WordPress

# wget http://wordpress.org/latest.zip

未分类

解压文件,并将其复制到/var/www/html/目录下

# unzip -q latest.zip
# cp -rf wordpress/* /var/www/html/

未分类

编辑配置文件

# cd /var/www/html
# cp wp-config-sample.php wp-config.php
# vim wp-config.php

将其修改为以下格式(其中wordpress为数据库名称,wordpressuser为数据库用户名,10293847为数据库密码)

未分类

保存后退出,重启相关服务

# systemctl restart httpd.service
# systemctl restart mariadb.service

三. WordPress的个人设置

完成以上配置之后,便可以输入http://yourserverip/来访问你的博客了。

  • 选择语言

未分类

  • 填写个人信息

未分类

  • 安装完成

未分类

  • 登录到仪表盘

未分类

至此WordPress已经搭建完成,之后可根据自己的需要进行其它配置。