OpenLiteSpeedサーバのPHPを7.4から8.2にバージョンアップする

WordPressで使用中のプラグインがPHP8でしか動作しなくなったので、バージョンアップすることにした。ただ、自分の不注意などもあって作業中に色々とハマったので、備忘と自戒のために記録を残す。

作業環境は以下のとおり。

  • OS: Ubuntu 20.04 LTS
  • PHP: LSPHP 7.4
  • OpenLiteSpeed: 1.7.17
  • WordPress: 6.2.2

lsphp82のインストール

OpenLiteSpeedで使ってるPHPはLSPHPという独自のPHPなので、これをバージョンアップする。

参考にしたサイトのコマンドをほぼそのまま実行。ただ、作業時点ではlsphp82-ioncubeとlsphp82-jsonが存在しなかったのでインストール対象から除外した。

apt install -y lsphp82 lsphp82-apcu lsphp82-common lsphp82-curl lsphp82-dbg lsphp82-dev lsphp82-igbinary lsphp82-imagick lsphp82-imap lsphp82-intl lsphp82-ldap lsphp82-memcached lsphp82-modules-source lsphp82-msgpack lsphp82-mysql lsphp82-opcache lsphp82-pear lsphp82-pgsql lsphp82-pspell lsphp82-redis lsphp82-snmp lsphp82-sqlite3 lsphp82-sybase lsphp82-tidy

OpenLiteSpeedの管理画面にログイン後、サーバー設定>外部アプリに遷移して、アドレスが「uds://tmp/lshttpd/lsphp.sock」の項目を編集。

「コマンド」の項目を以下のとおり書き換えて保存。

  • 修正前: lsphp74/bin/lsphp
  • 修正後: lsphp82/bin/lsphp

「緩やかな再起動」ボタンをクリックすると、設定が反映される。

WordPressの管理画面から、ツール>サイトヘルス>サーバーに遷移して、PHPバージョンを確認する。8.2系に変更されていればOK。

lsphp74をpurgeしたらopenlitespeedが消えた

問題はこのあと。この時点で手を止めればよかったのに、不要になったlsphp74を削除しようと思って以下のコマンドを実行した結果、lsphp74と依存関係にあったopenlitespeedパッケージまで消えてしまった。

$ sudo apt purge lsphp74*

削除前の確認で気付けよって話なのだが、いつもの癖であまり深く考えずにYを押してしまった。反省。

慌ててopenlitespeedを再インストールしたものの、WordPress用の設定が諸々消えてしまい、最初から設定し直す羽目に。しかも、もともとGCEが提供する初期設定済のサーバを使っていたため、どこになにを設定をすればよいのか全くわからない。

ググりまくって何とか1時間ほどかけて復旧したけど、かなり面倒だった。というわけで、以下は愚かな自分がまた同じ過ちを犯したとき用の備忘メモです。

バーチャルホスト

基本タブ。値のある項目は基本的にどれも重要。また、以前の設定ファイルが消えてなければ、いったんこの項目だけ保存して再起動すれば元に戻るかも。

一般タブ。「php.ini Override」の2行はアップロードサイズの上限の書き換え用。ただ、他にも変更する方法はいくつかあるみたい。

リスナー

概要タブ。ポート毎に設定する。80はほぼ設定ないので443について言及する。

443ポートの一般タブ。セキュアの項目とバーチャルホストマップの設定が重要。(バーチャルホストマップは80ポートでも必要)

443ポートのSSLタブ。SSLの秘密鍵と証明書のパスを設定する。

おわりに

aptのremoveやpurgeは軽い気持ちでやっちゃだめ。

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