こんにちは。CTOの馬場です。
このエントリはGoogle Cloud Platform Advent Calendar 2014の18日目です。
濃いエントリばかりのなかで恐縮ですが、 カンタン方向に寄せて「クリックデプロイ」を使ってWordPressをインストールしてみます。
クリックデプロイでLEMPスタック(Linux, Nginx, MySQL, PHP)とphpMyAdminをインストールし、さらにWordPressをインストールします。
まずはブラウザでGoogle Cloud Consoleにアクセスします。 やりかたがわからないかたは Google Cloud Platformをはじめようチュートリアル #gcpja - インフラエンジニアway - Powered by HEARTBEATS を参考にしてください。
コンソールにアクセスしたらプロジェクトを選択(なければ作成)し、 計算処理 > クリック デプロイ
を選択します。
クリックデプロイ
ブラウザから、ソフトウェアをインストール済みのGCEインスタンスを起動できる仕組みです。
今のところ、割と個性的なプロダクトが多くラインナップされています。
WordPressを使うにはLEMPもしくはLAMP(Linux, Apache, MySQL, PHP)を使いましょう。私はNginxが好きなので今回はLEMPを使うことにします。
LEMPの枠の 移動
ボタンを押すと詳細画面に移動します。
ここでインストールの設定をします。
phpMyAdminが必要な場合はここでチェックを入れておきましょう。
なお DATA DISK TYPE
はSSDも選択できます。
詳細オプションを表示すると、所属させるネットワークや起動するインスタンスのインスタンス名prefixを指定できます。 ちょっとお試しなら特に変更する必要はないでしょう。
Deploy LEMP Server
ボタンを押すとデプロイが始まります。
デプロイの進捗はブラウザ上に表示され、随時更新されます。
ここでしばし待ちます。 インスタンスの起動は速いのですが、デプロイは少し時間がかかりました(今回は5分程度)。
完了したら画面がこのようになります。
ここで次に選ぶべきは Compute Engine Instance List
です。
うっかり Delete server
しないように気をつけてください。
これで起動は完了です!
インスタンス一覧から、今回起動した lemp-xxx-xxx
というインスタンスを選択しましょう。
ネットワーク
の HTTP トラフィックを許可する
にチェックをつけるとHTTPでアクセスできるようになります。
なお、この画面の一番上の SSH
ボタンを押すと、ブラウザからインスタンスにSSH接続できます。これはいい。
起動したインスタンスの中を見てみる
ログインして色々見てみます。
OSは Debian 7.7 (wheezy)
です。
指定したPersisttence Diskは /lemp
にマウントされています。
Nginxのドキュメントルートである /usr/share/nginx/www
は /lemp
へのシンボリックリンクになっています。
root@lemp-y5yg:~# lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 7.7 (wheezy)
Release: 7.7
Codename: wheezy
root@lemp-y5yg:~# cat /proc/mounts | grep ^/
/dev/disk/by-uuid/68c02a3a-9b6a-4dd0-b36b-6a93b5931ac0 / ext4 rw,relatime,user_xattr,barrier=1,data=ordered 0 0
/dev/sdb /lemp ext4 rw,relatime,user_xattr,barrier=1,data=ordered,discard 0 0
root@lemp-y5yg:~# df -h
Filesystem Size Used Avail Use% Mounted on
rootfs 9.9G 1.2G 8.3G 13% /
udev 10M 0 10M 0% /dev
tmpfs 171M 124K 171M 1% /run
/dev/disk/by-uuid/68c02a3a-9b6a-4dd0-b36b-6a93b5931ac0 9.9G 1.2G 8.3G 13% /
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 342M 0 342M 0% /run/shm
/dev/sdb 99G 188M 94G 1% /lemp
root@lemp-y5yg:~# ls -al /usr/share/nginx/www
lrwxrwxrwx 1 root root 5 Dec 18 00:00 /usr/share/nginx/www -> /lemp
起動しているのは MySQL、php-fpm、Nginxです。
root 6725 0.0 0.0 4184 732 ? S 00:00 0:00 /bin/sh /usr/bin/mysqld_safe
mysql 7052 0.1 2.4 363112 42988 ? Sl 00:00 0:00 \_ /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plug
root 7053 0.0 0.0 4092 636 ? S 00:00 0:00 \_ logger -t mysqld -p daemon.error
root 8503 0.0 0.2 140244 4896 ? Ss 00:00 0:00 php-fpm: master process (/etc/php5/fpm/php-fpm.conf)
www-data 8504 0.0 0.2 140244 4308 ? S 00:00 0:00 \_ php-fpm: pool www
www-data 8505 0.0 0.2 140244 4308 ? S 00:00 0:00 \_ php-fpm: pool www
root 8922 0.0 0.0 78412 1408 ? Ss 00:00 0:00 nginx: master process /usr/sbin/nginx
www-data 8924 0.0 0.0 78708 1720 ? S 00:00 0:00 \_ nginx: worker process
www-data 8925 0.0 0.0 78708 1720 ? S 00:00 0:00 \_ nginx: worker process
www-data 8926 0.0 0.0 78708 1720 ? S 00:00 0:00 \_ nginx: worker process
www-data 8927 0.0 0.0 78708 1720 ? S 00:00 0:00 \_ nginx: worker process
Nginxはパッケージの nginx-full
で、1.2.1でした。
root@lemp-y5yg:~# dpkg -l | grep -i nginx
ii nginx 1.2.1-2.2+wheezy3 all small, powerful, scalable web/proxy server
ii nginx-common 1.2.1-2.2+wheezy3 all small, powerful, scalable web/proxy server - common files
ii nginx-full 1.2.1-2.2+wheezy3 amd64 nginx web/proxy server (standard version)
PHPはパッケージの5.4.35でした。 php5-cli
は入っていないので php
コマンドはインストールされていません。
root@lemp-y5yg:~# dpkg -l | grep -i php
ii php5-common 5.4.35-0+deb7u2 amd64 Common files for packages built from the php5 source
ii php5-fpm 5.4.35-0+deb7u2 amd64 server-side, HTML-embedded scripting language (FPM-CGI binary)
ii php5-gd 5.4.35-0+deb7u2 amd64 GD module for php5
ii php5-mcrypt 5.4.35-0+deb7u2 amd64 MCrypt module for php5
ii php5-mysql 5.4.35-0+deb7u2 amd64 MySQL module for php5
ii phpmyadmin 4:3.4.11.1-2+deb7u1 all MySQL web administration tool
MySQLは5.5.40でした。
root@lemp-y5yg:~# dpkg -l | grep -i mysql-server
ii mysql-server 5.5.40-0+wheezy1 all MySQL database server (metapackage depending on the latest version)
ii mysql-server-5.5 5.5.40-0+wheezy1 amd64 MySQL database server binaries and system database setup
ii mysql-server-core-5.5 5.5.40-0+wheezy1 amd64 MySQL database server binaries
Listen Portは80, 3306です。HTTPSはデフォルトではセットアップされません。
root@lemp-y5yg:~# ss -ln
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 50 127.0.0.1:3306 *:*
LISTEN 0 128 *:80 *:*
LISTEN 0 128 :::22 :::*
LISTEN 0 128 *:22 *:*
設定ファイルをひと通り見てみましたが、特別にチューニングされている感じはありませんでした。
WordPressをインストール
それではいよいよWordPressをインストールします。 まずはブラウザでphpMyAdminにアクセスして、データベースとユーザを作成します。
ブラウザで http://グローバルIP/phpMyAdmin/ にアクセスしてください。もし接続できない場合にはインスタンス詳細画面で
ネットワーク
の HTTP トラフィックを許可する
にチェックがついているか確認してみてください。
ユーザ名は root
、パスワードはクリックデプロイのときに入力したものです。
ログインできたら データベース
を選択します。
今回は wordpress
という名前で作成しました。
次に 特権
に移動して新しいユーザを作成します。
これで準備は完了です。
次にSSHで作業します。先ほどのコンソールを開いて以下のコマンドを入力してください。
- rootユーザに昇格
- もともと配置されている
index.html
を削除 - WordPress(4.0.1-ja)をダウンロードして/tmpに解凍
- 解凍したファイルをwww-dataユーザ権限に変更
- ドキュメントルートにコピー
しています。
sudo su -
rm /usr/share/nginx/www/index.html
curl -kL https://ja.wordpress.org/wordpress-4.0.1-ja.tar.gz | tar zxf - -C /tmp
chown -R www-data:www-data /tmp/wordpress
cp -a /tmp/wordpress/* /usr/share/nginx/www/.
これでファイルの配置も完了です。
ブラウザで http://グローバルIP/ にアクセスしてください。
あとはウィザードに従ってインストールしていくだけです。おつかれさまでした!
注意事項1
OSのタイムゾーンが UTC+0:00
です。時刻指定公開などがいまいちうまく動かない感じがするときは、WordPressの設定でタイムゾーンを UTC +9:00
に変更してください。
注意事項2
WordPressの管理画面やphpMyAdminをそのままにしておくと狙われやすいので、接続元制限などのセキュリティ強化策を実施してください。 いまいちよくわからない・自信がない・プロに任せたい方は弊社までご用命くださいませ
まとめ
最先端の使い方をしなくてもGCPは便利ですよ!
ぜひご活用ください。