树洞来到日本啦

历时几天,搬家完成。服务器以及数据库全部换到了东京的服务器上。记录一下搬家快结束时候遇到的坑。

搬家途中就不说了,都是泪。到了最后一步,网页数据已经转移了过来,数据库也在东京克隆可一模一样的,并且wordpress配置文件的数据库地址已经换了过来。其中我的事情比其他人麻烦的一步是我之前服务器启用了SSL,也就是网址是https://shuspieler.com,现在新的服务器为了降低性能消耗,打算后端不启用加密,前端通过CDN实现SSL小绿锁。所以需要把数据库中一些链接换过来。我不会SQL语法,从网上看例程还是挺简单的,结合phpmyadmin执行下边的语句:

UPDATE wp_options SET option_value = REPLACE(option_value,'旧地址','新地址');
UPDATE wp_posts SET post_content = replace(post_content,'旧地址','新地址');
UPDATE wp_posts SET post_excerpt= replace(post_excerpt,'旧地址','新地址');
UPDATE wp_posts SET guid= replace(guid, '旧地址','新地址');

其中wp_post 是表单名,REPLACE中第一项是表单中某一项的名字,我不知道那个专业名词叫啥。这四个地儿涵盖了绝大部分需要该链接的地儿,反正结合phpmyadmin看有没有落下其他的,尤其第三方插件保存的数据中。

接下来是最坑的,弄了好久,感觉十点半可以收工了,刷了一下首页成功,然后打开后台管理页面成功,可是所有的文章页面都是404 Not Found。夜已深,我对于这个现象没有任何头绪。。。

而且在wordpress设置中将自定义固定连接还原成默认的形式,类似于这样http://blog.shuspieler.com/?p=123就显示正确,而这类的网址简直反人类,我之前自定义成为http://blog.shuspieler.com/%post_id%/形式,类似于这篇最后就会张这样:http://blog.shuspieler.com/742/

搬家后,除了首页可以正确显示,其他页面都是Not found。换成默认链接就可以显示,不能有任何自定义的固定链接形式。所以怀疑是rewrite-mod出问题了。之前一步一步搭建过一遍,还是有作用的。虽然我记得之前那个模块不运行的话wordpress会提示,而这次并没显示。我还是查了查我的服务器。果然默认关闭。

ubuntu的apache2中rewrite-mod开启方式是这样的:

sudo a2enmod rewrite

然后修改apache2的配置文件:

sudo vim /etc/apache2/apache2.conf

将其中/var/www/下的AllowOverride 从None改成All。注意这个文件中有好几处AllowOverride,这个地方的最关键。

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>

然后重启apache2:

sudo service apache2 restart

问题解决,搬家到深夜,终于可以去睡觉啦。

Leave a Comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.