Google Cloud Engineを使って無料でWordPressを立ち上げる方法

この記事は約 20 分で読めます

どうもこんにちは、如月翔也(@showya_kiss)です。
 今日は昨日の記事の続きで、昨日Google Cloud Engineを使って立ち上げたVMにDockerというコンテナ技術を使ってWordPressを立ち上がるまでのガイドをしたいと思います。
 これを使う事でWordPressの無料サーバーを持てる上に、今回の方法を使うとWordPressをSSL化させる事ができる上、このSSLを使うために使うLet’s Encryptというサービスは3ヶ月毎に更新しなければならないサービスなんですが、その更新も自動でやってくれるので、ほぼメンテなしでSSLのWordPressが持てるという事になります。

今回の記事では、昨日の記事の手続きに従ってGoogle Cloud EngineのVMの立ち上げが済んでいる事、そして独自ドメインを持っており、そのDNSをGoogle Cloud EngineのIPアドレスに紐付けられている事が前提になります。
 今回の記事はコピペで済む部分が結構あるんですが、Google Cloud Engineを使う都合上どうしてもViという面倒くさいエディタを使わないといけないので、Viの簡単な使い方についても触れようと思います。
 ただ、Viってかなり癖が強いエディタなので、面倒くさい人はコピペの方法だけ覚えでコピペで片付けた方が楽かも知れません。

まずGoogle Cloud EngineにブラウザからSSHで接続を行う

まずGoogle Cloud Engineで色々サーバーをいじるには、ブラウザからSSHという接続方法を使ってサーバーに接続する必要がありますので、そこからやっていきます。

https://cloud.google.com/compute?hl=jaにアクセスし、必要があればGoogleアカウント名とパスワード、二段階認証で認証を通り「Compute Engine」の画面を開きます。
 画面が開いたら「コンソールへ移動」をクリックすると新しい画面が開き、「VM インスタンス」の画面が表示されるので、使うヴァーチャルマシンの欄にある「SSH」をクリックします。
 すると新しい画面が開いて「承認」という画面が出ますので「Authorize」をクリックするとサーバー画面が開きます。
 普段サーバーをいじっている人ならSSH接続でおなじみの画面ですが、知らない人は知らない画面なので、驚かないで見て下さい。

WordPressを入れるためのDockerをインストールする

SSH接続ができたら、まず今回はDockerというコンテナ技術を使ってWordPressをインストールするので、Dockerをインストールする準備をします。
 Dockerについて話すと長いのですが、今回の都合で言うと、WordPressをインストールするには色々なサービスをインストールしないといけないんですが、いちいちインストールするのが面倒なのと、いちいちサービスを管理するのが面倒くさいので「ひとまとめにして」(これをコンテナ技術と言うと考えて頂ければ大きな問題はないです)インストールしたり管理したりしたいので、「ひとまとめにする」方法としてDockerをインストールする、という事になります。
 まずは準備段階からです。
 SSHの接続画面でカーソルが点滅していると思うので、次のコードをコピペしてエンター・リターンを打って下さい。
sudo apt-get update
 打ち込んでからちょっと時間が経って、最終的に「done」と出ます。これでオーケーです。
 これはapt-getというパッケージマネージャを最新の情報に変更するというコマンドなんですが、ただの呪文だと思って貰って構わないです。
 最終的に「done」が出ればいいので、次は次のコードをコピペしてエンター・リターンを打って下さい。コードは複数行になっていますが。全部選択して一気に貼り付けてエンターして下さい。


sudo apt-get install \
ca-certificates \
curl \
gnupg \
lsb-release

おそらくRemoveしろ的なエラーが出ますが気にしなくていいです。これでインストールされているプログラムが一部アップデートされるので、それによってより最新のプログラムが使えるようになります。
 そのまま続いて次のコードをコピペしてエンターして下さい。
sudo mkdir -p /etc/apt/keyrings
 今回はエンターしても何も出ないと思います。これはディレクトリ(いわゆるフォルダ)を掘るコマンドです。何も出ないという事は成功しているのでそのまま次のコードをコピペして下さい。
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
 長いコードですが一行です。これもエンターしても何も出てこないと思います。正式には他のサーバからデータを持ってくる処理をしているんですが、基本的にエラーが起こらないので何も表示されずに終わるはずです。
 それが終わったら次のコードをコピペしてエンターします。複数行ですが一気にコピペして下さい。


echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

これもエンターしても何も出ないと思います。処理としてはさっき他サーバーから持ってきたデータを展開しています。
 エラーを起こすコマンドではないので何も出ないと思います。
 次に次のコードを実行します。先程実行したコードと同じコードですが、それを実行した後に新しいプログラムが入っている可能性があるのでそれを更新するコードです。
sudo apt-get update
 これは何秒か待たされ、画面も更新されて最終的に「Done」になると思います。そうなれば成功です。
 続いて次のコードをコピペします。
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
 これはDockerという仕組みをインストールする作業を指示するコードです。処理の途中で「Do you want to continue」と聞かれるので「Y」を押してエンターして下さい。
 結構長めに待たされた上で「Daemons usind outdated libraries」というOS画面が出るので、そのままエンターを押して下さい(これはUbuntu側で出ているもので、平たく言うとデータが更新されたので読み直しますか、と聞かれているのでOKを押しているだけです)。
 最終的に操作可能な状態に戻ってくるので、これでDockerのインストールは完了です。
 本当にインストールできているか心配な人は次のコードを打って確認してみて下さい。
sudo docker version
 これでエラーが出ずに何かのバージョンが表示されれば問題なくインストールが終わっています。

SSLで接続できるようにする準備をする

WordPressをインストールする前に、サーバがSSLで通信できるように設定します。
 nginx-proxyとletsencrypt-nginx-proxy-companionを利用します。これは簡単なコマンドでインストールが可能です。これらを使うとサーバーでSSL通信ができるようになる上、SSL化に必要なサービスを自動更新してくれるので便利です。
 次の手順に従います。
git clone https://github.com/shipwebdotjp/nginx-proxy.git
 このコードはGitという仕組みを使ってサーバ上に置かれているコードの集合体をコピーしてくるコマンドです。特にエラーなどは起こらずいくつか行が出力された後にコマンド権が戻ってくると思うので次のコマンドを実行します。
sudo docker network create nginx_net
 このコードはDockerで新しい「ひとまとめ」を作るコマンドです。入力してエンターすると意味の分からない文字列が出力されると思うので、それが出力されれば成功です。次のコードを入力します。
cd nginx-proxy
 これはOS上で自分のいるディレクトリ(フォルダ)を移動するコマンドです。
 今まで表示されていたコマンドの入力部分に「nginx-proxy」が追加されたと思います。そうなれば成功なので次のコマンドを入力します。
sudo docker compose up -d --build
 これはDockerで実際に動くプログラムを組む命令なので、結構な時間がかかります。
 最終的に「Started」という行が2つ出力されて命令権が戻ってくると思うので、そうなったらサービスが動いた証拠なので成功です。
 とりあえずこれでサーバーがSSLで通信できるようになりました。

WordPressをインストールする

では、ついにWordPressをインストールする順番になりました。
 これ自体は難しくないので、順を追ってコピペして行って下さい。
cd $pwd
 このコマンドは現在ディレクトリ(フォルダ)を変更するコマンドです。処理を行うディレクトリに移動しています。
 次にこのコードを実行します。
git clone https://github.com/shipwebdotjp/docker-wordpress.git wp
 Gitという仕組みを使って、自分のwpというディレクトリにインターネット上からのファイルを持ってくるコマンドです。
 次に作業ディレクトリに移動するため以下を入力します。
cd wp
 これで今いるディレクトリの下にある「wp」ディレクトリに移動します。

ここからはWordPressに関わる設定ファイルを触っていきます。
 まず、WordPressからメールが送られる場合に使うSMTPサーバの設定を行います。
 最初に設定ファイルをコピーします。
mv postfix/.env.sample postfix/.env
 そして実際に設定ファイルを編集します。次のコマンドを入力する前に、その下の文章を読んで、先に設定する部分を確認して下さい。このコマンドを打ち込むとviというエディタが立ち上がり手も足も出なくなる可能性があります。
vi postfix/.env
 変えなければならない点は3つだけです。
・8行目:SMTP_USERNAME=あなたのGmailアドレス
・11行目:SMTP_PASSWORD=あなたのGmailのパスワード
・14行目:SERVER_HOSTNAME=あなたの使う独自ドメイン
 viが立ち上がると上下左右キーで移動できますが、いざ書き換えようとすると書き換えられません。まず「a」キーを押すと書き換えられるモードに変更になるので「a」キーを押して書き換えモードにして(画面下に –INSERT– と表示されて入力モードになっている事がわかります)、書き換える部分に移動してから書き換えます。
 現状書き換えるのは3点、注意点はSERVER_HOSTNAMEは「subdomain.domain.com」形式で記入する事で、http://もhttps://も入れなくていい点です。
 全部入れたら「esc」キーを押して編集モードを解除します。
 すると画面下に書かれていた「–INSERT–」が消えるので、キーボードで「:w」を入力します。
 すると画面下に「:w」と表示されるのでエンターし、それでファイルが上書きされるので、そのまま今度は「:q」を入力し、それが画面下に表示されたのを確認してエンターを押すとviが終了してコマンド画面に戻ってきます。

次にメール送信の設定ファイルを書き換えます。次のコマンドを実行します。
mv wordpress/msmtprc.sample wordpress/msmtprc
 このコマンドで設定ファイルをコピーしています。次にこのコマンドでviを立ち上げ設定を書き換えます。
vi wordpress/msmtprc
 viが立ち上がり設定ファイルの中身が見えるので、上下左右キーで最後の行の最後に移動し、「a」キーを押して入力モードにし(画面下に –INSERT– と表示されます)、最後の文字の後にエンターを押すと行が追加できるので、追加した行に次の内容を入力します。
・from あなたのGmailのアドレス
 入力が終わったら「esc」キーを押して編集モードを解除します。
 すると画面下に書かれていた「–INSERT–」が消えるので、キーボードで「:w」を入力します。
 すると画面下に「:w」と表示されるのでエンターし、それでファイルが上書きされるので、そのまま今度は「:q」を入力し、それが画面下に表示されたのを確認してエンターを押すとviが終了してコマンド画面に戻ってきます。

設定ファイルの最後として、ドメイン名でHTTPSのアクセスができるようにするためにDockerのファイルに設定を入力します。
 次のコマンドを入力します。
vi docker-compose.yml
 書き換えるのは以下です。
・VIRTUAL_HOST: あなたの独自ドメイン名
・LETSENCRYPT_HOST: あなたの独自ドメイン名
・LETSENCRYPT_EMAIL: admin@あなたの独自ドメイン名
 まず「a」キーを押すと書き換えられるモードに変更になるので「a」キーを押して書き換えモードにして(画面下に –INSERT– と表示されて入力モードになっている事がわかります)、書き換える部分に移動してから書き換えます。
 現状書き換えるのは3点、注意点は独自ドメイン名は「subdomain.domain.com」形式で記入する事で、http://もhttps://も入れなくていい点です。
 全部入れたら「esc」キーを押して編集モードを解除します。
 すると画面下に書かれていた「–INSERT–」が消えるので、キーボードで「:w」を入力します。
 すると画面下に「:w」と表示されるのでエンターし、それでファイルが上書きされるので、そのまま今度は「:q」を入力し、それが画面下に表示されたのを確認してエンターを押すとviが終了してコマンド画面に戻ってきます。
 これで設定ファイルは全部修正が終わりました。
 後はDockerを使ってWordPressを動かすだけです。
 本当にセキュアにやりたい場合、今触っている設定ファイルで各データベース名やパスワードを書き換えるべきなんですが、それは大変なのと、将来的にWordPressがわかったら書き換えればいいので今回は詳しい設定についてはパスします。

Dockerを使ってビルド&コンテナ作成&実行

設定ファイルが全部終わったので、Dockerを使ってWordPressの「ひとまとめ」を作ります。
 次のコマンドを実行します。
sudo docker compose up -d --build
 これはかなり待たされるのでゆっくり休憩するといいでしょう。
 画面も凄く流れますが、基本的に今までちゃんとやってきたのであればエラーは出ないので安心して待っていて下さい。
 最終的に「Started」が4つ並んでコマンド権が戻ってきたら作業完了です。

しばらく待ってから「https://あなたの独自ドメイン」にWebブラウザからアクセスすると、WordPressの設定画面が表示されるはずです。
(もしブラウザで「危険な接続」が表示される場合、SSLの反映が遅れているだけなのでしばらく待てば反映されて接続されるようになります。しばらく経っても接続できなければブラウザのハードリロードを試してみて下さい)
 ここからは普通にWordPressを使えば大丈夫です。作業お疲れ様でした!

セキュアにWordPressを立ち上げるのに必要な変更点

この記事の方法でWordPressを立ち上げると、MySQLのパスワードやWordPressそのもののパスワードが固定なので危ない部分があり、本当にちゃんとしたWordPressを立ち上げたいのであれば設定をちゃんと変更したほうが安全です。
 変更点としては、Dockerのビルド&コンテナ作成&実行の前のvi docker-compose.ymlの段階で、以下項目を書き換える事をおすすめします。
・MYSQL_DATABASE
・MYSQL_USER
・MYSQL_PASSWORD
・WORDPRESS_DB_NAME
・WORDPRESS_USER
・WORDPRESS_PASSWORD
 ちなみに上記項目は同じファイルの中に複数出ている場合があるので、その場合同じものを設定しなければなりません。
 この項目を変更しておくと簡単にはハックされないのでかなり安全なWordPressを構築できるので、余裕があればこちらの項目も変更しておくことをおすすめします。

この記事を書いた人 Wrote this article

如月翔也 男性

如月翔也です。ガジェットとAppleが大好きな中年男です。ガジェットがお好きな方、Appleがお好きな方、トラブルでお困りの方はぜひブログをごらん下さい。コメントを貰うと非常に喜ぶのでお気軽にコメントをお願いします。  詳細なプロフィールは「https://saigetudo.com」を御覧ください!