雑記

GCE(Google Compute Engine)でMarketplace使わずにWordPress動かす(無料枠で)

投稿日:

ぼくは独自ドメインを取得して、GCEでWordpressもMinecraft公開サーバーも同じドメインで運用してまして。
(→ これ )
GCE(Google Compute Engine)は便利で、
MarketPlaceからデプロイしたら手っ取り早く必要な環境を準備できます。

…けど、かゆいところに手が届かなかったりします。
例えば上記、一つのVMにWordpressとそれ以外の機能を同時に実現しようとすると、無料枠に収まらないVM構成になっちゃったりとちょっとハードルが上がってきます。
(Wordpressに限ったことではないですが…)
あと、個人的にUbuntuが好きなのですが、デプロイ時に指定できない。
トラブルがあったとき、Web上の解決情報が多いのはきっとUbuntuだと思うので。
ということで、下記大まかな手順に沿ってMarketPlaceに頼らずに複数の色々を一つのVMでやろうという話です。

【大まかな手順】
・ドメイン取得
・GCEでVMのデプロイ(無料枠で)
・Wordpressインストール

ドメイン取得

せっかく記事作るということで、何かひとつドメインを取ってみます。
GCE使うなら、Google Domainsでドメイン取ると気分がいいですね。


おばけ怖いよね… 【obake.info】 …これをWordpressのWebサイトにします。

GCEでVMのデプロイ(無料枠で)

https://cloud.google.com/compute/ ここからアクセス。
未登録なら登録しましょう。無料枠目的ですし。

インスタンスの作成をします。

USリージョンを選びます。※重要:無料枠の条件

f1-microを選びます。※重要:無料枠の条件

Ubutnu18.04 LTSを選びます(ので、ここから先のコマンドやらはUbutnu18.04 LTS向けになります)。
API、ファイアウォール、ネットワークタグもこんな感じ。

外部IPのところ エフェメラルではなくIP作成します。

作成ボタンを押してデプロイ完了。

WordPressインストール

VMインスタンスの画面から ブラウザでSSH開きます。

コマンド打ちます。

sudo su
timedatectl set-timezone Asia/Tokyo
apt install apache2
ufw app info "Apache Full"
ufw allow in "Apache Full"

この時点で、上で「外部アドレス」に設定したIPにブラウザでアクセス可能になるはず。

apt install mysql-server
mysql_secure_installation

(↑ 1を選択 rootパスワードは忘れないように)

mysql
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'さっき決めたrootパスワード';
FLUSH PRIVILEGES;
exit
apt install php libapache2-mod-php php-mysql
nano /etc/apache2/mods-enabled/dir.conf

nanoエディタの使い方をググりながら↓の内容に書き換えて保存して閉じる。



    DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm

systemctl restart apache2
mysql -u root -p
CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
GRANT ALL ON wordpress.* TO 'サイト管理人のユーザー名'@'localhost' IDENTIFIED BY 'サイト管理人のパスワード';
FLUSH PRIVILEGES;
EXIT;
apt update
apt install php-curl php-gd php-mbstring php-xml php-xmlrpc php-soap php-intl php-zip
systemctl restart apache2
nano /etc/apache2/sites-available/wordpress.conf

↓の内容に書き換えて保存して閉じる。



    AllowOverride All

a2enmod rewrite
systemctl restart apache2
cd /tmp
curl -O https://wordpress.org/latest.tar.gz
tar xzvf latest.tar.gz
touch /tmp/wordpress/.htaccess
cp /tmp/wordpress/wp-config-sample.php /tmp/wordpress/wp-config.php
mkdir /tmp/wordpress/wp-content/upgrade
cp -a /tmp/wordpress/. /var/www/wordpress
chown -R www-data:www-data /var/www/wordpress
find /var/www/wordpress/ -type d -exec chmod 750 {} \;
find /var/www/wordpress/ -type f -exec chmod 640 {} \;
curl -s https://api.wordpress.org/secret-key/1.1/salt/

どっかにコピーしとく↓。


nano /var/www/wordpress/wp-config.php

↑でコピーした値を貼り付ける↓。

ここを

上で設定した内容に書き換える。

define('DB_NAME', 'wordpress');
define('DB_USER', 'サイト管理人のユーザー名');
define('DB_PASSWORD', 'サイト管理人のパスワード');

この辺に

これを追記して保存して閉じる。

define('FS_METHOD', 'direct');

cd /etc/apache2/sites-available/
cp 000-default.conf hoge.conf
nano hoge.conf

ここを


DocumentRoot /var/www/html

こう変えて保存して閉じる。


DocumentRoot /var/www/wordpress

a2dissite 000-default.conf
a2ensite hoge.conf
systemctl restart apache2

この時点で、上で「外部アドレス」に設定したIPにブラウザでWordpress初期設定画面アクセス可能になるはず。

参考サイト様(英語です):
https://www.digitalocean.com/community/tutorials/how-to-install-linux-apache-mysql-php-lamp-stack-ubuntu-18-04
https://www.digitalocean.com/community/tutorials/how-to-install-wordpress-with-lamp-on-ubuntu-18-04

ドメインとIPを紐づける

GCPコントロールパネルの ネットワークサービス → Cloud DNS
でレコードを作成。こんな感じに。
Aレコードも作成して、WordpressサーバーのIPを入力する。

Goodle DomainsコントロールパネルのDNS設定画面で、CGPと同じ値を入れる。

15分も待てば、自分のドメインでサイトにアクセスできるようになります。
Wordpressの一般設定にも、ドメインの設定をします。

おしまいです。
おつかれさまでした。

-雑記
-, , ,

Copyright© スアゲウマイ , 2019 All Rights Reserved.