メッチャひさびさにブログ書こうかと。
円安すごいよね。
ガソリンやばくない?
ハイオク200円だよ…
いろんな物価も上がり続けてるし、ヤバいよヤバいよ(笑)
ということで、このブログサーバをAWS Lightsail から Google Cloud Compute Engine に移行しました。
まぁ、もともと大した記事の量もないので、Lightsail の US$3.5 のプランだったんだよね。
これも激安なんだけど、円安で徐々に上がってきて…
どこか安いのないかなと探してた。
そしたら、Google Cloud Compute Engine の無料枠が Lightsail よりもしっかりしてるやん!って。
E2プラン(1GB、2vCPU)に30GBの標準永続ディスクで無料。
太っ腹だよね。
下手なVPSとか借りるよりもいいやん。
まあ場所はUSリージョンなので、距離はあるけど、CDN とかかませば全然問題ない。
で、いつものごとく新しいことをするときには何かやったことないことをするをモットーに、今回は WordPress を一から入れて、Nginx と MariaDB で建てようと。
ひさびさに Ubuntu からインストールしてやったけど、面倒くさかったわ(笑)
今の WordPress って、Lightsail や VPS もそうだけど、だいたいもう設定されてるのをポチっとするだけが多いんよね。
それにくらべると、全部一からインストールするのって、やっぱ大変やわ。
特に WordPress をインストールする準備がね~。
Nginx でやるの初めてだから、ちょっと手間取った。
WordPressの公式サイトにもなんか記載が少ないし。
でも、WP-CLIとかあって、それで設定すれば WordPress の設定はかなり省略できた。
WordPress さえ立ち上げられれば、あとは今のデータを dump したものを読み込ませれば完了。
調べながらやったから、今回は時間かかったけど、まあ一回やってしまえば、次はもっと早くできるかな。
ちょっとまとめとこ。
# Ubuntu 22.04 はインストール完了しておく | |
# Nginx のインストール | |
sudo apt update | |
sudo apt install nginx | |
sudo systemctl start nginx | |
sudo systemctl enable nginx | |
# MariaDB のインストール | |
sudo apt install mariadb-server | |
sudo apt install mariadb-client | |
sudo systemctl start mariadb | |
sudo systemctl enable mariadb | |
# MariaDB のセットアップ | |
sudo mysql_secure_installation | |
If you've just installed MariaDB, and haven't set the root password yet, you should just press enter here. | |
Enter current password for root (enter for none): PRESS ENTER | |
Switch to unix_socket authentication [Y/n] n | |
Change the root password? [Y/n] n | |
Remove anonymous users? [Y/n] y | |
Disallow root login remotely? [Y/n] y | |
Remove test database and access to it? [Y/n] y | |
Reload privilege tables now? [Y/n] y | |
All done! | |
# データベースを作成する | |
sudo mysql -u root -p | |
CREATE DATABASE database_name; | |
CREATE USER db_user_name@localhost IDENTIFIED BY 'new_password'; | |
GRANT ALL ON *.* TO db_user_name@localhost WITH GRANT OPTION; | |
FLUSH PRIVILEGES; | |
EXIT; | |
# FPM のインストール | |
sudo apt install php-fpm php-common php-mysql cdphp-gmp php-curl php-intl php-mbstring php-xmlrpc php-gd php-xml php-cli php-zip | |
# インストールされた FPM のバージョンを確認 | |
/etc/php の中に 8.1 などのバージョンディレクトリがある | |
sudo systemctl start php8.1-fpm | |
sudo systemctl enable php8.1-fpm | |
# FPM の設定ファイルの変更(以下のファイルの中の項目) | |
sudo nano /etc/php/8.1/fpm/php.ini | |
file_uploads = On | |
allow_url_fopen = On | |
short_open_tag = On | |
memory_limit = 256M | |
cgi.fix_pathinfo = 0 | |
upload_max_filesize = 100M | |
post_max_size = 100M | |
max_execution_time = 360 | |
# wp-cli のインストール | |
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar | |
php wp-cli.phar --info | |
chmod +x wp-cli.phar | |
sudo mv wp-cli.phar /usr/local/bin/wp | |
wp cli version | |
# WordPress のダウンロード(pathなどは各自設定) | |
wp core download --locale=ja --path=/var/www/wordpress | |
wp core config --dbname=database_name --dbuser=db_user_name --dbpass=database_pass | |
wp core install --url=http://example.com/ --title=wordpress_title --admin_user=wordpress_user --admin_password=password --admin_email=test@example.com | |
# WordPress をインストールしたディレクトリに権限をつける | |
sudo chown -R www-data:www-data /var/www/wordpress/ | |
sudo chmod -R 755 /var/www/wordpress/ | |
# Nginx の設定ファイルの作成 | |
sudo nano /etc/nginx/sites-available/wordpress.conf | |
# 中身はこんな感じ | |
server { | |
listen 80; | |
listen [::]:80; | |
root /var/www/wordpress; | |
index index.php index.html index.htm; | |
server_name example.com www.example.com; | |
client_max_body_size 100M; | |
autoindex off; | |
location / { | |
try_files $uri $uri/ /index.php?$args; | |
} | |
location ~ \.php$ { | |
include snippets/fastcgi-php.conf; | |
fastcgi_pass unix:/var/run/php/php8.1-fpm.sock; | |
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; | |
include fastcgi_params; | |
} | |
} | |
# 作成したら、site-enabled にリンクを張る | |
sudo ln -s /etc/nginx/sites-available/wordpress.conf /etc/nginx/sites-enabled/ | |
sudo systemctl restart nginx | |
# ここまでで、新規の WordPress が立ち上がる | |
# 古いサーバからデータを dump | |
mysqldump -u db_user_name -p database_name --single-transaction > dump.sql | |
移行先でデータベース名を変更する場合は、書き出した dump.sql 内のデータベース名を変更する | |
# 新しいサーバで dump データを読み込む | |
mysql -u db_user_name -p database_name < dump.sql | |
# SSL(https) にするために Certbot をインストールする(今回は Certbot の公式にあるsnapで) | |
sudo snap install --classic certbot | |
sudo ln -s /snap/bin/certbot /usr/bin/certbot | |
sudo certbot --nginx | |
# 成功すると、先程作成した wordpress.conf にSSLの設定が書き込まれ、しばらくすると https で接続できるようになる |