【初心者向け】GoogleCloudPlatformでWordPress構築【コピペでOK】

プログラミング

Google Cloud Platform(以下、GCP)を使い、ドメインの取得からWordPress(ワードプレス)の構築を初心者向けに解説していきます。

DNS設定やSSL(Let’s Encrypt)のインストールから証明書の自動更新までを、初めての方でもつまづかずに進められるように進めます。

(参考サイト)

GCPで爆速なWordPressを爆速で構築しSSL化する9手順
Google Cloud Platform(以下、GCP)を使い、WordPress(ワードプレス)のデプロイから、独自ドメインの紐づけ、FTPでのファイル操作、SSL(Let’s Encrypt)のインストールから証明 ...
GCP(Google Cloud Platform)でWordPressスタート - Qiita
Google Cloud Platform + WordPress のメリット確認スタート前にメリットを確認しておきます。心が戸惑うと良くないので!GCPは無料でいきなりWordPressを始め…

はじめに

  • サイト名が決まっており、ドメインが取得可能であること
  • GCPに登録して、有効済みであること(クレジットカード有効化)

ドメインの取得

サイトを載せる「ドメイン」を取得します。

どのサービスでもいいですが、「お名前.com」で取得をしています。

ドメインのサーバーについては基本は「利用しない」を選択。

登録年数については「1年登録」でいいと思います。(何年も続けるのが前もって決まっているなら3年や5年でも可)

会員登録と合わせて取得が完了したら次のステップへ

GCPの登録

Google Cloud Platform(GCP)にアクセスをして会員登録。

初回は「無料トライアル」が使えるので、90日間$30までは無料でサイト運営ができます。

ログインができたら、「新しいプロジェクト」を作成します。

わかりやすいようにドメイン名と同じ名称がおすすめです。

例)example-com

WordPressの導入

「Worepress」を選択。なければ上記から検索

選択すると少し待って、そのあとにWordpressのデプロイを選択。

  • Deploymentname:何でもいいですが、管理しやすいのでドメイン名を推奨
  • Zone:どこでも大丈夫ですが、東京であれば「asia-northeast1-a/b/c」のどれかがリージョンが近くて良い
  • Administrator e-mail address:管理者の自分のメールアドレスを入力

他は特に触らずにそのまま「デプロイ」ボタンをクリック。

少し待つと無事にWordPressがGCEのVMインスタンスに作成されるので、次のステップへ。

DNSで独自ドメインの設定

独自ドメインの設定が完了したら、DNSで独自ドメインの紐付け設定を行います。

GCPのサイドバーから「ネットワークサービス->Cloud DNS」を選択。

「ゾーンを作成」を選択。

ゾーン名とDNS名を入力するだけですが、ここでもわかりやすいようにドメイン名を推奨です。入力したら「作成」を選択。

そのときにNSサーバの情報が記載されているのでこちらをメモ。

ここでドメインを登録したレジストラ(この記事通りに進めている場合は、お名前.com)にログインして、DNS設定画面に進みます。

「その他」からネームサーバーを記載して、入力したら確認を選択。

次に「VPCネットワーク->外部IPアドレス」を選択して、種類が「静的」になっているかを確認する。もしなっていなければ、変更。

「CloudDNS」に戻って、先程の外部IPアドレスをレコードセットから登録する。

このとき、「example.com」と「www.example.com」のwwwなし/ありの2つを登録しておく。

追加をした結果、下記のようになっていれば問題ありません。

httpsにするためCertBotをインストール

httpsにするためには「SSL証明書」が必要になります。

CertBotはLet’s Encryptが提供してて、これを使えばSSL証明書の取得・更新作業が自動化出来るようになるため、今回はこちらを利用します。

「ComputerEngine->VMインスタンス」を選択して、先程作ったサーバにはいるためにはSSH接続のボタンをクリックします。

黒い画面が(コンソール)が立ち上がったら、Apacheサーバーに接続成功している状態です。

続いてCerbotをインストールするためのコマンドを実行していきます。このあたりはわからない人はおまじないだと思って、ひたすら1行ずつコピペしてEnterをしていただければ大丈夫です。

wget https://dl.eff.org/certbot-auto && sudo chmod a+x certbot-auto

CertbotにWebサイト用のSSL証明書を作成させるために、以下のコマンドを実行します。「example.com」の部分は自分のドメインに書き換えてください。

./certbot-auto certonly --webroot -w /var/www/html/ -d example.com -d www.example.com

インストールが続きますが、確認がでたら「Y(Yes)」か「A(Agree)」の求められているアルファベットを打ってEnterを押せば進みます。

完了したら上記のディレクトリをメモしておきます。

次に以下のコマンドで「default-ssl.conf」ファイルを編集していきます。

sudo nano /etc/apache2/sites-available/default-ssl.conf

default-ssl.confファイルの先頭に、次のコード行を貼り付けます。

<Directory /var/www/html/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>

次にdefault-ssl.confファイルの末尾に向かって下にスクロールします。 (マウス使えないのでキーボードの下矢印を使用)

既存の証明書が設定されている場合、横に「#(シャープ)」を置き、コメントアウトします。

そして、以下のコマンドで3つのSSL証明書ファイルへのパスを貼り付けます。必ず、「example.com」を自分のドメイン名に置き換えてください。

SSLCertificateFile "/etc/letsencrypt/live/example.com/cert.pem"
SSLCertificateKeyFile "/etc/letsencrypt/live/example.com/privkey.pem"
SSLCertificateChainFile "/etc/letsencrypt/live/example.com/chain.pem"

このコードを追加したら、ctrl + oを入力して変更を保存し、続いてctrl + xを押してホーム画面に戻ります。

http->httpsのリダイレクト設定

常にHTTPSで通信させる為には、Apacheサーバーを構成する必要があります。 これを行うには、wordpress.confファイルを編集します。このファイルには、以下のコマンドを実行してアクセスできます。(Apache2の場合)

sudo nano /etc/apache2/sites-available/wordpress.conf

以下の文章をコピーします。例のごとく「example.com」は自分のドメインに変更してください。

<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html

ServerName www.example.com
ServerAlias example.com
Redirect permanent / https://www.example.com/

<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/html/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost> 

コードをwordpress.confファイルに追加したら、ctrl + oを入力して変更内容を保存し、ctrl + xを押してwordpress.confファイルを保存します。

証明書の変更を有効にするには、以下にリストされている3つのコマンドすべてを実行して、Apacheサーバーを更新/再起動する必要があります。

1行ずつコピペ+Enterで実行していきます。

sudo a2ensite default-ssl
sudo a2enmod ssl
sudo service apache2 restart

サイトが表示されるか確認

ブラウザで、wp-adminダッシュボードへのURL(例:https://example.com/wp-admin)を入力します。

もしエラーが出てログインできない場合は、外部IP(例:https://111.11.11.11/wp-admin)からアクセスします。

WordPressダッシュボードから、「設定→一般」の順に移動し、https://のバージョンであなたの現在のドメイン名を置き換えます。(例:https://example.com/)

wwwの有無にかかわらず、ページの一番下までスクロールして「保存」ボタンをクリックします。

その後に、下記のパターンをブラウザに打ち込んでみて、すべて同じURLにアクセスできることを確認します。(リダイレクトされるのを確認する)

もし、これでアクセスが確認できなかった場合、VMインスタンスで該当の詳細から「HTTPSトラフィックを許可する」にチェックをいれて保存してみてください。

SSLの自動更新設定

Let’s Encryptの有効期限は3ヵ月と決まっているので、証明書の自動更新を設定します。

sudo mv certbot-auto /etc/letsencrypt/
ls /etc/letsencrypt/

上記を打ち込んで、下記のように表示されていれば、ファイルの移動は完了しています。

次にcrontabを編集します。

sudo crontab -e

sudo crontab -eコマンドを実行すると、crontabファイルを開くことができますので、下部にスクリプトを追加します。このスクリプトは週に1回実行され、SSL証明書が期限切れになると自動的に更新されます。

45 2 * * 6 cd /etc/letsencrypt/ && ./certbot-auto renew && /etc/init.d/apache2 restart

スクリプトを追加したら、CTRL + X、Y、Enterの順に押して、crontabファイルを保存します。

ここまででGCPへのWordpress構築&SSL化が完了です!お疲れさまでした。

まとめ

GCP×Wordpressは最初は大変ですが慣れれば1時間足らずで構築できてしまいます。

最初はGCPの無料キャンペーンもあり気軽に構築できますし、その後も月1000円前後しかかからないので、「Webやプログラミングの勉強でブログ書こうと思っている」みたいな人は是非参考にしていただければと思います!

タイトルとURLをコピーしました