OCI(Oracle Cloud Infrastructure) でWordPressを構築する

構築方法

1. VCNの作成

OCIドキュメントを参考にVCNを作成します
https://docs.oracle.com/ja-jp/iaas/Content/Network/Tasks/create_vcn.htm

 

2. サブネットの作成

VCNを作成したらサブネットを作成します。今回の構成ではパブリックサブネットを3つ作成します。
https://docs.oracle.com/ja-jp/iaas/Content/Network/Tasks/create_subnet.htm

 

3. コンピュートインスタンスの作成

今回用途に応じてコンピュートインスタンスを使い分けるため、計2台のインスタンスを作成します。
ArmベースのAmpereインスタンス(VM.Standard.A1.Flex) が無料で使えるのは月に4OCPUメモリ24GBまでのため
1台のスペックを2OCPU12GBでインスタンスを作成します。今回OSはUbuntu 22.04で構築を行います。

 

なお過去に、Ampereインスタンスが取得しづらいことからAmpereインスタンスを自動取得する記事を紹介しましたが、OCIアカウントの本登録(クレカ登録)を行うとすぐにAmpereインスタンスが取得できることがわかりました。
クレカ登録なしのアカウントだと相変わらずAmpereは取得できないので、本登録することをオススメいたします。

 

3-1. フロントエンド用 インスタンスの構築

OCIのコンソール画面からインスタンスを作成したら、SSHでインスタンスにログインし初期設定を行います。

3-1-1. 初期設定

### timezone設定
$ sudo timedatectl set-timezone Asia/Tokyo

### システムロケール設定
# 現在の設定確認
$ localectl status
System Locale: LANG=C.UTF-8
VC Keymap: n/a
X11 Layout: us
X11 Model: pc105

# 日本語言語パックをインストール
$ sudo apt install language-pack-ja-base language-pack-ja
$ sudo localectl set-locale LANG=ja_JP.UTF-8

# システムロケール設定の確認
$ localectl status
System Locale: LANG=ja_JP.UTF-8
VC Keymap: n/a
X11 Layout: us
X11 Model: pc105

 

3-1-2. nginx インストール

### 署名鍵の取得
# 参考:https://nginx.org/en/linux_packages.html#Ubuntu
$ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
  % Total   % Received % Xferd Average Speed   Time   Time    Time   Current
                               Dload  Upload   Total  Spent   Left   Speed
100  1561 100  1561    0     0  1435       0 0:00:01 0:00:01 --:--:-- 1436

# 署名鍵の確認
$ gpg --dry-run --quiet --no-keyring --import --import-options import-show /usr/share/keyrings/nginx-archive-keyring.gpg

# リポジトリ登録
$ sudo vim /etc/apt/sources.list.d/nginx.list

# 中身
$ cat /etc/apt/sources.list.d/nginx.list
deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] http://nginx.org/packages/ubuntu jammy nginx

# パッケージ更新
$ sudo apt update && sudo apt upgrade
ヒット:1 http://ports.ubuntu.com/ubuntu-ports jammy-security InRelease
ヒット:2 http://ap-osaka-1-ad-1.clouds.ports.ubuntu.com/ubuntu-ports jammy InRelease
ヒット:3 http://ap-osaka-1-ad-1.clouds.ports.ubuntu.com/ubuntu-ports jammy-updates InRelease
ヒット:4 http://ap-osaka-1-ad-1.clouds.ports.ubuntu.com/ubuntu-ports jammy-backports InRelease
ヒット:5 http://nginx.org/packages/ubuntu jammy InRelease
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了
状態情報を読み取っています... 完了
パッケージはすべて最新です。
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了
状態情報を読み取っています... 完了
アップグレードパッケージを検出しています... 完了
アップグレード: 0 個、新規インストール: 0 個、削除: 0 個、保留: 0 個。

# nginx インストール
$ sudo apt install nginx

# nginx 起動
$ sudo systemctl start nginx

# nginx 起動確認
$ systemctl status nginx
● nginx.service - nginx - high performance web server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: active (running) since Mon 2024-01-08 12:20:00 JST; 22s ago
       Docs: https://nginx.org/en/docs/
    Process: 2944 ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf (code=exited, status=0/SUCCESS)
   Main PID: 2945 (nginx)
      Tasks: 3 (limit: 14204)
     Memory: 2.5M
        CPU: 20ms
     CGroup: /system.slice/nginx.service
             ├─2945 "nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf"
             ├─2946 "nginx: worker process" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""
             └─2947 "nginx: worker process" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""

  1月 08 12:20:00 instance-name systemd[1]: Starting nginx - high performance web server...
  1月 08 12:20:00 instance-name systemd[1]: Started nginx - high performance web server.

# OCIでUbuntuの場合、セキュリティリストのほかにiptablesが有効になっているため、port:80を許可する
# 参考:https://cloudsolution.terilogy.com/blog/oci-ubuntu-iptables
$ sudo iptables -I INPUT -p TCP --dport 80 -j ACCEPT

# iptables設定の永続化
$ sudo /etc/init.d/netfilter-persistent save
$ sudo /etc/init.d/netfilter-persistent reload

# nginx 自動起動設定を有効
$ sudo systemctl enable nginx

nginxが起動できたら最低限以下の設定を行います。

# nginxのバージョン非表示
$ sudo vim /etc/nginx/nginx.conf
server_tokens off;

# 設定変更後はサービス再起動
$ sudo systemctl restart nginx

 

3-1-3. PHP8.3 インストール

# リポジトリを追加
$ sudo add-apt-repository ppa:ondrej/php

$ sudo apt update && sudo apt upgrade

# php8.3 インストール
$ sudo apt install php8.3 php8.3-cli php8.3-{bz2,curl,mbstring,intl} php8.3-xml

# インストールできたか確認
$ php -v
PHP 8.3.1 (cli) (built: Dec 21 2023 20:12:13) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.3.1, Copyright (c) Zend Technologies
    with Zend OPcache v8.3.1, Copyright (c), by Zend Technologies

# php-fpm インストール
$ sudo apt install php8.3-fpm

# 起動されているかの確認
$ systemctl status php8.3-fpm
● php8.3-fpm.service - The PHP 8.3 FastCGI Process Manager
Loaded: loaded (/lib/systemd/system/php8.3-fpm.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2024-01-20 21:11:20 JST; 4min 18s ago

# php8.3 gdライブラリインストール
# これをインストールしないとWordpressでアップロードする画像のサイズ指定ができないため
# 参考:https://sologaku.com/wordpress/images-only-full-size/
$ sudo apt install php8.3-gd

# php8.3 zip拡張インストール
$ sudo apt install php8.3-zip

 

3-1-4. phpredis インストール

WordPressのRedisプラグイン「Redis Object Cache」などを利用している場合は、phpredisをインストールします。
WordpressでRedisを使用しないかたはインストール不要です。

# pecl インストール
$ sudo apt install php-pear

# インストール確認
$ pecl version
PEAR Version: 1.10.12
PHP Version: 8.3.2-1+ubuntu22.04.1+deb.sury.org+1
Zend Engine Version: 4.3.2
Running on: Linux instance-name 5.15.0-1049-oracle #55-Ubuntu SMP Mon Nov 20 19:53:49 UTC 2023 aarch64

# phpizeコマンドを動かすためにphp-devをインストール
$ sudo apt install php-dev

# php設定ファイルの末尾にSSL通信の設定を追加 ※pecl実行時にエラーになった場合、ここの設定を行う
$ sudo vim /etc/php/8.3/fpm/php.ini
openssl.cafile = /etc/ssl/certs/ca-certificates.crt

# phpredis インストール
$ sudo pecl install redis
# 以下のダイアログが出るがデフォルトのままでよいので、そのままEnterを実行
enable igbinary serializer support? [no] :
enable lzf compression support? [no] :
enable zstd compression support? [no] :
enable msgpack serializer support? [no] :
enable lz4 compression? [no] :
use system liblz4? [yes] :

# php設定ファイルの末尾にredis.soを追加
$ sudo vim /etc/php/8.3/fpm/php.ini
extension=redis.so

# サービス再起動
$ sudo systemctl restart php8.3-fpm
$ sudo systemctl restart nginx

 

3-1-5. WordPressファイル配置

/usr/share/nginx/ 配下にWordpressのファイルを配置します。
※新規インストールの場合は WordPress公式からファイルをダウンロードします
※今回は移行なので、旧サーバからファイルをコピーし /usr/share/nginx/ に配置します

 

フロントエンド用のインスタンス構築は以上です。次にバックエンド用インスタンスの構築を行います。

 

 

コメント

* が付いている欄は必須項目です。