2014年11月

使用“搬瓦工”的vps已经接近半年了。期间升级过配置,拥有128m内存“大内存”(真是泪流满面)和2GB硬盘空间。于是把blog和自己的网站都丢上去,抛弃那个又慢又小的虚拟空间。把过程中的问题都记录一下。

域名
第一次绑定域名和IP,走了点弯路。一开始不知道域名提供商不提供DNS服务,要自己找一个。
1)申请DNSPod,国内的免费DNS服务。添加域名,然后针对该域名添加两条A类型的记录,主机分别是“@”和“www”。
2)设置域名的DNS服务器地址为DNSPod的地址:
f1g1ns1.dnspod.net
f1g1ns2.dnspod.net
3)剩下就只有等待了。不过不用等多久就开通了。

Nginx
主要是PHP相关的设置:

location ~ \.php(\/.+)?$ {
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    fastcgi_pass unix:/var/run/php5-fpm.sock; #用SOCK比较快
    fastcgi_index index.php;
    fastcgi_param PATH_INFO $fastcgi_path_info;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
    fastcgi_buffers 8 16k; #避免跳转报502错误
    fastcgi_buffer_size 32k; #避免跳转报502错误
}

后面还要设置HTTPS,用于部署OwnCloud。

PHP和PHP-FPM
这里基本用的是默认配置,后面再考虑优化。

MySQL
前面已经配好了,而且是针对小内存的机器来优化的。

VIM
增加支持显示中文字符。修改 /etc/vim/vimrc 文件,字啊末尾增加如下代码:

set fileencodings=utf-8,gb2312,gbk,gb18030
set termencoding=utf-8
set fileformats=unix
set encoding=prc

Wordpress迁移Typecho
主要是Wordpress太臃肿了,对于一个几乎只有自己看的Blog来说,不需要那么多东西。于是直接部署Typecho。利用相关的插件,导入Wordpress的数据即可。

大概就这样完成了迁移。后面的计划是部署OwnCloud,用来同步一些小文件。对了部署个私有SVN或者GIT服务器也是不错的。然后就是Laravel框架的学习了。

在128MB内存的VPS上折腾了一下MySQL,把过程总结一下记录下来。

1)配置文件
备份原配置文件,把官方配置样例中最低配置的配置文件复制过来,就可以了。命令如下:

mv /etc/mysql/my.cnf /etc/mysql/my.cnf.bak
cp /usr/share/doc/mysql-server-5.5/examples/my-small.cnf /etc/mysql/my.cnf

2)禁用InnoDB
禁用InnoDB,为了节省内存。

详细参考:
小内存VPS上MySQL5.5内存优化——禁用Innodb引擎
http://hxs.fd.fj.cn/?action=show&id=48

简单来说,就是修改my.cnf,在[mysqld]下增加以下配置:

default-storage-engine = MyISAM
loose-skip-innodb
innodb=OFF

文中还提到MySQL 5.5,还需要添加以下配置,否则程序会很容易退出的:

loose-innodb-trx = 0
loose-innodb-locks = 0
loose-innodb-lock-waits = 0
loose-innodb-cmp = 0
loose-innodb-cmp-per-index = 0
loose-innodb-cmp-per-index-reset = 0
loose-innodb-cmp-reset = 0
loose-innodb-cmpmem = 0
loose-innodb-cmpmem-reset = 0
loose-innodb-buffer-page = 0
loose-innodb-buffer-page-lru = 0
loose-innodb-buffer-pool-stats = 0

3)设置默认字符集UTF-8
登录MySQL后,用以下命令查看字符集设置:

show variables like ‘character%’;

默认字符集一般是latin1,最简单是修改my.cnf文件
[client]增加:

default-character-set = utf8

[mysqld]增加:

character-set-server = utf8

[mysql]增加:

default-character-set = utf8

4)重启MySQL服务

PS. MySQL的错误日志在 /var/lib/mysql/*.err