VPS叕搬家了!
这次由于好友D大把blog恢复了,想托管到大D这边的VPS上,那么也就有了理由升级一下VPS,拓展一下VPS的计算资源。
最后决择了一圈,还是选择待在HK机器上了。
这次搬家又遇到一些好玩的事情,记录下来。
诡异的Memcached
为了节约时间,大D依然采用LNMP一键包作为VPS的环境搭建方式。LNMP一键包升级到1.4之后还是很好用。
但是有点蛋疼的是,使用一键包安装Memcached之后,一开始是500错误,关掉WP内的Memcached插件就好了。
所以还是把问题锁定在了Memcached上。
重新安装了Memcached之后,虽然不500错误了,但是没有生效。那么就检查一下Memcached的生效情况。
最简单的检测方式就是使用telnet。
首先看一下有没有安装telnet包。
1 |
rpm -qa |grep telnet |
如果安装了会返回相关的包及版本,如果没有安装的话,那么就安装一下。
1 2 3 |
yum install xinetd yum install telnet yum install telnet-server |
这里提供的是CentOS,也就是RedHat系的安装方法,使用Debain/Ubuntu Server的同学请自行搜索安装方式。
最后连接一下。
1 2 |
telnet 127.0.0.1 11211 |
如果连接成功的话,则返回如下信息:
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
然后再输入:
1 |
stats |
正常的话会返回Memcached的缓存情况(这里只列出一部分):
1 2 3 4 5 6 7 8 9 10 |
STAT pid 1646 STAT uptime 94616 STAT time 1510898358 STAT version 1.4.36 STAT libevent 1.4.13-stable STAT pointer_size 64 STAT rusage_user 15.695613 STAT rusage_system 49.377493 STAT curr_connections 18 STAT total_connections 252 |
然而大D是telnet不通的,依稀记得安装时的输出信息当中看到LNMP的脚本有操作过Iptables,那么赶紧上去看一下。
1 |
vim /etc/sysconfig/iptables |
明晃晃的一堆DROP。。。
1 2 3 4 |
-A INPUT -p tcp -m tcp --dport 11211 -j DROP -A INPUT -p udp -m udp --dport 11211 -j DROP -A INPUT -p tcp -m tcp --dport 11211 -j DROP -A INPUT -p udp -m udp --dport 11211 -j DROP |
不放行127.0.0.x就是wp没生效,也连接不上的原因,那么调整一下规则,放行一下,添加在这四行Drop的上面,只放行自己人。
1 2 |
-A INPUT -s 127.0.0.1/32 -p udp -m udp --dport 11211 -j ACCEPT -A INPUT -s 127.0.0.1/32 -p tcp -m tcp --dport 11211 -j ACCEPT |
VPS本地可以连接就可以了。
多个Wordpress使用Memcached
一番Google,很多都是给出了直接添加 define('WP_CACHE_KEY_SALT', 'xxxx');
的办法,然而这个办法在大D这里仍然会冲突。
思考了一下,大D认为,应该是因为数据库表名都一样,所以会出现冲突的问题。尤其是一些关乎Wordpress自身设置和插件设置的。
既然如此,把表前缀改了不就好了。
1.修改表前缀
修改表前缀的话,一个个改起来也很麻烦,直接抄下面的SQL语句也稍显麻烦,最方便的办法就是用phpmyadmin提供的修改表前缀功能了。(具体那个版本开始有这个功能的不清楚。现在大D用的已经是最新版了。)
1 2 3 4 5 6 7 8 9 10 11 |
RENAME table `wp_commentmeta` TO `wpxxx_commentmeta`; RENAME table `wp_comments` TO `wpxxx_comments`; RENAME table `wp_links` TO `wpxxx_links`; RENAME table `wp_options` TO `wpxxx_options`; RENAME table `wp_postmeta` TO `wpxxx_postmeta`; RENAME table `wp_posts` TO `wpxxx_posts`; RENAME table `wp_terms` TO `wpxxx_terms`; RENAME table `wp_term_relationships` TO `wpxxx_term_relationships`; RENAME table `wp_term_taxonomy` TO `wpxxx_term_taxonomy`; RENAME table `wp_usermeta` TO `wpxxx_usermeta`; RENAME table `wp_users` TO `wpxxx_users`; |
2.修改WP设置表和用户元数据表
修改完毕表前缀之后,要将Options
表和UserMeta
表内的数据也对应修改。
1 2 |
SELECT REPLACE(option_name, 'wp_', 'wpxxx_') FROM wpxxx_options; SELECT REPLACE(meta_key, 'wp_', 'wpxxx_') FROM wpxxx_usermeta; |
3.修改wp-config.php
最后就来修改wp的配置文件,将配置文件内的:
$table_prefix = 'wp_';
修改为
$table_prefix = 'wpxxx_';
这样一来修改表前缀所需要做的操作就结束了,然而大D又遇到了新问题,修改完表前缀的wp,登陆之后提示没有权限访问后台。
其实这个问题还是上面第2步产生的一些错误,重新修改一下数据库:
1 2 |
UPDATE wpxxx_options SET option_name = REPLACE(option_name,'wp_','wpxxx_'); UPDATE wpxxx_usermeta SET meta_key = REPLACE(meta_key,'wp_','wpxxx_'); |
这样就可以正常开启Memcached且不冲突了。
P.S 在这一节当中 wpxxx为新表头,可以自行确定。
神奇的插件
这个神奇的插件叫audio-player。
大D这边帮刀老师开启了全站https,开启的过程中遇到了一点小问题,这边记录在案一下。
Nginx这些都设置好之后,先把数据库内的http连接都修改成了https的,如下:
1 2 3 4 |
UPDATE wp_options SET option_value = replace(option_value, 'https://www.xxx.com','https://www.xxx.com') ; UPDATE wp_posts SET post_content = replace(post_content, 'https://www.xxx.com','https://www.xxx.com') ; UPDATE wp_comments SET comment_content = replace(comment_content, 'https://www.xxx.com', 'https://www.xxx.com') ; UPDATE wp_comments SET comment_author_url = replace(comment_author_url, 'https://www.xxx.com', 'https://www.xxx.com') ; |
修改完成之后,在Nginx的conf里开启443,LNMP一键包的管理器提供了增加ssl的功能,很方便。大家直接用就可以了。
最后在80端口上加一个跳转。
1 |
return 301 https://www.xxx.com$request_uri; |
本以为这就OK了,结果没想到,开发者工具控制台又泼了盆儿凉水。
注意看,居然成了httpss,后台和数据库里都找了一下,没有这个httpss,只好到插件的源码当中去找答案了。
果然是插件自身支持检测https,然后再重写URL的时候坑掉了。
找到插件目录下的:audio-player.php
文件,打开找到大概128行左右。
将:
1 2 3 4 |
if ($_SERVER["HTTPS"] == "on" || $_SERVER["SERVER_PORT_SECURE"] == "1") { $this->pluginURL = str_replace("http", "https", $this->pluginURL); } |
修改为:
1 2 3 |
if ($_SERVER["HTTPS"] == "on" || $_SERVER["SERVER_PORT_SECURE"] == "1") { $this->pluginURL = str_replace("http", "http", $this->pluginURL); } |
这样就解决了前台加载成httpss的问题了,顺利实现小绿锁!
结语
D大的Blog恢复了,还是很开心的事情哈哈哈。
已有 15 条评论
发表评论
电子邮件地址不会被公开。 必填项已标注。
谢谢大D的帮忙。你最好了
D大客气啦~
D大的博客恢复后啥时候更新?现在还是2013年的
更新了
好久不见,我一会过来。
Pingback: 生活小记——未定标题(138) – 刀之魂
你这错别字,有点多。。
我还是喜欢自己编译。
哈哈哈,改改改。用一键包方便嘛。
改好了改好了~~
个人现在其实更喜欢直接从源里面装 LNMP,主要是升级方便。
我自己的VPS上站多,如果只架我自己的blog,就随便了。
万能的大D
前来催更催更……
更了更了,哈哈哈
谢谢大D帮我回复博客!最近搞项目好多运维的工作要操心,还好当年和大D一起搞了VPS要不然真搞不定
来群里说呀~人多力量大~