WordCamp Osaka 2012に行ってきたよ+LTで話しをしてきた

nogajun
nogajun

_

tDiaryを10年も使ってますが、WordPressのカンファレンス「WordCamp Osaka 2012」があったので行ってきましたよ。

で、遊びに行くなら話もしたいよねと思ったのでLTに申し込んだのですが、スライドを直前まで作ってて、朝、起きられませんでした…。orz

ということでお昼から参加したのですが、人多い! 話しによると1000人申し込み、用意したトートバッグ900全部が捌けたという事で900人以上来てたということだそうです。ひえー! OSC京都より多いじゃん!

で、セッションですが見たいと思っていたのが小さい部屋のものばかりで入れず見れなかったので、まともに見たものと言えば、基調講演の「WordPress 対談 〜大阪・日本の WordPressを語る!〜」ぐらい。それも1階の中継で。

マクラケン直子さんの話しは、公開されたスライドでは分かりにくいのですが、WordPressコミュニティとその歩みはとても面白かったので、どこかで映像公開されないかな?

ほかには「文系デザイナーでも大丈夫!レスポンシブWEBサイトをWordPressで作ってみよう」を見てたけど、次にLTがあるので途中で抜けて準備をしてたので最後まで見られずじまい。とほほほ。

_ WordCamp Osaka 2012 LT「DebianとWordPressでハッピーになろう!」のスライドと補足

そんな状況でしたが、ライトニングトーク(LT)はきちんとやってきましたよ。ということでスライドです。

通常のLTと違ってセッティング込みの3分30秒という、かなり厳しい状況だったのですが、ひとまずしゃべり切りましたが、説明をはしょったので少し補足をしておきます。


Debianってなんですか(スライド3枚目)

Debian -- ユニバーサルオペレーティングシステム」と「Debian JP Project 」をどぞー。

そしてWordPress.comが毎秒70000リクエスト、毎秒15Gbit超のトラフィックをNGINXとDebianでさばいている話しはこちらをどぞー。

Overall WordPress.com is serving about 70,000 req/sec and over 15 Gbit/sec of traffic from its NGINX powered load balancers at peak, with plenty of room to grow. Hardware configuration is Dual Xeon 5620 4 core CPUs with hyper-threading, 8-12GB of RAM, running Debian Linux 6.0. As part of high availability setup WordPress.com previously used Wackamole/Spread but has recently started to migrate to Keepalived. Even distribution of inbound requests across NGINX-based web acceleration and load balancing layer is based on DNS round-robin mechanism.


WordPressのインストール(スライド7枚目)

# apt-get install wordpress mysql-server

でインストールでWordPressをインストールすると、MySQLのrootパスワードを尋ねられるので設定します。

設定は3つ(スライド8枚目)

WordPressインストール後の3つの設定ですが、こんな感じで設定します。

0. ドキュメントを読みます

スライドに書いてませんが、まずはドキュメントを読みましょう。

# cd /usr/share/doc/wordpress/
# lv README.Debian

英語で「わからん!」という人も、とりあえずは「Quick setup」だけは読んでください。

Quick setup

Setup apache to point to /usr/share/wordpress. See the examples/apache.conf

Database and filesystem setup can be done with the help of a script in examples/setup-mysql. Beware: it assumes that you want to install your files in /srv/www/.

1. MySQLとサイトFQDNの設定

「管理スクリプトを叩くと」と書いていますが、どこにあるかというと、Quick Setupにも書いてあるように /usr/share/doc/wordpress ディレクトリの下に example ディレクトリがあり、そこにapacheの設定サンプルとMySQLの設定スクリプトがあります。

# cd examples/
# ls
apache.conf  setup-mysql.gz ←これ!

setup-mysql.gzはgzipで圧縮されているので展開してから実行します。 何もつけずに実行するとヘルプが出ます。

# gunzip setup-mysql.gz
# bash ./setup-mysql
./setup-mysql [-h | -d | -b] [-n NAME | -e DB Name] [-u MySQL user] [-t MySQL host] FQDN

Creates by default a Wordpress mysql configuration depending on required fully
qualified domain name(FQDN).

Options:
    -n name for the wordpress site; see also -e below
    -h help
    -d destroy and purge
    -b backup
    -u mysql username, will require password
    -t mysql server hostname, if unset localhost will be used
    -e existing empty mysql database name; will replace -n

Example: You want your blog to be served from http://blog.example.com
         for user 'wordpress'.

Then run:
sudo bash setup-mysql -n wordpress blog.example.com

BUGS: See ../TODO.Debian

ヘルプには -n でサイト名(=db名)、その後ろにドメイン名(FQDN)をつけて実行するようにと書いてあるので、そのように実行します。

# bash ./setup-mysql -n (サイト名) (ドメイン名)
PING (ドメイン名) (xxx.xxx.xxx.xxx) 56(84) bytes of data.
64 bytes from (ドメイン名) (xxx.xxx.xxx.xxx): icmp_req=1 ttl=64 time=0.048 ms

--- localhost ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.048/0.048/0.048/0.000 ms
/etc/wordpress/config-(ドメイン名).php written
Trying to create wp-content directory: /srv/www/wp-content/(FQDN)
Setting up permissions
Goto http://(ドメイン名) to setup Wordpress

MySQLの設定は終わりました。 メッセージにも書いてありますがWordPerssの設定などは以下のようになります。

  • 設定ファイル: /etc/wordpress/config-(ドメイン名).php
  • コンテンツなどが格納されるディレクトリ: /srv/www/wp-content/(ドメイン名)/;
    • サイト共通の設定(themes,plugins,languages)はシンボリックリンクで、実体は/var/lib/wordpress/wp-content/以下にあります。
2. 日本語の設定

日本語を利用するために /etc/wordpress/config-(ドメイン名).php の最後の行にWPLANGを追記します。 コマンドライン一発ではこんな感じ。

# echo "define('WPLANG', 'ja');" >> /etc/wordpress/config-(ドメイン名).php
3. Apacheの設定を追記

example/apache.confに設定が書いてあるので、それを元にApacheの設定をします。

まず、ページャなどでapache.confを開き必要な設定をコピーします。

# lv apache.conf

ドメイン名のルート直下でマルチドメインのサイトを利用する予定がなければ、一番最初に書いてある例を元にapacheの設定をおこないます。

# vi /etc/apache2/sites-available/(ドメイン名)

以下の内容を追記します。

NameVirtualHost *:80

<VirtualHost *:80>
UseCanonicalName Off
VirtualDocumentRoot /usr/share/wordpress
Options All

# wp-content in /srv/www/wp-content/$0
RewriteEngine On
RewriteRule ^/wp-content/(.*)$ /srv/www/wp-content/%{HTTP_HOST}/$1
</VirtualHost>

追記が終わればサイトを有効にして、ドキュメント通りモジュールを有効化。 そしてapacheを再起動します。

# a2ensite (ドメイン名)
# a2enmod rewrite && a2enmod vhost_alias && /etc/init.d/apache2 restart

以上でDebianパッケージを使ったWordPressのセットアップは終了です。 ブラウザでアクセスすればWordPerss自体のセットアップに入ります。


メリット・デメリット(スライド12枚目)

Debianパッケージを使うメリット・デメリットに「バーチャルホストを使った複数のWordPressサイトが作れて便利」と書きました。

DebianのWordPressパッケージは、異なったドメインのサイト(マルチドメイン)を一つのWordPressで簡単に運用できるようになっています。

方法は、

  1. setup-mysqlスクリプトで異なるdb名、ドメイン名を登録。
  2. Apacheの設定サンプル2番目、3番目を参考にしてそれぞれのドメイン名のバーチャルホストを設定。

この2つだけです。

Debianで設定するメリットは、WordPress上で頑張らなくてもできることです。 ということで、こちらもお試しください。