modxで“超”キレッキレのブログ作る秘訣公開します

73
MODXキレッキレのブログ 作る秘訣 公開します Kei Mikage - MODX Japan PR Manager

Upload: kei-mikage

Post on 01-Jul-2015

1.907 views

Category:

Internet


7 download

DESCRIPTION

MODX Evolutionとオブジェクトストレージの組み合わせにより、超高速かつシンプルなブログを自作します。

TRANSCRIPT

Page 1: MODXで“超”キレッキレのブログ作る秘訣公開します

MODXで

超キレッキレのブログ作る秘訣

公開しますKei Mikage - MODX Japan PR Manager

Page 2: MODXで“超”キレッキレのブログ作る秘訣公開します

僕は…

• 怪しいものではございません。

• 餌をあげると懐きます。

• 三食昼寝、ときどき仕事。

MODX Japan PR ManagerKei Mikage

Page 3: MODXで“超”キレッキレのブログ作る秘訣公開します

今日やること

Page 4: MODXで“超”キレッキレのブログ作る秘訣公開します

今日やること

オブジェクトストレージを使って、超高速な静的配信を行います。

ObjectStorage

Meny viewers.

Page 5: MODXで“超”キレッキレのブログ作る秘訣公開します

デモサイト

• MODX Japanのデモサイトで、実際にブログを触ることができます。

http://mng.demo.modx.jp/

Page 6: MODXで“超”キレッキレのブログ作る秘訣公開します

オブジェクトストレージ

知ってる人は手を上げて!

\(^o^)/

Page 7: MODXで“超”キレッキレのブログ作る秘訣公開します

オブジェクトストレージとは?

• クラウド上でファイル(オブジェクト)を管理・配信する為のストレージ。

• 例えば、一定のファイルサイズ内であれば、無限にファイルを管理する事が可能。

• 予測しないトラフィックに対処できる。(かもしれない)

Page 8: MODXで“超”キレッキレのブログ作る秘訣公開します

お話は戻って

• ブログシステムを自作する

–自分で実装すると、自分でメンテできる。

–自分で実装すると、自分に必要なブログシステムを使うことができる。

–政治的に動的コンテンツが配信できなくても(ry▲▲▲これ重要▲▲▲

Page 9: MODXで“超”キレッキレのブログ作る秘訣公開します

今日は3つのお話をします。

1. MODXでブログを作る

2. オブジェクトストレージに自動デプロイする

3. 静的コンテンツで出来るカスタマイズ

Page 10: MODXで“超”キレッキレのブログ作る秘訣公開します

About Kei Mikage.

• 御影けい ( Kei Mikage )

– MODX Japan PR Manager (広報担当)

–本職はインフラエンジニア→最近クラウドエンジニアに転職。

– 4歳のMacBookAirが居ます。

Page 11: MODXで“超”キレッキレのブログ作る秘訣公開します

MacBookAir 11inch Late2010

Core2Duo 1.4GHz / 4GB DDR2 / 128GB SSD / USKey

Page 12: MODXで“超”キレッキレのブログ作る秘訣公開します

MODXでブログを作る

MODX知ってる人

\(^o^)/きょーっしゅ!

Page 13: MODXで“超”キレッキレのブログ作る秘訣公開します

MODXは汎用CMS

• 割りとフツーのコンテンツを作るのが得意です。

• 「某ホームページビルダー」や、某ブログツールで「静的ページ」と「パーマリンク」しか使ってないサイトからの乗り換えにどうぞ。:)

Page 14: MODXで“超”キレッキレのブログ作る秘訣公開します

OSC発の個人サイト!(おんぷ村さん)

http://onpu-tamago.net/

Page 15: MODXで“超”キレッキレのブログ作る秘訣公開します

ねりこそ@なび(練馬子育てサイト)

http://nerima-kosodate.net/

Page 16: MODXで“超”キレッキレのブログ作る秘訣公開します

管理画面こんなの。

Page 17: MODXで“超”キレッキレのブログ作る秘訣公開します

其の一、ブログっぽくする。

Page 18: MODXで“超”キレッキレのブログ作る秘訣公開します

其の一、ブログっぽくする。

• サンプルサイトに、ブログっぽいテンプレート(HTML・CSS)をインストールします。

• 今回は、MODxDESIGN templatesより、「Aquatic template」を使います。http://modxd.com/aquatic-template.html

Page 19: MODXで“超”キレッキレのブログ作る秘訣公開します

其の弐、もっとブログっぽくする。

• 現在のテンプレートをカスタマイズして、よりブログに近くします。

– Pages

– Tag

– Archive

Page 20: MODXで“超”キレッキレのブログ作る秘訣公開します

其の弐、もっとブログっぽくする。

Page 21: MODXで“超”キレッキレのブログ作る秘訣公開します

其の弐、もっとブログっぽくする

Page 22: MODXで“超”キレッキレのブログ作る秘訣公開します

Dittoとは?

Ditto [ディット]

• MODX標準機能で、ページの内容を加工・横断検索する機能。

• Wayfinderがページの索引を作るのに対し、Dittoではページのサマリを作成する。

• 標準機能だけあって、かなり汎用的に使える。

Page 23: MODXで“超”キレッキレのブログ作る秘訣公開します

Dittoとは?

e.x.)

特定のフォルダ以下のコンテンツ(青色部分)を検索・ソートする事ができます。

Contents

Contents

Contents

Folder

Page 24: MODXで“超”キレッキレのブログ作る秘訣公開します

Dittoの適用例

• ページタイトルと、一部の本文を出力する。

• テンプレート変数の中から、特定の内容のものを検索する。

Page 25: MODXで“超”キレッキレのブログ作る秘訣公開します

其の参、RSSを出力する。

• RSSフィードを出力する事で、ブログの更新をPull配信により配信し、

新着記事の更新等をお知らせする事ができます。

• 今回はブログのフォルダに対し、更新情報を動的に生成します。

Page 26: MODXで“超”キレッキレのブログ作る秘訣公開します

やっぱりDittoで頑張る。

• Dittoは標準でRSSフィードを出力できる。

Page 27: MODXで“超”キレッキレのブログ作る秘訣公開します

RSSフィードの設定例

Page 28: MODXで“超”キレッキレのブログ作る秘訣公開します

RSSを出力するスニペットコール

• [[Ditto〜 - スニペット(PHPコード)を呼び出して、キャッシュする。

• &parents=`16` -ツリーの親になるフォルダのID

• &depth=`2` - 2階層までクロールする

• &hideFolders=`1` -フォルダを無視する

• &format=`rss` -出力形式をrssにする

• &summarize=`20` -本文を20文字で要約する

• &total=`20` -出力する件数を指定する

Page 29: MODXで“超”キレッキレのブログ作る秘訣公開します

ここまで頑張った結果

• HTMLコーダーでもブログを自作できる。

• HTMLコーダーでもブログを自作できる。

• HTMLコーダーでもブログを自作できる。

Page 30: MODXで“超”キレッキレのブログ作る秘訣公開します

• その他小技

–チャンク・スニペット

• チャンク –文字列のタグ化

• スニペット – PHPコードのタグ化

–チャンクのネスト

• チャンクを入れ子にすることで、更新を楽に!

–テンプレートの親子関係

Page 31: MODXで“超”キレッキレのブログ作る秘訣公開します

今回やってるコト

BLOG on MODX(コンテンツ生成)

オブジェクトストレージ(超高速配信)

Page 32: MODXで“超”キレッキレのブログ作る秘訣公開します

あれ、

Page 33: MODXで“超”キレッキレのブログ作る秘訣公開します

実はMODXって

Page 34: MODXで“超”キレッキレのブログ作る秘訣公開します

コンテンツジェネレータ?

Page 35: MODXで“超”キレッキレのブログ作る秘訣公開します

ぴんぽーん!

正解!

Page 36: MODXで“超”キレッキレのブログ作る秘訣公開します

MODXの3つの顔

• 半動的コンテンツ・マネジメント・システム

• コンテンツジェネレータ

• コンテンツ・マネジメント・フレームワーク(PHPフレームワーク+管理画面)

Page 37: MODXで“超”キレッキレのブログ作る秘訣公開します

MODXが『半動的』な理由

1. DBにアクセスしページを生成し、静的キャッシュします。この際、動的部分はキャッシュしません。

2. 静的キャッシュから動的部分を呼び出す為、DBへのトランザクションやリソースを消耗しません。

Page 38: MODXで“超”キレッキレのブログ作る秘訣公開します

最強のキャッシュ 『バイパスモード』

• MODXのサンプルページで、メモリ消費50KB!!!

• 動的コンテンツも強制的に静的キャッシュ。

• 但し、PUTリクエストの際は標準の処理。

Page 39: MODXで“超”キレッキレのブログ作る秘訣公開します

MODXの静的書き出し

• 実は、MODXには静的書き出し機能が存在します。

• 強引な独自実装ではなく、標準機能としてコアに実装されています。

Page 40: MODXで“超”キレッキレのブログ作る秘訣公開します

MODXの静的書き出し

Page 41: MODXで“超”キレッキレのブログ作る秘訣公開します

MODXの静的書き出し

• 書き出しの歳、文字列の置換を1組だけ設定する事が可能です。

• ここでは、生成サーバのURLと公開サーバのURLを置換します。

• もし出来る事であれば、あらかじめ相対パスでサイトを生成する事をお勧めします。(ファイル管理,TinyMCE, Wayfinder, Dittoの設定)

Page 42: MODXで“超”キレッキレのブログ作る秘訣公開します

MODXの静的書き出し

• 出力されたHTMLは、/[DocumentRoot]/temp/export以下に出力されます。

• /assets以下・/contents以下はコピーされない

ので、シェルスクリプトなどで適宜マージします。(アップロードスクリプト Ver.2参照)

Page 43: MODXで“超”キレッキレのブログ作る秘訣公開します

MODXの思想a Website

プログラミング

コンテンツ投稿

HTMLコーディング

Page 44: MODXで“超”キレッキレのブログ作る秘訣公開します

MODXの思想

HTML

動的コンテンツ(スニペット)

静的コンテンツ(チャンク)

(テンプレート・リソース)

MODXの基本は『タグの置換』

[[snippet]]

{{Chunk}}

Page 45: MODXで“超”キレッキレのブログ作る秘訣公開します

突然の姪浜梢さん登場!

Page 46: MODXで“超”キレッキレのブログ作る秘訣公開します

オブジェクトストレージ入門

• 一言で言うと、『ソフトウェアで作られたフラットなストレージ』

Page 47: MODXで“超”キレッキレのブログ作る秘訣公開します

オブジェクトストレージ入門

• 通常、階層(フォルダ・ディレクトリ)を用いて、ファイルを管理します。

• これを『ファイルシステム』と言います。よく言う、「FAT32」「NTFS」といったものです。

• そして、物理的なハードディスクないしSSDを、「ブロックデバイス」と呼びます。

Page 48: MODXで“超”キレッキレのブログ作る秘訣公開します

オブジェクトストレージ入門

• オブジェクトストレージでは、Key=Valueの形で、Valueがファイルになります。

• 例えば…「/path/too/filename.ext」がKeyになり、

ファイルの中身(バイナリ)はオブジェクトとして管理されます。

Page 49: MODXで“超”キレッキレのブログ作る秘訣公開します

オブジェクト(実体)

もふもふしたい!!!

キー/nekocafe/mike

オブジェクトストレージ入門

REST API

Page 50: MODXで“超”キレッキレのブログ作る秘訣公開します

オブジェクトストレージを使うと

• サイトを生成するサーバを止めておく事が出来る。(XAMMP等で構築してもOK!)

• TV露出やTw炎上でも耐えられる。(クレジットカードの課金を除く)

• 高い可用性のストレージを安価に使うことができる。

Page 51: MODXで“超”キレッキレのブログ作る秘訣公開します

今回の環境

• 主なサービスとして

– AmazonS3(AmazonWebServices)

– blob Storage(MicrosoftAzure)

–オブジェクトストレージ(ConoHa)

– さくらのBASE Storage(さくらインターネット・S3互換)

• 今回は例として、AmazonS3を使用します。

Page 52: MODXで“超”キレッキレのブログ作る秘訣公開します

AWS CLIをインストールする。(1/2)

• CentOS6.xの黒い画面で、以下をタイプします。

– % sudo rpm -ivhhttp://ftp.riken.jp/Linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm

– % sudo yum install python-pip -y

– % sudo pip install awscli• ※他OSの場合は適宜読み替えてください。

Page 53: MODXで“超”キレッキレのブログ作る秘訣公開します

AWS CLIをインストールする。(2/2)

$ sudo aws configure

AWS Access Key ID [None]: xxxxxxxxxxxxxxxxxxxx

AWS Secret Access Key [None]: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Default region name [None]: ap-northeast-1

Default output format [None]:

Page 54: MODXで“超”キレッキレのブログ作る秘訣公開します

ね、カンタンでしょ?

Page 55: MODXで“超”キレッキレのブログ作る秘訣公開します

アップロードスクリプトVer.1

• /var/www/html/temp/export/以下のファイルを、S3上に無条件に展開

• #!/bin/shaws s3 sync /var/www/html/temp/export/*

s3://buket/

Page 56: MODXで“超”キレッキレのブログ作る秘訣公開します

アップロードスクリプトVer.2

#!/bin/sh

TMP="/tmp/sync.tmp"

mkdir -p /var/www/html/temp/export/assets/templatesmkdir -p /var/www/html/temp/export/contentmkdir -p /var/www/html/temp/export/assets/plugins/sh/

/usr/bin/rsync -avq /var/www/html/assets/templates/* /var/www/html/temp/export/assets/templates//usr/bin/rsync -avq /var/www/html/content/* /var/www/html/temp/export/content//usr/bin/rsync -avq /var/www/html/assets/plugins/sh/* /var/www/html/temp/export/assets/plugins/sh/

cd /var/www/html/temp/export

NEW_HASH=`tar cf - ./* | sha1sum | awk -F" " '{print $1}'`OLD_HASH=`cat $TMP`

if [ "$OLD_HASH" != "$NEW_HASH" ]; then/usr/bin/aws s3 sync /var/www/html/temp/export/ s3://mikalab.info echo $NEW_HASH > $TMP

fi

Page 57: MODXで“超”キレッキレのブログ作る秘訣公開します

最近のMODX事情

Page 58: MODXで“超”キレッキレのブログ作る秘訣公開します

MODX、ついに9歳

2005.10.28 MODX 0.9.0 Release

Page 59: MODXで“超”キレッキレのブログ作る秘訣公開します

2015.10.28(水)

何かやっちゃう?

Page 60: MODXで“超”キレッキレのブログ作る秘訣公開します

元々、MODXは「Etomite」だった。

Page 61: MODXで“超”キレッキレのブログ作る秘訣公開します

Etomiteの経緯

• 最初は「SimpleCMS」という名前だった。

• SimpleCMS → Phese → Etomite

• Dreameaverの代替としての、シンプルなCMS。(当時は十徳ナイフのようなCMSが多かった)

• 2004.04.29 GPL化、公開開始。

• Version0.6の頃には、日本語ファイルもつくられる。

Page 62: MODXで“超”キレッキレのブログ作る秘訣公開します

EtomiteからMODXの経緯

• 2005年、Etomiteを開発していたアレックスは、コミュニティの動向やビジネス化の提案などがあり、モチベーションを失う。

• 丁度その頃、DocVar(今でいうテンプレート変数)がリリースされる。

• EtomiteへのコアハックはMODと呼ばれ、開発者が勝手に公開していた。

• これらバラバラに公開されていたMODを集約するよう、Ryanが動きかける。

Page 63: MODXで“超”キレッキレのブログ作る秘訣公開します

2004.11.26Etomite MOD-x1(勝手版)リリース

Page 64: MODXで“超”キレッキレのブログ作る秘訣公開します

Ryanってこういうひと

• MODX LLC代表

• テキサス州ダラス在住のふつーのお父さん。

Page 65: MODXで“超”キレッキレのブログ作る秘訣公開します

日本のMODXは?

Page 66: MODXで“超”キレッキレのブログ作る秘訣公開します

日本のMODXは?

• 主に5人の活動により、日本のコミュニティは支えられています。

–グローバルコミッター – 1名

–デザイナー – 1名

–サーバ管理者 – 2名

–アンバサダー – 3名

–広報・雑務担当 – 1匹

Page 67: MODXで“超”キレッキレのブログ作る秘訣公開します

日本のMODXは?

• 主に5人の活動により、日本のコミュニティは支えられています。

–システムインテグレータ – 1名

–ウェブ製作 – 2名

– クラウドエンジニア – 1名

–銭湯の番台 – 1名

Page 68: MODXで“超”キレッキレのブログ作る秘訣公開します

おわりに

みんなMODXをもっと使ってね!

使ったら事例報告してくれると嬉しいな!^^v

Page 69: MODXで“超”キレッキレのブログ作る秘訣公開します

おわり

Page 70: MODXで“超”キレッキレのブログ作る秘訣公開します

スーパー

質問タイム

Page 71: MODXで“超”キレッキレのブログ作る秘訣公開します

超スーパー

質問タイム

Page 72: MODXで“超”キレッキレのブログ作る秘訣公開します

ご清聴ありがとうございました。

Page 73: MODXで“超”キレッキレのブログ作る秘訣公開します