分类目录归档:技术文章

WordPress安装主题、插件、更新时需要FTP的解决办法

我的wordpress是在vps主机里搭建的,所以权限应该很高,可是每次安装插件和主题,甚至删除插件的时候都会让我填ftp信息,然而我根本没开通ftp。

问题的根源在于wordpress目录没有www权限,加上去即可完美解决。ssh里执行如下命令:

chown -R www:www /yourwordpressdir

/yourwordpressdir 是你的wordpress目录的绝对路径。

另外,如果有错误提示:
”chown: changing ownership of ‘/yourwordpressdir/.user.ini’: Operation not permitted“

说明你的wordpress根目录下的.user.ini文件有权限限制,只需用
chattr -i /yourwordpressdir/.user.ini

解锁权限,然后重新执行上述的chown命令即可。

无人值守自动备份网站的方法

两天前,我博客所在服务器的硬盘故障了,导致数据全部丢失。也怪我吊儿郎当,平时没有定期备份数据。不过,这年头有时间写独立博客就已经很不容易了,定期备份数据什么的就更难了。对于没有技术力的我来说,备份确实是一件难事,呲牙。

好在我可以通过谷歌快照找回大部分的文章,已经恢复得差不多了。那些不重要的文章,就不要了,就当做了一次内容整理吧。接下来,数据备份对我来说十分重要,而且我已经做好了,于是现在我要把我的方案分享出来,让更多小白受益。

由于我的博客是在vps主机上建立的,所以自由度很高。而且我还有另一台vps,用于存放备份数据。

我的方法很简单,通过CentOS系统自带的Crontab功能,每日定时执行备份命令,完全的无人值守:
1. 通过mysqldump命令导出数据库文件到网站目录
2. 通过rsync远程同步功能实现网站目录的异地备份


具体实现步骤:

首先,点击上面的两个链接,把自己网站的 导出数据库文件和远程同步 的命令准备好。

其次,把准备好的命令加入Crontab文件。举个例子,本博客的备份命令如下:

每天下午13:40导出数据库文件到网站根目录,vps里执行:
echo "40 13 * * * root mysqldump -u johntito -pjohntitor123456 johntitordb > /home/wwwroot/www.johntitorblog.com/johntitordb-bak.sql" >> /etc/crontab

每天下午13:50同步网站目录到远程服务器,vps执行:
echo "50 13 * * * root sshpass -p zhangrui123456 rsync -avzPu /home/wwwroot/www.johntitorblog.com 198.42.48.69:/root/johntitorblog-bak/ > /root/Log-johntitorblog-bak.log 2>&1" >> /etc/crontab

service crond restart
(centos7开始用systemctl restart crond)

简单说明下,通过echo,把命令写入/etc/crontab文件,再restart crontab使其生效。第二段的Log-johntitorblog-bak.log是个log文件,方便我查看备份的时间和状态。
即便是设置成每日定时备份,也不费流量,因为用的是增量备份(只传输新增的或更新的文件)。

301跳转到https域名的方法(Apache和Kangle适用)

2017年是https流行的年份,大大小小的网站纷纷上了ssl,进而产生了新的问题:域名跳转怎么做?

域名跳转常见有301和302两种方式,通过http://tool.chinaz.com/pagestatus/ 可以查询具体状态码,301是公认最好的跳转方式

我以Apache(kangle也兼容)web服务器为例,展示下本博客(wordpress程序)的.htaccess文件代码:

RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.johntitorblog.com/$1 [R=301,L]

而下面的代码应该是比较通用的,适合非wordpress程序:

RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.xxx.com/$1 [L,R=301]
RewriteCond %{HTTP_HOST} ^xxx.com [NC]
RewriteRule ^(.*)$ https://www.xxx.com/$1 [L,R=301]

该代码设置后所有的域名都会跳转到https带www的域名下,状态码是301,全站链接都会跳,是完美的。

PHP层面实现全站301

管他win还是lin,只要是php就通吃,全站301跳转!

网站根目录放301.inc.php,内容如下:

 <?php
 $the_host = $_SERVER['HTTP_HOST'];//取得当前域名
 $the_url = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : ";//判断地址后面部分
 $the_url = strtolower($the_url);//将英文字母转成小写
 if($the_url=="/index.php")//判断是不是首页
 {
 $the_url="";//如果是首页,赋值为空
 }
 if($the_host !== 'www.201410.com')//如果域名不是带www的网址那么进行下面的301跳转
 {
 header('HTTP/1.1 301 Moved Permanently');//发出301头部
 header('Location:http://www.201410.com'.$the_url);//跳转到带www的网址
 }
 ?> 

在网站全局配置文件的头部,输入一下代码:

include("301.inc.php");

保存覆盖,完工。

一个插件解决WordPress 自动保存草稿失败等问题

本条目发布于2018年1月16日。

为了安全性,博客每次都会被升级到最新版。结果最近我发现写文章的时候,百分之百会出现卡在“正在自动保存草稿”这个问题上,可是一定不会保存成功,以致于“发布”按钮都是灰色的,写完的文章完全发不出去,我只能干瞪眼儿。。。

还有一个问题,在后台里面直接回复留言,必定会失败,也不知道中了什么邪。

百度了好久都找不到解决方法。

后来找到了一个Wordpress数据库优化插件——wp-optimize,我就给数据库优化了一下,删除了所有乱七八糟没用的数据,至此,小博客所有功能都恢复正常!

华硕RT-AC66U_B1 固件降级+刷梅林固件的方法

目前新买的ac66u_b1 如果是官方最新固件的话,无法直接刷第三方固件。

降级可以解决问题。即,我们只需要上传一个低版本的官方固件,即可解除限制。

步骤1:
把低版本固件(版本号:3.0.0.4.384_20308)下载到电脑桌面,百度网盘地址https://pan.baidu.com/s/1fXVr3cm7fheQd15sQtc19Q  提取码:juzc

步骤2:
登录66u_b1路由器后台——系统管理——固件升级 页面,手动上传刚才下载的低版本固件。刷固件过程需要数分钟,稍安勿躁。

成功降级之后,再去看这篇教程即可刷成梅林固件,祝顺利!

梅林固件双清

很多时候,由于固件没刷好,或者固件有问题,需要我们把路由器双清一下便于解决问题。那么,先恢复出厂设置,然后再格式化jffs分区,这两个步骤我们称之为“双清”。

步骤1:路由器后台——系统管理——恢复/导出/上传设置,点击原厂默认值右边的【恢复】按钮,进行初始化设置。此过程或抹掉路由器的设置信息。

步骤2:路由器后台——系统管理——系统设置,Format JFFS paritition at next boot 和 Enable JFFS custom scripts and configs 选项,都选择”是“,然后点页面最下面的“应用本页面设置”,重启路由器即可。