びぃえるくぅと。

ガラケーは打楽器。

Wordpressの自作テーマを作るためのお手軽ローカル環境が欲しい

やはり投稿間隔が空きますね。Yadex205です。

最近、Rubyを使う技術系のバイト始めました。 お陰様で今まで触れてこなかった技術的な内容がどんどん入ってきてて、楽しい反面理解がもう少しで追いつかなくなりそうです。

それとは関係ないのですが、某案件でウェブサイトを作ることになって、その時に悩んだことをとりあえずまとめてみます。

WordPressでサイトを作る

今まで僕が作ってきたサイトって完全に静的ページだけで構成されており、 CMSを使ってるぽくってもJekyllで無理矢理運用(しかもGithub Pages上)したりしていました。

今回は、大学のとある団体のウェブサイトを担当することになったのですが、

  • 定期的に行われる活動の報告を掲載する。
    → またJekyllで行けるか〜〜〜?
  • 大学のドメインを使いたいので大学が提供しているサーバーを使わざるを得ない。
    WordPressのっけるしかないじゃん〜〜〜。

ということで、WordPressを使ってウェブサイトを作ることになりました。 WordPress童貞はこれにて卒業になります。 そもそも以前、とあるサイトをJekyllとGithub Pagesで運用しているうちに更新作業がとても辛くなった経験があるので、 そろそろウェブサイトの制作作業とコンテンツの更新作業を分担する(記事更新は他の方が担当する)頃合いかなと思い、 今回の決断に至りました。

関係ないですが、ドメインが関係なかったとしてもTumblrは絶対に使わなかったと思います。あれはテーマの開発が面倒というか融通が利かないというか。。。

WordPressのテーマを制作する環境を整える

僕がウェブサイトを作る際には決まって

を導入しており、ECTのようなJSテンプレートエンジンとかSassのようなCSSコンパイラー(?)による処理を ソースファイルが更新されたら自動で行い、プロジェクト内のとあるディレクトリに整頓して配置するようにしていました。

また、どこからでもデザインを行えるようGitのリモートリポジトリをGitHubGitLabに作り、

$ git clone (省略)/project.git
$ cd project
$ npm install

すれば制作環境が他のマシンでもすぐ行えるようにしていました。

ところが。

WordPressはそれ自体を動かすのが面倒そう

WordPressを動かす方法を検索すると、LAMPという用語が飛び交っていておいおいという気持ちになります。 これだと全部のマシンでApache/NginxとMySQLPHPを入れなくてはいけないのか。。。

firegoby.jp

そんなことをしなくても、上記の記事のようにPHPのビルトインサーバーを使えば、ApacheやNginxを用意したり、 Webサーバー上でPHPCGIとして動かすためのphp-fpmを導入したりしなくても済みます。 もちろん本番環境では使えませんが、このように何かの開発を行うには持ってこいの機能ですね。

で、MySQLは入れなきゃいけないの?

WordPressは様々なデータを溜め込むのにデータベースが必須ですが、普通はMySQL(最近だとMariaDBも?)にしか対応していません。 MySQLとか、調べただけでも環境構築面倒そうですよね・・・。

dogwood.skr.jp

そこで、SQLiteという手軽なデータベースを導入します。Androidアプリケーションに標準でsqliteを使った機能が付いているくらい手軽です。 主にアプリケーションに埋め込まれて利用されるもので、サーバーを立ち上げるとかアカウントを作るとかいう作業がいらなくなります。

ただし上述の通りWordPressSQLiteには対応していないので、上記の記事の著者様が作られたsqlite-integrationというプラグインを組み込むことで 利用可能になり、WordPressinstall.phpを使ってインストールする際にデータベースの質問がされなくなります。

どうせならサイトの設定も自動化したい

以上で、'PHP'がインストールされていればひとまずWordPressが動く環境が整います。ですが、WordPress起動時にサイト名や管理者アカウントの設定が必要になります。 どうせならgulpとかシェルスクリプトで簡単に整えたいですよね。

http://wp-cli.orgwp-cli.org

WP-CLIというそのまんまなソフトウェアがあります。これをWordPressのインストールされているディレクトリで実行することで、サイトや管理者の設定はもちろん、 プラグインのインストールやテーマの変更などもこれ一つで行うことができます。

設定スクリプトを作りました

今まで書いた内容を雑にまとめたようなシェルスクリプトを、それこそ冒頭で述べた今回のウェブサイト制作の際に作っていたので、 汚いのですがGistとして公開しました。

お手軽WordPress環境構築スクリプト · GitHub

$ cd project_root
$ mkdir bin && cd bin
$ curl https://gist.githubusercontent.com/yadex205/c42e7ee8f08dbc30872f9a1f78261d23/raw/36f0467885b242c01d04ec1aa7ea47371f0cd061/init.sh -O
$ chmod +x init.sh
$ ./init.sh -u [サイトURL] -t [サイトタイトル] -n [管理者アカウント名] -p [管理者パスワード] -e [管理者email]

のような感じです。なおオプションをしていしない場合、適当なデフォルト値が設定されます。

最後に

ちなみに、上記のスクリプトGulpのタスクから呼べるようにし、さらにnpmのpackage.jsonpostinstallスクリプトとしてそのタスクを動くよう書いてやると、 npm initした際に一緒にWordPressもインストールしてくれます。僕はいまそうやってます。

ということでWordPressテーマを作るのに手軽な環境を整える個人的な方法をずらずらと書き、その処理を行うスクリプトも公開しました。

僕は今からPHPと格闘してきます。。。

Copyright © 2015 Yadex205