致我所深爱着的世界

Eloquent ORM Connection 无法自定义 MySQL 连接端口的解决办法

这是今天我朋友遇到的问题,网上没有啥解决方法,特此记录。

朋友的 MySQL 运行在 3307 端口,然而他的框架配置文件中没有 Port 的选项(好吧我说的就是 ss-panel),如果在 db_host 中填写 localhost:Port 这样的格式的话就会报 SQLSTATE Unknown MySQL server host 'localhost:3307' 这样的错误。

那么要怎么解决呢?

首先要找到 .env 被解析的地方,以 ss-panel 为例是在 /app/Services/Config.php 中:

> READ MORE...

开发 Blessing Skin Server 所学到的

开发这个皮肤站程序也有一段时间了,写篇文章稍微总结一下。挺久以前的草稿了,可能有些过时内容。


起初接触到 PHP 是在搭建博客的时候,经常因为某种需求而需要对 WordPress 做一些定制。也就是那个时候我写出了人生中 第一行 PHP 代码

当时对 PHP 也没太大感觉,因为当时也没接触过 Web 开发。真正开始使用 PHP,是萌发想做一个皮肤站的念头后。

在开发语言中,我选择了 PHP 而不是喜欢的 Python。一是因为作为模板语言的PHP天生适合写 web 项目,二也是为了能涨点姿势。

因为基础还算过得去,我也没必要去看什么 PHP 新手入门教程,上手就直接开始写了。依样画葫芦撸了个基本架构就开始写前端逻辑。

> READ MORE...

为 Ghost 博客添加页面访问计数器

博客搬迁到 Ghost 后,原来的 Post Views 无法显示一直是窝的一大心病。

众所周知 Ghost 是使用模板语言 handlebars 来开发主题的,这也就造成了主题开发者们很难输出一些动态内容,而只能使用其内置的助手函数输出有限的可变内容。

总不能就这样下去吧,于是窝经过了一番搜索,找到了这个东西 —— 不算子

看来困扰于静态页面访问计数的不止窝一个啊。然而看了一下,不算子并不提供可调用的 API,也就是说窝没办法在文章分页上显示每篇文章的点击数了。

这怎么行?于是窝动了自己写计数服务的念头。

> READ MORE...

VPS 被 DDoS 后与 ConoHa 客服的邮件记录

挺醉的。翻译如下:


(お客様センター) - 2016/01/23 22:21

ご担当者 様

いつもご利用いただき、まことにありがとうございます。

ConoHa お客様センターです。

突然のご連絡失礼いたします。

このたびお客様にご利用いただいておりますVPSに対して、
外部からの不正なトラフィック(DDOS攻撃)を検知いたしました。

IPv4アドレス :157.7.108.189

大変恐縮ではございますが、他のご利用者様への影響が懸念される
状況となっておりましたので、該当VPSに対する外部からの通信を
すべてDropするようにさせていただきました。

サービスの安定運用上、何卒ご了承くださいますよう、お願い
申しあげます。

今後ともConoHaをよろしくお願いいたします。

(客服中心) - 2016/01/23 22:21

尊敬的用户

非常感谢您一直以来的使用,这里是 ConoHa 客服中心。

突然的通知失礼了。

这次对于我们为您提供的 VPS,发现了外来的异常流量(DDOS攻击)。

IPv4 地址 :157.7.108.189

虽然很过意不去,但是由于不知道是否会对其他使用者造成影响,所以我们将被攻击的 VPS 的外部通信全部 Drop 了。

为了对服务的稳定而进行的操作,敬请谅解。

今后也请多多关照 ConoHa。

> READ MORE...

Hello Ghost, goodbye Wordpress

虽然以前就一直想要弃用 WordPress 了,但是由于没有时间(懒) ,而且也是对这个完善的 CMS 有了感情。

然而在 ConoHa 的 VPS 被 DDoS 而搬迁至 DigitalOcean 后,我奇怪的发现 WordPress 的响应速度慢了很多。TTFB 甚至达到了史无前例的 16s。

对于这种情况,我第一个想到的就是数据库的锅。然而看了慢查询日志,导出 wp query 却发现问题不在数据库查询上。

后来又使用了排除大法,最终将问题定位于我所使用的 Seventeen 主题上。

看来是主题中做了什么耗费大量 CPU 时间的事件,导致前后台响应慢成狗(默认主题没事)。

要知道同样内存,ConoHa 和 DigitalOcean 的 CPU 配置可不只差了一点半点。这也是我最初选择 ConoHa 的原因之一。

然而发生了这档子事,反正我是再也不会去用 ConoHa 了。

那么怎么办呢?活人总不能让尿憋死吧。

> READ MORE...

Welcome to Ghost

You’re live! Nice. We’ve put together a little post to introduce you to the Ghost editor and get you started. You can manage your content by signing in to the admin area at <your blog URL>/ghost/. When you arrive, you can select this post from a list on the left and see a preview of it on the right. Click the little pencil icon at the top of the preview to edit this post and read the next section!

Getting Started

Ghost uses something called Markdown for writing. Essentially, it’s a shorthand way to manage your post formatting as you write!

Writing in Markdown is really easy. In the left hand panel of Ghost, you simply write as you normally would. Where appropriate, you can use shortcuts to style your content. For example, a list:

  • Item number one
  • Item number two
    • A nested item
  • A final item

or with numbers!

  1. Remember to buy some milk
  2. Drink the milk
  3. Tweet that I remembered to buy the milk, and drank it

Want to link to a source? No problem. If you paste in a URL, like http://ghost.org - it’ll automatically be linked up. But if you want to customise your anchor text, you can do that too! Here’s a link to the Ghost website. Neat.

> READ MORE...

通过 Socks5 代理进行 SSH 连接

为什么要写这个呢?

这次 ConoHa 把我被 DDoS 的 VPS 所有对外连接 DROP 了。最开始是所有的连接都 DROP,只有控制台的 VNC 才连的上。连上以后只能 Ping 到内网。

所幸后来放宽了 DROP,日本的 IP 可以访问了。于是借用了同学的搭建于 ConoHa 的 Shadowsocks,准备把数据备份下来(ConoHa 删除被 D 主机不是一次两次了)。

那么要怎么样才能通过代理进行 SSH 连接呢?窝起先以为是像 curl 那样提供了参数,不曾想 man ssh 未果,只好 Google 解决方法。不过大部分都是搜到了 SSH 代理的教程,找了挺久的,为了让后来人少走弯路,遂记录一下。

下面介绍的是 connect 的使用方法,Corkscrew 可以看这篇

0x01 下载并安装 connect

这是 connect 的 Bitbucket 项目地址

如果你是 Linux/Mac 用户,克隆项目到本地(然而窝不用 Mercurial),编译安装:

$ hg clone https://bitbucket.org/gotoh/connect 
$ cd connect 
$ make && make install

也可以:

$ gcc connect.c -o connect 
$ cp connect /usr/local/bin

如果你是 Windows 下的 Cygwin 用户,直接下载发行的二进制文件C:/Windows 中即可

0x02 配置 SSH

如果你使用的是 socks5 代理(Shadowsocks),添加这两行到 ~/.ssh/config

Host * 
    ProxyCommand connect -H 127.0.0.1:1080 %h %p

如果你是使用 HTTP 代理,将 -H 改为 -S。

0x03 连接

success

成功


装逼地使用了十六进制的标题序号

临时迁移至 DigitalOcean

由于 ConoHa 的 VPS 被 DDoS,被 DROP 了除日本 IP 外的所有连接,故紧急迁移至 DigitalOcean。同时导致了从昨晚 21 时到今天早上 10 点之间的服务不可用。

发了 Tickets,ConoHa 客服至今没有回应,看来星期天客服不上班是真的了QQ图片20160124152956

遂临时迁移至 DigitalOcean。所有数据迁移后,发现 WordPress 的响应变得非常慢,TTFB 长时间大于 20s。经过排查,将问题锁定至主题。由于 DO 主频的问题,原先的 Seventeen 主题中不知道有什么占用了大量 CPU 时间的操作,导致响应时间延长。

遂换回 WordPress 默认主题 Twenty Fifteen。

不知道 ConoHa 的傻逼客服什么时候才会回复。

– (お客様センター) – 2016/01/23 22:21
ご担当者 様

いつもご利用いただき、まことにありがとうございます。
ConoHa お客様センターです。

突然のご連絡失礼いたします。

このたびお客様にご利用いただいておりますVPSに対して、
外部からの不正なトラフィック(DDOS攻撃)を検知いたしました。

IPv4アドレス :157.7.108.189

大変恐縮ではございますが、他のご利用者様への影響が懸念される
状況となっておりましたので、該当VPSに対する外部からの通信を
すべてDropするようにさせていただきました。

サービスの安定運用上、何卒ご了承くださいますよう、お願い
申しあげます。

今後ともConoHaをよろしくお願いいたします。

使用 MySQLi 重写 Do you like me

这次升级 PHP7,一切顺利,到了恢复站点数据的时候,发现上次搞的 “Do you like me?” 不工作了。看了日志发现是 mysql_connect() 这个函数的问题。

看了下文档,原来在 PHP7 中全面移除了 mysql_ 系列函数,转而使用 mysqli 或者 PDO。。fuck 劳资皮肤站里都是 mysql_ 系列函数啊啊

上次偷懒用的 LWL12 写的,看来他也没想到这种情况呢。遂使用 mysqli 重写之。

mysqli 改为以面向对象的方式操作数据库,而不是 mysql_ 系列函数的面向过程,这点倒是挺好的。

不知道为何原来 LWL12 写的版本单独使用了一个表来存投票数,可能是怕效率问题。不过 SELECT COUNT(*) 在没有指定 WHICH 的时候效率还是蛮高的,参见:知乎:mysql select count(*) 与 select count(id) 两个执行效率怎样?

其实也没改多少,另外把建表的 SQL 也顺便封装在文件里了,托管在 Gist 上。