SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

ツールがなくてもサーバー構築でたじろがない! 一撃シェルスクリプト道場

WordPressとnginx+MySQL+memcached+wp-cliをインストールする一撃シェルスクリプト

ツールがなくてもサーバー構築でだじろがない! 一撃シェルスクリプト道場 最終回

  • X ポスト
  • このエントリーをはてなブックマークに追加

ダウンロード ICHIGEKI (9.5 KB)

memcachedのインストールと各デーモンの起動

 次に、memcachedのインストールを行い、各デーモンを起動し、OS再起動後も自動起動するようにします。

yum -y --enablerepo=remi install memcached

systemctl start memcached.service
systemctl enable memcached.service

systemctl start php-fpm.service
systemctl enable php-fpm.service

systemctl start nginx.service
systemctl enable nginx.service

 

WordPressダウンロード、初期設定、インストール、OS再起動

 おまたせしました。ようやくwp-cliの出番です。wp-cliは、次の順に処理が続行します。

  1. WordPressのダウンロード
  2. WordPressの設定ファイルの生成
  3. WordPressのインストール

 ドキュメントルートのディレクトリはすべてユーザー、グループともnginxにしてあるため、nginxユーザーにスイッチしてwpコマンドを起動します。nginxユーザーはログイン可能なシェルを持たないユーザーなので、--shell=/bin/bashを引数に与えて実行します。

 wp-cliは、ドキュメントルート(wp-config.phpを配置するディレクトリ)にcdして実行するか、--path=<ドキュメントルートのディレクトリ>を引数に付け忘れないようにしましょう。

WordPress ダウンロード

 ドキュメントルートにWordPressをダウンロードします。引数に--locale=jaを付けることで、日本語版のWordPressをダウンロードすることができます。

su - nginx --shell=/bin/bash \
--command="${WP} core download --locale=ja --path=${VHDIR}/"

 

WordPress 設定ファイル生成

 次に、wp-config.phpを生成します。ここでは引数にDB名、DBユーザー名、DBのパスワードを指定します。最後にヒアドキュメントでdefine('FS_METHOD', 'direct');を付け加えています。これには、プラグインやテーマをダウンロードする際にFTP接続情報を求められないようにするという目的があります。

su - nginx --shell=/bin/bash \
--command="${WP} core config \
--dbname=${DBNAME} \
--dbuser=${DBUSER} \
--dbpass=${DBUSERPW} \
--path=${VHDIR}/ \
--extra-php <<PHP
define('FS_METHOD', 'direct');
PHP"

 

WordPress インストール

 最後にブログのURL、ブログのタイトル、ブログ管理画面のユーザー名とパスワード、ブログ管理者のメールアドレスを設定し、WordPressをインストールします。

su - nginx --shell=/bin/bash --command="${WP} core install \
--url=${VHOST} \
--title=\"${BLOGTITLE}\" \
--admin_user=${BLOGADMIN} \
--admin_password=${BLOGPW} \
--admin_email=${ADMINMAIL} \
--path=\"${VHDIR}/\""

 

OSの再起動

 ここまでできたら、OSを再起動します。

systemctl reboot

 

ブラウザからブログを確認する

 それでは、rootユーザーでsshログインし、ホームディレクトリに「BLOGPARAM.txt」を置いて一撃シェルスクリプトを実行してみましょう。

# cat BLOGPARAM.txt
BLOGTITLE="ぬるぽぽぽ"
BLOGADMIN=ichigeki
BLOGPW=Bl0Gp@SsW0rD
ADMINMAIL=hamada@example.com
VHOST=www.example.com

# sh ./ICHIGEKI

 こうして一撃構築されたサーバーの再起動後、ブラウザで見てみた結果が図1です。左上のタイトルが、BLOGPARAM.txtで設定したとおり「ぬるぽぽぽ」になっていることがお分かりいただけたかと思います。

図1:一撃構築されたサーバーの再起動後、ブラウザで見てみた結果

 

 それでは、別のサーバーを用意して、BLOGPARAM.txtなしで一撃シェルスクリプトを実行してみましょう。

# cat ICHIGEKI | egrep ^D_
D_BLOGTITLE=\"Example\ Blog\ Title\"   # For BLOGTITLE
D_BLOGADMIN=ichigeki                   # For BLOGADMIN
D_BLOGPW=Bl0Gp@SsW0rD                  # For BLOGPW
D_ADMINMAIL=hamada@example.com         # For ADMINMAIL
D_VHOST=www.example.com                # For VirtualHost

# sh ./ICHIGEKI

 実行すると、図2のようにデフォルトのタイトルで表示されます。

図2:BLOGPARAM.txtなしで一撃シェルスクリプトを実行

 

 それでは、BLOGPARAM.txtを用意して一撃シェルスクリプトを実行した時のログ(sh -xを付けて実行しました)から、wp-cliの設定した部分を見てみましょう。

+ su - nginx --shell=/bin/bash '--command=/usr/local/bin/wp core download --locale=ja --path=/home/vhosts/www.example.com/public_html/'
Downloading WordPress 4.2.2 (ja)...
Success: WordPress downloaded.
+ su - nginx --shell=/bin/bash '--command=/usr/local/bin/wp core config --dbname=wpdb0001 --dbuser=user0001 --dbpass=******** --path=/home/vhosts/www.example.com/public_html/ --extra-php <<PHP
define('\''FS_METHOD'\'', '\''direct'\'');
PHP'
Success: Generated wp-config.php file.
+ su - nginx --shell=/bin/bash '--command=/usr/local/bin/wp core install --url=www.example.com --title="ぬるぽぽぽ" --admin_user=ichigeki --admin_password=******** --admin_email=hamada@example.com --path="/home/vhosts/www.example.com/public_html/"'
Success: WordPress installed successfully.

 このように、それぞれの処理の後に「Success:」と表示されていれば、処理は成功しています。

次のページ
WordPress運用にwp-cliを使ってみる

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
ツールがなくてもサーバー構築でたじろがない! 一撃シェルスクリプト道場連載記事一覧

もっと読む

この記事の著者

濱田 康貴(ハマダ ヤスタカ)

サーバーエンジニアとして主にLinuxのWEBサーバーを設計、構築、運用を行っています。運用ツールの相棒としてシェルスクリプトやワンライナーは心強いパートナーと信じて疑わず、ブログでTIPSを公開しています。2009年5月のUSP友の会活動開始より参画し、現副会長。最近では、USP友の会で「一撃サーバー構築シェルスクリプト勉強会」を開催しているほか、日本で唯一のシェルスクリプト総合誌『シェルスクリプトマガジン』(毎月25日発売)で、隔月(偶数月号)連載「教えて先輩 サーバー運用お助けTips」を執筆しています。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/8703 2015/06/02 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング