Cloud9にWordpressをインストールしてみる(作業時間5分:自動構築スクリプト付)

Cloud9にWordpressをインストールしてみます。
作業フローとしては、
1. 新規environmentの作成
2.シェルスクリプトの作成
3.シェルスクリプトの実行
4.アプリケーションの起動
となります。

1.新規environmentの作成

ダッシュボードより「Create environment」を実行します。

environmentの名称を入力します。

environmentの動作するサーバを設定します。
EC2を使用する場合は、コスト削減のため30分以上触らない状態で停止するように設定します。

environmentの作成を完了します。

2.シェルスクリプトの作成

新規ファイルを作成して次のコードを貼り付けます。
パスワードやデータベースの名称等を構築する環境に応じて書き換えます。

#!/bin/sh

CPATH=`pwd`
ROOT_PASSWORD=rootのパスワードに書換
DB_NAME=作成するデータベースの名称に書換(ハイフン、バックスラッシュは使わないでください)
WP_USER=作成するデータベースの管理ユーザ名に書換
WP_USER_PASSWORD=作成するデータベースの管理ユーザのパスワードに書換
TABLE_PREFIX=作成されるデーブル名の共通する頭文字に書換(例: wp0001_)

echo "WordPressをダウンロードしています"
wget https://ja.wordpress.org/latest-ja.zip
unzip latest-ja.zip
rm -rf latest-ja.zip

echo "Mysqlの初期設定を開始します"
sudo service mysqld start

mysql -u root --password= -e "
    UPDATE mysql.user SET Password=PASSWORD('${ROOT_PASSWORD}') WHERE User='root';
    DELETE FROM mysql.user WHERE User='';
    DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1');
    DROP DATABASE test;
    DELETE FROM mysql.db WHERE Db='test' OR Db='test\\_%';
    FLUSH PRIVILEGES;"

echo "Wordpress用のデータベース設定を開始します"

mysql -u root --password=${ROOT_PASSWORD} -e "
	CREATE USER '${WP_USER}'@'localhost' IDENTIFIED BY '${WP_USER_PASSWORD}';
	CREATE DATABASE ${DB_NAME};
	GRANT ALL PRIVILEGES ON ${DB_NAME}.* TO '${WP_USER}'@'localhost';
	FLUSH PRIVILEGES;"

echo "wp-config.phpの設定を開始します"
rm ${CPATH}/wordpress/wp-config.php
cat << EOF > ${CPATH}/wordpress/wp-config.php
<?php
/** WordPress のためのデータベース名 */
define('DB_NAME', '${DB_NAME}');
/** MySQL データベースのユーザー名 */
define('DB_USER', '${WP_USER}');
/** MySQL データベースのパスワード */
define('DB_PASSWORD', '${WP_USER_PASSWORD}');
/** MySQL のホスト名 */
define('DB_HOST', 'localhost');
/** データベースのテーブルを作成する際のデータベースの文字セット */
define('DB_CHARSET', 'utf8');
/** データベースの照合順序 (ほとんどの場合変更する必要はありません) */
define('DB_COLLATE', '');

$(eval curl https://api.wordpress.org/secret-key/1.1/salt/)

/**#@-*/

/**
 * WordPress データベーステーブルの接頭辞
 *
 * それぞれにユニーク (一意) な接頭辞を与えることで一つのデータベースに複数の WordPress を
 * インストールすることができます。半角英数字と下線のみを使用してください。
 */
\$table_prefix  = '${TABLE_PREFIX}';
define('WP_DEBUG', false);

/* 編集が必要なのはここまでです ! WordPress でブログをお楽しみください。 */
/** Absolute path to the WordPress directory. */
if ( !defined('ABSPATH') )
	define('ABSPATH', dirname(__FILE__) . '/');
/** Sets up WordPress vars and included files. */
require_once(ABSPATH . 'wp-settings.php');

EOF

echo "後始末を開始します"
chmod 400 ${CPATH}/wordpress/wp-config.php
mv wordpress/* ./
rm -rf wordpress

echo "環境構築が完了しました"

シェルスクリプトでは
1.Wordpressの最新版のダウンロードと解凍
2.MySQLの初期設定
3.Wordpress用のデータベース設定
4.wp-config.phpの作成
が行われます。
名前を付けて保存します。(例:wordpress_install.sh)

3.シェルスクリプトの実行

シェルスクリプトのパーミッションを変更し実行します。

chmod 700 wordpress_install.sh
./wordpress_install.sh

4.アプリケーションの起動

アプリケーションの起動を行い動作確認を行いましょう。


プレビューで確認を行います。

「データベース接続エラー」となる場合は、設定したパスワードやデータベース名称に問題ある可能性があります。
一旦evnironmentを削除して最初から構築してみてください。

作成したいブログの内容に応じて記入していきます。

5.まとめ

Cloud9でのWordpressのインストールですが思ったより手間取りました。
シェルスクリプトを作ることで大分省力化できたと思います。
本番はモノづくりなので環境構築は楽したいですね。

この記事が気に入ったらサポートをしてみませんか?