网站迁移进行时

步骤1:搬了吧,还是搬了

大概一个月前,我的主机商bluehost给我发来邮件(现在说来应该是以前的主机商了),说我的空间还有一个月即将到期了.于是我就开始筹措着给网站搬个家了,顺便提升一下速度,然后呢,再提升一下我的Linux技术(彼时,我正在学习Linux).于是呢,换个vps吧.去网上找了一大圈,发现真的VPS太多了,找起来很困难啊,只好随便选了一个(具体名字就不说了,因为发生了点纠纷,名称用A代替吧).立刻就下单了,A呢在24小时内,也把账号和密码都发我了,可是….可是……我怎么登陆不了控制面板??于是去ping一下,发现那个新ip竟然在国内都ping不通(去掉墙的问题,因为他们主站访问速度都很慢),也不知道当时LZ(搂住,楼主)是怎么想的,竟然在他们主站访问速度都那么慢的情况下居然还买了他们的vps……难道这是传说中的神经短路??f*ck…额,今天看到新闻说中国雅虎要关闭邮箱服务了..(貌似跟我没多大关系..)..跑题了…然后因为我就想到了退款,去网上一搜索竟然发现他们是不接受退款的,于是只好采取下策了:去Paypal投诉(忘了说,我是用Paypal买的).大概是10号左右买的,到现在钱还没退还回来……呜呜呜….这个教训告诉我,在海外购物需要慎重…再慎重……

在大概第六天的时候,我的QQ签名改成了这样:做任何事情,都不能把别人的帮助计算在内……

于是,那天晚上我做了一个决定!

买!立刻,马上买!!

步骤2:700大洋没了

没错,我又找了一个国内信誉不错的VPS服务商,最重要的是他们有中文服务(其实中英文都还好,不过有中文最好了),最最重要的是他们可以7天无条件退款!!这可是一针强心剂啊!一点也不后悔的买了,然后立刻ping了一下ip(有了上次的教训),然后一下买了好几个ip备用着(因以前被墙过一个ip),哇,访问速度很快,很牛BO啊!!万分高兴啊!!!

步骤3:苦逼的配置之路

我看了他们说vps还是不要用Apache了,用Nginx把,于是我头也不回的去了Nginx的家,只因为她说今晚只有她一个人在……

步骤是这样的,我去了控制面板,然后脱GUANG了系统的外衣(重装),一个纯净的Centos就出炉了.(交代一下,我在虚拟机里面搞过一个Centos6.3,并且还编译安装成功了Nginx+PHP+MySQL,当时觉得自己挺牛的.事实是…我想多了)于是我就像个愣头青一样热火热茶的搞配置了,找了教程,配置了大概3天,不行!各种配置不成功!!各种错误!!!找客服求助吧,这个事情还是很奇葩的,在客服将lnmp的链接发给我的时候,我也刚好找到了.

于是,lnmp我来了…..(编译安装,只需一键)

Linux+Nginx+PHP+MySQL
image-1752

步骤4:揪心的域名绑定

安装完lnmp都还好,域名绑定可难住我了(因为我有几枚二级域名),这个时间又搞了好几天,大概是什么呢,就是能绑定顶级域名,但二级域名死活绑定不上(对了,期间我还装了一个Nginx的控制面板,发现那个多余了…挺难用的..叫啥?不记得了),于是我去国外的一个论坛发帖,各种百度,各种谷歌,各种BING,结果还是不行…于是我去了CSDN论坛,用100分的”酬劳”发帖询问怎么绑定域名的.可惜……可惜……也许是Nginx知道的人太少…也许是Nginx的配置很难(纯属扯DAN)…直到我找到了答案也还是没有人回复我的帖子……

我是怎样找到答案的?且听我慢慢道来:

lnmp的安装里面明明有个添加虚拟主机的(说实话,当时我是以土鳖思维看的,因为哥原来就是虚拟主机啊啊啊啊…),我以为那个没多大用,后来才发现,那个就是添加域名的啊啊…(可以添加顶级域名,也可以添加二级域名的).不过呢,我还是搞了两份域名绑定的源码下来,下面的就是:

Nginx绑定顶级域名

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
server  # 这个server是一定要的,我就是因为没写在这个里面走了N多冤枉路.
    {
        listen       80;
        server_name www.s.in s.in # 需要绑定的域名
        index index.html index.htm index.php default.html default.htm default.php;
        root  /home/xxx; # 替换成你实际的绝对路径

        include discuzx.conf;
        location ~ .*\.(php|php5)?$
            {
                try_files $uri =404;
                fastcgi_pass  unix:/tmp/php-cgi.sock;
                fastcgi_index index.php;
                include fcgi.conf;
            }

        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
            {
                expires      30d;
            }

        location ~ .*\.(js|css)?$
            {
                expires      12h;
            }

        access_log off; # 这个是日志功能,一般用不上可以off掉.如果要用改成on就行了.
    }

Nginx绑定二级域名

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
server
    {
        listen       80;
        server_name bbs.s.in; # 二级域名
        index index.html index.htm index.php default.html default.htm default.php; # 默认首页
        root  /home/ss;# 替换成实际路径

        include discuzx.conf; # 这个是伪静态的文件,继续往下看.会有详解.
        location ~ .*\.(php|php5)?$
            {
                try_files $uri =404;
                fastcgi_pass  unix:/tmp/php-cgi.sock;
                fastcgi_index index.php;
                include fcgi.conf;
            }

        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
            {
                expires      30d;
            }

        location ~ .*\.(js|css)?$
            {
                expires      12h;
            }

        access_log off;
    }

好了,配置文件就是这样,如果报错记得检查一下:权限(使用ls -l,看下是否有读写权限,chmod 755 [文件或目录名,如果需要让一个目录下的所有文件都有此权限,可以这样写:chmod 755 [目录名]/* ])和用户组(有时候只能使用www用户启动,如果不是www用户及用户组,使用chown www:www [文件名或目录名] 就可以更改,如果需要改目录下跟chmod一样加上”/*”就可以了).

修改完之后,记得使用:/etc/init.d/nginx restart 重启Nginx让配置生效.

步骤5:伪静态也很坑爹啊

其实标题不是真的想说的,我真的想说的其实是–没文化,真可怕!!

因为搬过来的有wordpress,discuz这些程序,于是就需要配置伪静态,我就开始去网上找规则,找了很多都不行.

后来看到这样一句话:规则都必须写在server{ }里面.我试了试!竟然真的可以!!!

伪静态配置规则(Discuz X 系列可用):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
server{
rewrite ^([^\.]*)/topic-(.+)\.html$ $1/portal.php?mod=topic&topic=$2 last;
rewrite ^([^\.]*)/article-([0-9]+)-([0-9]+)\.html$ $1/portal.php?mod=view&aid=$2&page=$3 last;
rewrite ^([^\.]*)/forum-(\w+)-([0-9]+)\.html$ $1/forum.php?mod=forumdisplay&fid=$2&page=$3 last;
rewrite ^([^\.]*)/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ $1/forum.php?mod=viewthread&tid=$2&extra=page%3D$4&page=$3 last;
rewrite ^([^\.]*)/group-([0-9]+)-([0-9]+)\.html$ $1/forum.php?mod=group&fid=$2&page=$3 last;
rewrite ^([^\.]*)/space-(username|uid)-(.+)\.html$ $1/home.php?mod=space&$2=$3 last;
rewrite ^([^\.]*)/blog-([0-9]+)-([0-9]+)\.html$ $1/home.php?mod=space&uid=$2&do=blog&id=$3 last;
rewrite ^([^\.]*)/(fid|tid)-([0-9]+)\.html$ $1/index.php?action=$2&value=$3 last;
rewrite ^([^\.]*)/([a-z]+[a-z0-9_]*)-([a-z0-9_\-]+)\.html$ $1/plugin.php?id=$2:$3 last;
if (!-e $request_filename) {
        return 404;
}
}

其他规则在网上能搜索到,大家自行百度,谷歌吧.记得一定要放在server{ //规则 } 里面,不然Nginx会报错的

一点感触就是——这几天学的Linux命令比过去一年都学的多.而且我发现我越来越喜欢命令行界面了,倒是对图形化没多少赶脚了.

号外:

最后,如果最近要换vps的朋友,也可以通过diavps去购买.速度都还不错,服务也挺好的.

《网站迁移进行时》上有3条评论

    1. @骆明冬 这个肯定是必须的,而且我可以透露一下,这个主机比以前那个便宜,而且续费也还好。。。只是要自己配置环境。。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

*

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据