はじめまして、高専生の日常ブログの情シスこと、べこんぱいんです
今回は以前構築したNginx + php-fpm環境をいろいろあって破壊した記念にWEBサーバー変更をしたので、どんな構成にしたのか、備忘録がてら書きますね
構成
使用しているサーバーは以下の通りです
OCIのリージョンはJapan Central (Osaka)です
Cloudflareは賛成派否定派が分かれる印象ですが、弊グループのサーバーがしょぼく負荷耐性がないので導入してます
SSL証明書発行するのが簡単でいいですよね、まあ、うまくやらないとトラブルの原因にもなりますが、、
PHPはビルド済みのものをLiteSpeedのリポジトリからaptでダウンロードしてます
わざわざ自分でビルドする意味ないです、多分
インフラ | Oracle Cloud Infrastructure |
OS | Ubuntu 20.04 LTS |
webサーバー | OpenLiteSpeed |
CMS | WordPress |
データベース | MariaDB |
PHP | lsphp80 |
CDN | Cloudflare |
サーバーの準備
ドメインの割り当て
ドメインの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を配置
ここからダウンロードしましょう
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の環境構築ができたかと思います
よくできました
コメント
むずすぎる