OpenLiteSpeedのダッシュボードでPHP7.4のコンパイルをする

2020/06/23[公開]

 このサイトのPHPバージョンを、OpenLiteSpeedの管理画面(ダッシュボード)のツールにあるPHPコンパイル機能を使ってPHP7.4.3に変更しました。

 Debianに登録していたLiteSpeedのリポジトリからインストールしていたPHP7.3だと、cURL error 77:のエラーがWordPressで出まくるようになったので、その回避策です。

 こちらの記事の通りにDebian10にインストールしたOpenLiteSpeedでの内容です。

スポンサー リンク

WordPressにログインできなくなる

 先週あたりから、なにげなく apt update⇒apt upgrade でDebianのアップデートをかけて以降、WordPressのいたるところで不具合が出まくって困ってしまいました。

 まずはWordPressの管理画面に正しいIDとパスワードを入れているのに「invalid username or incorrect password!」と言われてログインできません。新規にログインするのができないだけで、前日からログインしていたPCのブラウザーだと上部に管理画面の黒いバーが出たままになっていてダッシュボードに入れたりしますが、一度ログアウトするとアウトでした。

 これは、こちらのサイトを参考にしてSSLVerifyを無効にすることで一時的な回避策のようですがログインできるようになりました。

cURL error 77に悩まされる

 ログインはできましたが、管理画面のいたるところでcURL error 77:の表示が出ていました。JetPackプラグインの統計情報やWordPressニュースなどがエラーで表示されなくなっていました。

 さらにWordPressやプラグインの更新もcURL error 77:でアップデートできません。プラグインの新規インストールも同じくできなくなりました。

 管理画面だけかと思っていたら、Amazonの商品リンクをだしているAmazon Auto Linksの表示もエラーで表示されていません。これは困ったことになりました。

管理画面トップ
管理画面トップ
更新もできない
更新もできない
新規インストールもできない
新規インストールもできない

 

cURLのSSL Versionが変わっていた

 一週間くらいいろいろ調べたり試したりDebianを入れ直したりした結果、cURLのSSL VersionがOpensslからNSSというのに変わっていたのが原因のようです。

NSSになっているとダメ
NSSになっているとダメ
OpenSSLになっているとOK
OpenSSLになっているとOK

 

 現在OpenLiteSpeedをインストールすると、標準のPHPバージョンは7.3.19-1+busterになっています。ただしWordPress推奨モジュールのcURLが入っていないため、lsphp73-curlをインストールすると依存関係のパッケージlibcurl3-nssも一緒に入ってしまいます。この状態でNSSになっているのをOpenSSLに変更する方法は、私にはわかりません。

 では、どうやってcURLのSSL VersionをOpenSSLにしたのかというと、この記事のタイトルである、ツールのPHPコンパイル機能でPHP7.4にしたら出来たという長い前置きでした。

PHP7.4.3のコンパイル

 OpenLiteSpeedのダッシュボード⇒Tools⇒Compile PHP を開きます。

 PHP Versionのプルダウンメニューで7.4.3を選び、Nextボタンを押します。

PHPバージョン7.4.3を選んで次へ
PHPバージョン7.4.3を選んで次へ

 次の画面で下表のように設定します。Installation Pathは後でわかりやすいようにlsphp743にしています。Configure Parametersはデフォルトの値から赤字部分を追加しています。

Installation Path Prefix/usr/local/lsws/lsphp743
Configure Parameters–with-mysqli –with-zlib –with-gd –enable-shmop –enable-sockets –enable-sysvsem –enable-sysvshm –enable-mbstring –with-iconv –with-mcrypt –with-pdo-mysql –enable-ftp –enable-zip –with-curl –enable-soap –enable-xml –enable-json –with-openssl –enable-bcmath –enable-gd –enable-exif –with-zip –with-mysql-sock=/var/run/mysqld/mysqld.sock

(補足)赤字の追加部分はWordPressの推奨モジュールであるgd,exif,zipを追加。mysqliのmysqli.default_socketを/var/run/mysqld/mysqld.sock にする設定です。これをしておかないとWordPressがデータベース接続エラーになってしまいます。

 次の画面で、準備ができたらNextボタンを押します。

準備ができたらNextボタン
準備ができたらNextボタン

 次の画面の説明の通りに、シェルスクリプトを指示通りのコマンドをターミナルからrootで実行します。

/usr/local/lsws/phpbuild/buildphp_manual_run.sh
ターミナルで実行するコマンドの説明
ターミナルで実行するコマンドの説明

 コマンドを実行するとコンパイルが始まります。その前の準備段階で不足しているパッケージやモジュールがあると何度かエラーで止まります。その都度エラー内容を見てインストール⇒コマンド再実行を繰り返します。Debianを最小構成でインストールしていた場合は、事前に下記をインストールしておくとすんなりいくかもしれません。

compaileやmake用に下記が必要でした。

apt install gcc pkg-config build-essential 

configure: error: Package requirements (libxml-2.0 >= 2.7.6) were not met:
No package ‘libxml-2.0’ found のエラーで止まったら

apt install libxml2-dev

configure: error: Package requirements (openssl >= 1.0.1) were not met:
No package ‘openssl’ found のエラーで止まったら

apt install libssl-dev libmcrypt-dev

configure: error: Package requirements (sqlite3 > 3.7.4) were not met:
No package ‘sqlite3’ found のエラーで止まったら

apt install libsqlite3-dev

configure: error: Package requirements (zlib >= 1.2.0.4) were not met:
No package ‘zlib’ found のエラーで止まったら

apt install zlib1g zlib1g-dev

configure: error: Package requirements (libcurl >= 7.15.5) were not met:
No package ‘libcurl’ found のエラーで止まったら

apt install libcurl4-openssl-dev

configure: error: Package requirements (oniguruma) were not met:
No package ‘oniguruma’ found のエラーで止まったら

apt install libonig-dev

configure: error: Package requirements (libpng) were not met:
No package ‘libpng’ found のエラーで止まったら

apt install libpng-dev

configure: error: Package requirements (libzip >= 0.11) were not met:
No package ‘libzip’ found のエラーで止まったら

apt install libzip-dev

 必要なパッケージが揃ったらコンパイルとインストールが始まります。15~20分くらい待ちました。successfully(成功)のメッセージが出たら完了です。

LiteSpeed SAPI の設定変更

 ダッシュボード⇒Server Configration⇒External Appタブを開き、LiteSpeed SAPI Appの設定を一か所変更します。

Commandlsphp743/bin/lsphp

 さきほどコンパイルしたパスを指定するだけでPHPのバージョンを変更できます。

LiteSpeed SAPI APPの編集

再起動

 LiteSpeedを再起動します。なぜか再起動ボタンでは有効にならない場合もありました。

 一度OpenLiteSpeedをキルして再起動するとよいと思います。

systemctl kill lsws
systemctl restart lsws

完了

 以上でコンパイルしたPHP7.4にしたところ、WordPressの管理画面のcURLエラーが解消されました。

 ひとつ問題が残っていて、WordPressのサイトヘルスで「オプションのモジュール imagick がインストールされていないか、無効化されています。」が出ています。なんとかimagickを有効にしてコンパイルしようとしましたが、–with-imagick –enable-imagick をつけても有効になりません。

imagickを有効にできないまま
imagickを有効にできないまま

 imagickはgdが入っているのでこのままでも問題ありません。ここ2週間近く今回の問題に時間を取られ過ぎてしまったので、今回はこれで解決ということにしました。

スポンサー リンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です