ぼくは独自ドメインを取得して、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の一般設定にも、ドメインの設定をします。
おしまいです。
おつかれさまでした。