全站已搬迁至 conoha 东京机房

顶图是 conoha 的看板娘 美雲このは 哟~


被安利了 conoha(窝的推广链接(笑) 的东京机房,窝去看看了看,费用是 900円/月,换算成软妹币差不多45块(安倍经济学大法好 i_f25)。通过别人的推广链接注册还可以送 1000日元。当时咱就无脑注册了一个 vps 玩玩,配置如下:

20150712134657

配置还算不错,而且东京机房应该会比 SFO 机房快一些(对各种线路用户来说

付完款到手以后,发现IP竟然被!墙!了! 20150711215742

本来想发 tickets 的,后来转念一想,反正是月底结算,就删掉了 vps 重建了一个。

conoha 和 digitalocean 不一样,删掉 vps 重新创建是可以改掉 IP 地址的,新的IP终于可以正常访问了 i_f25,遂将 conoha.prinzeugen.net 解析至 vps 开始折腾~

lnmp 咱已经不想再搞他了 QQ图片20150627233807 这次咱用的是 amh面板,6块一个月并不算贵。如果你手头紧就自行搜索破解版吧,咱也不好推荐盗版

使用 amh 的一键安装脚本很快就可以配置好,而且是用户友好的 gui 界面,配置很方便,咱很快就把ngnix+PHP+mysql的运行环境搭建好了。amh 面板的软件下载页很全,几乎需要用到的环境都可以找到 20150711215742 就算是窝也不想天天黑底白字啊

顺便将NS换成了dnspod ,正捣腾着amh的时候突然出了上篇文那档子事,不过还好晚上12点左右就恢复了。现在又用回了花生壳的 dns 解析。主域名都已经解析至 conoha 的 vps ,原来的破虚机在这里

虽然中途有碰到过各种事,但也不是什么值得记录的,就先这样吧 20150503085737

Ubuntu 14.04 添加 swap 交换分区

听说加了 swap 会有用。。总之试一下又不会怀孕 20150711215742

参考了 Digital Ocean 官方的教程:How To Add Swap on Ubuntu 14.04

Linux 中 Swap(交换分区),类似于Windows的虚拟内存,就是当内存不足的时候,把一部分硬盘空间虚拟成内存使用,从而解决内存容量不足的情况,和Windows的虚拟内存(pagefile.sys)的作用是一样的。


1.查看操作系统中是否已经有交换分区

使用 sudo swapon -s 或者 free -m

total used free shared buffers cached
Mem: 3953 154 3799 0 8 83 -/+
buffers/cache: 62 3890
Swap: 0 0 0
阅读全文→

lnmp 搭建 WordPress 后台不能显示所有主题

wordpress搬到vps上后,后台主题页只剩下一个默认的 Twenty Fifteen 了

QQ图片20150627233807 ,搜索了一下发现原因是 php 禁用了 scandir 函数

依照如下方法启用即可:

1.编辑 php.ini

vim /usr/local/php/etc/php.ini

2.查找 scandir

在vim下输入 /scandir 查找,删除 disable_functions 中的 scandir

20150710152316

3.重启 php-fpm

/etc/init.d/php-fpm restart

20150710153609 20150606223914

配置 phpMyAdmin configuration storage

lnmp 自动安装 phpMyAdmin 后,默认高级功能是未开启的,会提示:

The phpMyAdmin configuration storage is not completely configured, some extended features have been deactivated. Find out why.
Or alternately go to ‘Operations’ tab of any database to set it up there.

似乎不同pma版本有的是中文提示:高级功能未全部设置,部分功能不可用。

嘛,所谓高级功能,就是pma的配置存储,建一个数据库给pma存放配置:

1.导入 phpmyadmin 的数据库

在phpMyAdmin的安装目录的 sql目录 下找到 create_tables.sql 导入到mysql中

2.修改 config.inc.php

把以下内容的注释去掉

20150709094915

视情况你可能还需要自己添加一些。。反正看一下pma底部的报告差不多就懂了

VPS 部署 shadowsocks 服务器

UPDATE:窝基于此教程的内容写了个一一键安装脚本,具体可以看这里


就在刚才咱买的ss服务过期了,vps又买到了,自然是在vps上搭个ss来爬墙 i_f25

ssh 上 vps,apt-get

apt-get install python-pip m2crypto supervisor pip install shadowsocks

20150708170216

编辑 /etc/shadowsocks.json (咱用的是vim

vim /etc/shadowsocks.json ip、端口、密码自己填

{
    "server":"123.123.123.123",
    "server_port":62121,
    "local_port":1080,
    "password":"my password",
    "timeout":600,
    "method":"aes-256-cfb"
}
阅读全文→

蛤蛤蛤咱有VPS辣

ubuntu vps
20150708165332
明天就把博客搬到vps上去~ QQ图片20150605073119

如果忘记使用邀请码链接注册没拿到10刀的话,可以在settings里填写promo code拿到10刀

promo code

代付不靠谱

这是结局:代付的 paypal 账号被多个 DO 账号使用,客服告诉我,他们不允许多个账号使用相同的付款方式,因为怕用户刷那 10刀。。现在只能销毁账号重新创建了。

不过现在咱有了 globalcash,麻麻再也不要担心我没有 paypal 辣 QQ图片20150531180053


20150708131003

被 DO 的 backend 系统发现使用同一个 paypal 注册了多个 do 账号,结果账号被锁了QQ图片20150621134022

现在在用捉鸡的鹰语发 tickets

20150708130828

20150708130741

20150708131511

阅读全文→

Chrome on 5.0+ 应用标题栏上的网站图标

Android 5.0+ 上的 chrome 开启合并标签页和应用后,最近应用列表中,标题栏上会显示一个图标:

Screenshot_2015-07-07-23-17-47

咱当时还以为是shortcut icon但是并不是 QQ图片20150621133428

看着V2EX呀github呀andy都有,就去看了一下他们的网站源码

发现共同点是在shortcut icon的标签下都有一个叫apple-touch-icon的

搜索了一下:

在iPhone,iPad,iTouch的safari上可以使用添加到主屏按钮将网站添加到主屏幕上。
apple-touch-icon是IOS设备的私有标签,如果设置了相应apple-touch-icon标签,则添加到主屏上的图标会使用指定的图片。

不过没找到关于chrome的,但是窝在head中加入如下link就可以显示chrome上的图标了~

Wordpress 隐藏移动版页面的伪春菜

窝现在在用的这个伪春菜插件,似乎没有加入判断是否移动端的逻辑,然而移动页面上的伪春菜体验超级差,低分辨率设备甚至出现被糊一脸且点不到隐藏的情况 QQ图片20150621134022

虽然咱不会 php 但也只好借助咕狗大神的力量自力更生了

看了看插件源码,折腾出解决方案如下 20150503124308,都是修改插件中的 sm-weichuncai.php

一、插入 isMobile() 判断函数

/**
 * 是否移动端访问访问
 *
 * @link http://www.codeceo.com/article/php-ismobile.html
 * @return bool
 */
function isMobile()
{ 
    // 如果有 HTTP_X_WAP_PROFILE 则一定是移动设备
    if (isset ($_SERVER['HTTP_X_WAP_PROFILE'])) {
        return true;
    } 
    // 如果 via 信息含有 wap 则一定是移动设备,部分服务商会屏蔽该信息
    if (isset ($_SERVER['HTTP_VIA'])) { 
        // 找不到为flase,否则为true
        return stristr($_SERVER['HTTP_VIA'], "wap") ? true : false;
    } 
    // 脑残法,判断手机发送的客户端标志,兼容性有待提高
    if (isset ($_SERVER['HTTP_USER_AGENT'])) {
        $clientkeywords = array ('nokia',
            'sony',
            'ericsson',
            'mot',
            'samsung',
            'htc',
            'sgh',
            'lg',
            'sharp',
            'sie-',
            'philips',
            'panasonic',
            'alcatel',
            'lenovo',
            'iphone',
            'ipod',
            'blackberry',
            'meizu',
            'android',
            'netfront',
            'symbian',
            'ucweb',
            'windowsce',
            'palm',
            'operamini',
            'operamobi',
            'openwave',
            'nexusone',
            'cldc',
            'midp',
            'wap',
            'mobile'
            ); 
        // 从 HTTP_USER_AGENT 中查找手机浏览器的关键字
        if (preg_match("/(" . implode('|', $clientkeywords) . ")/i", strtolower($_SERVER['HTTP_USER_AGENT']))) {
            return true;
        } 
    } 
    // 协议法,因为有可能不准确,放到最后判断
    if (isset ($_SERVER['HTTP_ACCEPT'])) { 
        // 如果只支持wml并且不支持html那一定是移动设备
        // 如果支持wml和html但是wml在html之前则是移动设备
        if ((strpos($_SERVER['HTTP_ACCEPT'], 'vnd.wap.wml') !== false) && (strpos($_SERVER['HTTP_ACCEPT'], 'text/html') === false || (strpos($_SERVER['HTTP_ACCEPT'], 'vnd.wap.wml') < strpos($_SERVER['HTTP_ACCEPT'], 'text/html')))) {
            return true;
        } 
    } 
    return false;
}

二、在 get_chuncai() 中加入判断逻辑

// 获得春菜 
function get_chuncai() { 
    if (isMobile() == false) { 
    /* 这里一大块是原来 get_chuncai() 的代码 
     * 咱只是在外面包了一层if而已 
     * 说起来php是没有 not() 的吗? 
     */
    } 
}

UPDATE:重新修订于 9.14