S Project. 推奨アイドルはこちら

Ubuntu 20.04 + OpenLiteSpeedで爆速WordPress構築の夢を見るのか

うぇるちまんの一人語り
この記事は約7分で読めます。

はじめまして、高専生の日常ブログの情シスこと、べこんぱいんです

今回は以前構築したNginx + php-fpm環境をいろいろあって破壊した記念にWEBサーバー変更をしたので、どんな構成にしたのか、備忘録がてら書きますね

構成

使用しているサーバーは以下の通りです

OCIのリージョンはJapan Central (Osaka)です

Cloudflareは賛成派否定派が分かれる印象ですが、弊グループのサーバーがしょぼく負荷耐性がないので導入してます

SSL証明書発行するのが簡単でいいですよね、まあ、うまくやらないとトラブルの原因にもなりますが、、

PHPはビルド済みのものをLiteSpeedのリポジトリからaptでダウンロードしてます

わざわざ自分でビルドする意味ないです、多分

インフラOracle Cloud Infrastructure
OSUbuntu 20.04 LTS
webサーバーOpenLiteSpeed
CMSWordPress
データベースMariaDB
PHPlsphp80
CDNCloudflare

サーバーの準備

ドメインの割り当て

ドメインのDNSでサーバーを参照するように設定します

当ブログではCloudflareを使用しています

パッケージの更新

sudo apt update
sudo apt upgrade -y

忘れる前にポート開放

ご自身の環境に合わせてiptablesなりufwなりの設定を変えてください

今回はiptablesの場合

sudo nano /etc/iptables/rules.v4

HTTP 80、HTTPS 443、LiteSpeed web admin 7080 TCPポートを解放

以下の3行をrules.v4内に追記します

-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 7080 -j ACCEPT

変更を反映させます(再起動でもいいです、パッケージアップデートしてるので)

sudo /etc/init.d/netfilter-persistent reload

AWSやOracle Cloudではデフォルトの状態ではSSHの22番ポート以外がファイアウォールでふさがれているので、そこも各自の環境に合わせてポート開放が必要です

本編

OpenLiteSpeedのインストール

公式ドキュメントのInstall from repositoriesに従ってインストールします

Install OpenLiteSpeed from LiteSpeed Repositories • OpenLiteSpeed

sudo wget -O - http://rpms.litespeedtech.com/debian/enable_lst_debian_repo.sh | sudo bash
sudo apt install openlitespeed -y

公式ドキュメントではPHP7系をインストールしてますが、古いので8.0系をインストールします

sudo apt install lsphp80 lsphp80-common lsphp80-curl lsphp80-mysql lsphp80-opcache lsphp80-imap lsphp80-opcache -y
sudo ln -sf /usr/local/lsws/lsphp80/bin/lsphp /usr/local/lsws/fcgi-bin/lsphp5

この時点でいちど”http://[Server IP]:7080″にアクセスしてweb adminが表示されるか確認したほうが身のためです

データベースのインストール

標準のリポジトリにあるやつで多分大丈夫です

MariaDBを使ってますが、別にMySQLでもいいですよ、もちろん

sudo apt install mariadb-server -y

WordPressを配置

ここからダウンロードしましょう

ダウンロード | WordPress.org 日本語

webサーバーのルートに移動

cd /usr/local/lsws

WordPressをダウンロードして解凍

sudo wget https://ja.wordpress.org/latest-ja.zip
sudo unzip latest-ja.zip

解凍したらlatest-ja.zipはいらないので消して大丈夫です

sudo rm -rf latest-ja.zip

wordpressディレクトリの所有権を変更

sudo chown -R nobody:nogroup wordpress

WordPress用のデータベーステーブル作成

基本はこれに従います

WordPress データベースの作成 – サポートフォーラム

MariaDBを開く

sudo mariadb

データベースの作成

ここでは名前をwordpressとしています

CREATE DATABASE wordpress;

パスワードは各自めちゃくちゃ強力で覚えられないぐらいのを作ってください

GRANT ALL PRIVILEGES ON wordpress.* TO 
"wordpress"@"localhost"
IDENTIFIED BY "安全なパスワード";

できたら保存してMariaDBから脱出

FLUSH PRIVILEGES;
exit

OpenLiteSpeedの設定

http://[サーバーのIP]:7080/にアクセスし、ログインします

初期ユーザー名/パスワードは

cat /usr/local/lsws/adminpasswd

で確認できます

PHP8.0系を読み込ませる

バーチャルホストの作成

初期で入ってるExample設定は消しちゃって大丈夫ですよ

HTTP/HTTPSそれぞれのリスナーの作成

リスナーが参照するバーチャルホストを設定HTTP/HTTPS両方

HTTPSリスナーにSSL証明書を設定

細かい設定は環境に合わせてください

SSLの設定はリスナー側ですれば個別にバーチャルホスト側で設定する必要はないです

WordPressのインストール

https://[設定したドメイン]/ にアクセスするとWordPressのインストール画面が表示されます

適切にSSL証明書が設定できていないとアクセスができません

鍵ファイルの設定方法が正しいか、Cloudflareを使用している場合はSSL設定が正しいかを確認しましょう

Let’s encryptを使ってもいいですが、個人的なおすすめは

・サーバー側証明書はCloudflare発行のもの(単体では使用不可)
・Cloudflare側のSSL/TLS 暗号化モードは「フル (厳密)」
・プロキシオン必須

です

正常に接続出来たら画面の表示に従ってサイト情報やデータベースの接続情報を入力します

不足しているPHPモジュールのインストール

ここまでの状態で一応動く状態にはなるのですが、WordPressの推奨モジュールが不足しています

必須モジュールではないので絶対にないとダメってわけではないですが、推奨です

私の環境ではimagickとintlがインストールされていなかったので(何が不足しているかもサイトヘルスで確認できます)、lsphp80用にビルドされたものをインストールします

基本的にPHPモジュールのaptでのパッケージ名はphp-[モジュール名]になってます

今回はlsphp80-[モジュール名]の形です

普通のphp-intlなどをインストールしても動きません

sudo apt install lsphp80-imagick lsphp80-intl -y

おつかれさまでした

ここまででOpenLiteSpeed + WordPress + MariaDBの環境構築ができたかと思います

よくできました

コメント

  1. むずすぎる

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