KUSANAGIでWordPressを設置してみた

WordPressが簡易なサイト構築の定番の一つになって久しいですが、PHPで書かれているためかサーバーにとってはそこそこ重いんですよね。
(この軽さの点でいえばMovableTypeのほうが優れていたような気がしますが、最近はあまり見かけない気がします)

さくらインターネットが、そんなWordPressが高速に動作するようチューニングした仮想サーバーを用意してくれました。
そういえば弊社には負荷の高いWordPressサイトが1つ以上あったっけな……これは移行して使ってみるしかない!

……とY氏に言われまして。
ちょくちょくY氏の思い付きの実行隊員にされることの多いさみどりですが(扱ったことのないPythonでWindowsのソフト作ったり、それにCOM通信やWeb通信機能を盛り込んだり。当時のさみどりはサーバー管理専門だったんですが、おかげさまで今やマルチな戦士に)
今回も例に漏れずさみどりがKUSANAGIを導入することとなりました。

なのだけど……今回は楽でしたね!

  1. DNSは事前に設定しておく。
    すぐにいじれないならhosts登録でも作業はできるけど、Let’s encryptが使えるのはDNS登録後のみ。
  2. (1ページ目)クラウドのホストを1個借りる。OSにKUSANAGIを選択。
  3. (2ページ目) yum --enablerepo=remi,remi-php56 update -y でパッケージを最新化。
  4. kusanagi init でサーバーの初期設定。
    • 2ページ目の残り全部が対話形式で全部進みます。
    • 確かここでLinuxのkusanagiアカウントのパスワードを求められる。入力内容は後々使うので忘れずに。
  5. (3ページ目) kusanagi provision public_html でサイトの用意をする。
    • ここで入力したpublic_htmlの部分がDocumentRootのディレクトリ名になり、あとからの名前変更はかなり面倒くさいみたいなので名前にこだわりのある人はちゃんと考えてつけましょう。
    • 3ページ目の残り全部が対話形式で全部進みます。
    • 途中で入力するデータベース名、MySQLユーザー名、パスワードは後でWordPressセットアップ時に聞かれるので覚えておくように。
      なお新設ではなく移行の場合は、移行元サイトと同じにすると面倒がないです。
    • 途中Let’s Encryptで使うメールアドレスを聞かれます。入力任意ですが、費用をかけずSSL化できて便利だし、Googleが「全てのサイトはSSL化すべき」とか言っちゃってるらしいので、問題がないならやっておいたほうが無難です。
  6. ここから新設か移行かでちょっと違う。
    • 新設の場合、(4ページ目)WebアクセスしてWordPressのセットアップ
      1. 【さあ、始めましょう】ボタンを押すと wp-config.php を作るフォームへ行きます。ファイルを手入力で作る人には馴染みのない画面。
        ここでさっきのデータベース名、MySQLユーザー名、パスワードを入力。
      2. 次はおなじみ、WordPressのタイトルやアカウントを登録するフォーム。ちゃちゃっと入れて【WordPressをインストール】を押せばセットアップ完了です。
    • 移行の場合、ここで移行元サイトのファイルとDBデータをKUSANAGIサーバーに持ってくる。
      1. 旧サーバーのファイルをtarで固め、DBのdumpを取って、それらのファイルをKUSANAGIサーバーへ。
      2. /home/kusanagi/public_html のファイル丸ごとを一度tarで固めてバックアップしておく。
      3. 旧サーバーのファイルを展開して public_html を上書き。
        さらに元々の public_html を固めたtarを展開して再上書き。
      4. 旧サーバーのDB dumpをMySQLに展開する。WordPress用のMySQLユーザーでやるのがよい。
      5. Webアクセスして旧サイトと同じように表示できれば移行完了。
  7. WordPressの更新はKUSANAGIサーバー内部だけで動くFTPによって行う(FAQのQ3を参照)。
    ここで最初の頃に入れたLinuxのkusanagiアカウントのパスワードが必要。

という具合。
文字だけだとわかりやすさは伝わらないでしょうけど、ほぼ解説通りで迷うことがありませんでした。

スペックのほうですが、このサイトは移行した翌日にやんごとなき理由でアクセスが集中、負荷がかなり高まったはずなのですが華麗に乗り切りました。
今後WordPressはだいたいKUSANAGIに任せてしまってよさそうな予感がします。

get_template_directory_uriとget_stylesheet_directory_uri の違い

get_template_directory_uri()はWordPressテーマディレクトリまでのURLを取得する関数です。

もう一方で、

get_stylesheet_directory_uri()はWordPressテーマディレクトリまでのURLを取得できる関数です。

違いは、WordPressテーマの親子関係にあります。

get_template_directory_uri()をもう少し細かくいうと、親テーマで使用した場合は、get_stylesheet_directory_uri()と変わらずに有効化してあるWordPressテーマのテーマディレクトリURLの取得します。小テーマで使用した場合は、子テーマのstyle.cssに書かれている「Template」をみてテーマディレクトリURLを取得しています。

もし、子テーマを指定し、そこからURLを取得する場合は、get_template_directory_uri()とget_stylesheet_directory_uri()が違います。get_template_directory_uri()は親テーマのテーマディレクトリURLを出力してくれますが、get_stylesheet_directory_uri()は子テーマのテーマディレクトリURLを出力してくれます。

<まとめ>

get_template_directory_uri()とget_stylesheet_directory_uri()の違いについて紹介しました。WordPressのテーマ開発をするときはget_template_directory_uri()は親テーマで使い、get_stylesheet_directory_uri()子テーマで使うといった感じに分けるといいでしょう。

 それでは・・・

カスタム投稿の作成

カスタム投稿は、自由に投稿できる【投稿】です。いままでは、投稿と固定ページの2種類でした。それ以外に、独自で作成した投稿=カスタム投稿を作成することが出来ます。

プラグインで作成することもできますが、勉強もかねて、function.phpに書く方法を記しておこうと思います。

 

【function.php】の中

add_action('init', 'add_websites_post_type');
function add_websites_post_type() {
    $params = array(
            'labels' => array(
                    'name' => 'サイト',
                    'singular_name' => 'サイト',
                    'add_new' => '新規追加',
                    'add_new_item' => 'サイトを新規追加',
                    'edit_item' => 'サイトを編集する',
                    'new_item' => '新規サイト',
                    'all_items' => 'サイト一覧',
                    'view_item' => 'サイトの説明を見る',
                    'search_items' => '検索する',
                    'not_found' => 'サイトが見つかりませんでした。',
                    'not_found_in_trash' => 'ゴミ箱内にサイトが見つかりませんでした。'
            ),
            'public' => true,
            'has_archive' => true,
            'supports' => array(
                    'title',
                    'editor',
                    'author',
                    'custom-fields',
            ),
            'taxonomies' => array('websites_category','websites_tag')
    );
    register_post_type('websites', $params);
}

 

add_adtion()関数は、【指定したタイミングで、指定した関数を実行する】関数です。

任意の名前は、安全に名前をつけたいなら、名前の最初にオリジナルの名前を記入したほうがいいと思います。また、基本的に指定した名前はサイト運用中に変更することが出来ません。

適用させる引数は、たくさんあるので割愛します。

 

投稿できるようになったら、それをどこ(単一ページ、固定ページなど)に表示させるかということろですが、長くなってしまうので改めて書いていきたいと思います。

WPの子テーマを使うようにしましょうというお話

どうもこんばんわANDくんです。

WordPressのテーマって、親テーマを継承して子テーマとし作成することができるっていうのはご存知でしたでしょうか?

僕は最近まで知りませんでした。

親テーマそのものを変更すると、テーマ自身にアップデートあったりするとアップデートすることが出来なくなってしまいます。
テーマによって起こるセキュリティリスクってのはなかなか無いとは思いますが、やはり親テーマ自身はアップデートできるに越したことは無いと思います。
(アップデートすることにより結局干渉してダメになったりとかはあると思うが、することがそもそも困難よりマシかと)

というわけで次からWordPressのテーマをなんか変更してデザイン作るとなった時はそうしようと思いました。

 

WordPressは元々の作成者さんがMovable Typeに不満を持って作ったものとの事で、流石になるほどいろいろよく出来てるなと思いますね・・・。ほんと。
WordPressはすごい。

 

参考サイト
http://presentnote.com/child-theme-customaize/
http://seous.info/wp-customize/2780

SimpleTweetからWP to Twitterに変更してみました。

どうもANDくんです。

 ここの投稿はWordpressでして、SimpleTweetを用いてTwitterに投稿していたのですが、
どうもSimpleTweetの調子がおかしいみたいで、投稿できる時とできない時があるみたいでした。

じゃあってことでWP to Twitterに試しに変更してみました。

これでどうでしょうねー。

異常とか無ければ良いな・・・

という業務連絡兼テスト投稿です。

 

追記:投稿できるには投稿できるけど日本語slugが・・・
短縮URLにすれば解決すると見たけどうまくいかないですね-?_(:3 」∠ )_

更に追記:URLエンコードを試してみてもうまくいかない・・・
ってことでwp上での短縮URLを無理やり使ってみることにしました。

海外のプラグインはマルチバイト言語を想定していなくて厄介ですね・・・。