Skip to content

SKT-Labサーバーを自宅サーバーからさくらVPSに移行しました。

skt-lab.comドメインのコンテンツを2006年のドメイン取得、2008年のページ本格運用開始以来、下北沢の自宅兼職場で自宅サーバーとして運用してきましたが、本日付でさくらVPSへの移行を行いました。
http://vps.sakura.ad.jp/

今までは自宅にサーバーを置いていましたが、自宅にいないときに障害が発生したときにどうするかの問題があり、またサーバーを維持する際の費用の問題もあり、今年に入ってレンタルサーバーへの移行を検討し始めました。

今まで受けてきた案件で固定IP経由での接続を求められるものがあったことから、自宅のサーバーで取っている固定IPを使ってログインを行っていたこともあり、その関係でサーバー移行のタイミングが遅れていたのですが、そちらが固定IP不要になり久しいことから今回移行することになりました。



今まで使っていた自宅サーバー。
ところどころにホコリが見えますが、それを定期的に掃除するのもかなり大変でした。

もちろんOSをGUIで扱えるなど自宅にサーバーを置くメリットはあるのですが、自宅サーバーや案件で扱うサーバーを通してサーバー運用のノウハウが段々たまってきたこともあり、レンタルサーバーへ移行しても問題はないと判断しました。

その後、レンタルサーバー会社をいろいろ検討したのですが、さくらVPSが低コストでそこそこのものが扱えると判断し、さくらVPSへの移行がよいという判断になりました。

その後ファイル等の移行もスムーズに行われ、今回無事に移行したことになります。OSこそCentOS6で変わらないのですが、PHPがCentOS標準の5.3から5.6に上がり、案件の開発・テストで使われるMySQLも5.7にした上でパスワードポリシーの設定をOFFに、sql_modeも設定で空にして従来のMySQLのテーブルをそのまま扱えるようにしています。
http://thr3a.hatenablog.com/entry/20160229/1456727388
http://qiita.com/kazu56/items/0663ff7dd8b86eb02df7

今後、skt-lab.comドメインはさくらVPSで運用されることになります。まだまだ安定していないところもあるかもしれませんが、今後ともよろしくお願いいたします。

WordPressのpre_get_postsとposts_where

WordPressの各ページで出力される投稿を選定するためのフィルターフックとして、pre_get_postsというのが広く使われています。
http://qiita.com/_ruka_/items/e14280d34eddf49efad1
http://emiac-works.com/coding/pre-get-posts-code-snipet/

「特定のカテゴリに入っているもの」とか「特定の執筆者のもの」とかは出せますし、「特定のカテゴリかつ特定の執筆者」も出せますが、「特定の執筆者もしくは特定のカテゴリ」といったOR検索など細かい出力はできません。

ですが、WordPressには「posts_where」という投稿出力時の細かいWHERE文を出せるフィルターフックがあります。
https://wpdocs.osdn.jp/%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%A0%E3%82%AF%E3%82%A8%E3%83%AA
https://www.imamura.biz/blog/8176

// WHERE修正
function home_where( $where = '' ) {
    global $wpdb;

    // WHERE文を入れる
    $where .= "/ WHERE文をこの中に入れます。 /";

    return $where;
}

// pre_get_posts
function new_pre_get_posts($query) {
    / 管理画面,メインクエリに干渉しないために必須 /
    if( is_admin() || ! $query->is_main_query() ){
        return;
    }

    / homeの表示をカスタマイズ /
    if ( $query->is_home() ) {
        add_filter( 'posts_where', 'home_where' );
        return;
    }

}
add_action( 'pre_get_posts', 'new_pre_get_posts' );


こんな感じでfunctions.phpに挿入するといいでしょう。
実際このようなカスタマイズを最近求められて戸惑っていたのですが、こちらで何とか対応しました。

こういった方法を使えば投稿の表示をより自由自在にできるかと思います。