久违的绿色

这两天更换了服务器,目前博客已经全部迁移成功!

 

以前的配置:

Apache/2.4.17 (Win32) + OpenSSL/1.0.2d + PHP/5.6.21

现在的配置:

Nginx/1.10.0 (Ubuntu) + OpenSSL/1.0.2g + PHP/7.0.8

 

为什么原来打算用Windows做服务器呢?

因为曾经尝试过一些Linux系统,但是不知道是自己配置出了什么问题,运行在上面的服务总是奔溃,然后就只能重启Apache,一直都是这样,所以我就只能暂时放弃了,另外Windows还有一个好处,我可以很方便的备份或者更新代码,所谓的备份就是压缩一下,然后留着……(不会告诉你使用Windows的一个目的是用来刷慕课)😃

那为什么又打算换Linux系统呢?

只有1G的内存装了Windows Server 2012之后运行起来还会剩余多少内存空间呢?好少呀!并且有时候操作好卡。

 

好了,说一下迁移的过程吧!

因为原来站点安装目录并不是虚拟服务器的目录,所以第一步打算做的就是更改虚拟服务器目录,不过修改这个便意味着原来博客里面的静态内容的url全部变化,虽然一些配置信息是可以自动更新的,但是文章内容是存储在数据库中的,需要修改的便是文章中所有图片的链接。

原安装目录:/htdocs/queue/*
虚拟服务器根目录:/htdocs/*

 

WordPress本身并没有提供在更改站点目录的时候替换数据库中的所有链接,所以这一步便只能手动替换啦!

 

幸好万能的mysql提供了replace,否则更改虚拟服务器目录的代价好大的。😣

UPDATE wp_posts SET post_content = replace(post_content,'原地址','现地址');

当然,评论中的表情链接也是这么替换的咯!

 

因为博客有开启SSL,以前为了解决多说表情不支持SSL的问题用到了反向代理,然后昨天突然发现多说的表情与头像都可以通过HTTPS访问了,o(≧v≦)o~~好棒!😊

 

于是果断撤掉反向代理,表情加载速度果然提高了不少,修改完数据库,修改完代码中所有相关的绝对路径,一切测试正常~


接下来便是新服务器中的配置了(这个服务器不算新的啦,因为千千一直都同时拥有这两个😝)

 

当时为选择Apache或Nginx纠结了好久,根据网上说到的,Apache处理动态请求强,但对高强度的静态请求容易阻塞而Nginx抗并发能力强,可以很好的处理静态请求,可是我的所有静态文件都在了镜像存储中怎么办😫,但还是阻挡不住我想用Nginx的心,因为简洁、轻便

 

对于PHP的版本呢,想尝试一下新的版本(7.0),毕竟WordPress已经支持这个版本了。

当然mysql还是要安装的。

wget http://***/queue.zip
wget http://***/queue.sql

 

获取到原来所备份的文件,然后解压,一切正常(如果压缩包中含有中文文件请加参数 -O CP936

unzip queue.zip

 

导入数据库,一切正常

source queue.sql

 

访问首页,正常

点击任意链接,404(因为Nginx中没有Apache的rewrite功能,所以只能手动添加规则咯),具体如下:

location / {
        index index.html index.php;
        if (-f $request_filename/index.html){
            rewrite (.*) $1/index.html break;
        }
        if (-f $request_filename/index.php){
            rewrite (.*) $1/index.php;
        }
        if (!-f $request_filename){
            rewrite (.*) /index.php;
        }
}

 

搞定了Nginx的伪.htaccess(Apache)部分,进入后台,除了左边的菜单栏以外什么也没有😖,发生了什么...

点击菜单是有效的,但是右边内容会一闪而过,隐隐约约看见了WP-Super-Cache的错误信息,于是百度……

 

因为插件的配置路径有问题,C:\**Linux中怎么会有呢!😃

 

改完之后终于可以正常访问后台了,但是发现主题,插件等上传部分都只能通过ftp的方式,一定是目录权限的问题。

sudo chmod -R 755 [需要修改的文件夹名称]

 

另外还需要往wp-config.php中添加

/*
 * 禁止出现ftp上传
 * by Qianqian 2016.12.17
 */
define('FS_METHOD', 'direct');

 

成功解决~

 

对于WP Super Cache这个插件,如果想要在Nginx下使用mod_rewrite缓存模式,还需要在配置文件中加入这些(替换掉location /{...}即可)

# WP Super Cache rules.
# Designed to be included from a 'wordpress-ms-...' configuration file.

set $cache_uri $request_uri;

# POST requests and urls with a query string should always go to PHP
if ($request_method = POST) {
    set $cache_uri 'null cache';
}

if ($query_string != "") {
    set $cache_uri 'null cache';
}   

# Don't cache uris containing the following segments
if ($request_uri ~* "(/wp-admin/|/xmlrpc.php|/wp-(app|cron|login|register|mail).php|wp-.*.php|/feed/|index.php|wp-comments-popup.php|wp-links-opml.php|wp-locations.php|sitemap(_index)?.xml|[a-z0-9_-]+-sitemap([0-9]+)?.xml)") {
    set $cache_uri 'null cache';
}   

# Don't use the cache for logged in users or recent commenters
if ($http_cookie ~* "comment_author|wordpress_[a-f0-9]+|wp-postpass|wordpress_logged_in") {
    set $cache_uri 'null cache';
}

# START MOBILE
# Mobile browsers section to server them non-cached version. COMMENTED by default as most modern wordpress themes including twenty-eleven are responsive. Uncomment config lines in this section if you want to use a plugin like WP-Touch
# if ($http_x_wap_profile) {
#   set $cache_uri 'null cache';
#}

#if ($http_profile) {
#   set $cache_uri 'null cache';
#}

#if ($http_user_agent ~* (2.0\ MMP|240x320|400X240|AvantGo|BlackBerry|Blazer|Cellphone|Danger|DoCoMo|Elaine/3.0|EudoraWeb|Googlebot-Mobile|hiptop|IEMobile|KYOCERA/WX310K|LG/U990|MIDP-2.|MMEF20|MOT-V|NetFront|Newt|Nintendo\ Wii|Nitro|Nokia|Opera\ Mini|Palm|PlayStation\ Portable|portalmmm|Proxinet|ProxiNet|SHARP-TQ-GX10|SHG-i900|Small|SonyEricsson|Symbian\ OS|SymbianOS|TS21i-10|UP.Browser|UP.Link|webOS|Windows\ CE|WinWAP|YahooSeeker/M1A1-R2D2|iPhone|iPod|Android|BlackBerry9530|LG-TU915\ Obigo|LGE\ VX|webOS|Nokia5800)) {
#   set $cache_uri 'null cache';
#}

#if ($http_user_agent ~* (w3c\ |w3c-|acs-|alav|alca|amoi|audi|avan|benq|bird|blac|blaz|brew|cell|cldc|cmd-|dang|doco|eric|hipt|htc_|inno|ipaq|ipod|jigs|kddi|keji|leno|lg-c|lg-d|lg-g|lge-|lg/u|maui|maxo|midp|mits|mmef|mobi|mot-|moto|mwbp|nec-|newt|noki|palm|pana|pant|phil|play|port|prox|qwap|sage|sams|sany|sch-|sec-|send|seri|sgh-|shar|sie-|siem|smal|smar|sony|sph-|symb|t-mo|teli|tim-|tosh|tsm-|upg1|upsi|vk-v|voda|wap-|wapa|wapi|wapp|wapr|webc|winw|winw|xda\ |xda-)) {
#   set $cache_uri 'null cache';
#}
#END MOBILE

# Use cached or actual file if they exists, otherwise pass request to WordPress

location / {
    try_files /wp-content/cache/supercache/$http_host/$cache_uri/index.html $uri $uri/ /index.php?$args ;
}

 

静态缓存插件也就这样配置好咯!

 

以前用的Verycloud CDN加速,缓存所有的静态内容,但是站点常常出现无法连接的情况,刷新过好多次,都没有用😭。

很想很想很想换掉它,但是支持SSL的CDN很难找哎,咦,腾讯好像也支持SSL了……

 

CNAME到第三方的站点中,因为每一次的动态请求都会多花费一点时间,然而就是这多花费的一点点时间,可能会因为网络阻塞,中间服务器出错等情况而让我们等待很久。

 

所以最好的策略还是直接使用自己的服务器处理动态请求,而静态文件从CDN中获取,可是哪一个服务商提供这样的要求呢。

 

当然有七牛云的镜像存储啦!正确配置robots.txt之后便不会影响到源站的SEO,至于配置嘛,也很简单的啦!这里就不说咯!

 

还有还有,千千的网站终于迎来了久违的绿色,撒花o(≧v≦)o~~

 

Last but not least!

今天的英语四级考试,怎么办😭,结果未知,生死未卜……


  • 19 只已被捕捉
    • 她们说 Chrome | 41.0.2272.101 Windows 7

      期末了 可能真的有点儿忙 今天平安夜 愿你平平安安 一生幸福

      • 千千 Chrome | 41.0.2272.101 Windows 7

        你也是,平安夜快乐~