Synology DSM7系に対応したPHP8.0がリリースされたため、運用中のWordPres Webサイトへの適用を行いました。
Synologyのパッケージセンターにて、PHP8.0がリリースされていました。
こちらの記事で、WordPressのWebサイトを構築していましたが、当時最新版リリースであるPHP7.4を適用していました。
参考 Synology NASでのWordPress(本家版)を用いたWebサイト構築
今回は、本サイトに適用しているPHPのバージョンをPHP8.0に更新したため、その手順を紹介します。
前提 本記事でのDSM(OS)バージョンは、Synology DSM 7.1 を用いています。
1.PHP8.0のインストール
パッケージセンターより、PHP 8.0のパッケージをインストールします。
2.PHP8.0のプロファイル設定
Webサイトで運用中のPHPのプロファイルを直接変更した場合、何か問題が発生した時にすぐに戻せないため、運用中のプロファイルとは別の新規プロファイルを作成して、Webサイトに適用するプロファイルを入れ替える手順とします。
このため、Webサイトに適用するPHP8.0のプロファイルを新規作成します。
[Web Station]で、[スクリプト言語の設定]>[PHP]から、[作成]をクリックします。
2-1.PHPバージョンの設定およびPHPキャッシュの有効化
[PHPプロファイルを設定]ダイアログの[設定]タブをクリックし、設定項目を入力していきます。
[プロファイル名]と[説明]は何でもよいですが、後でわかりやすい内容としておきます。
[PHPバージョン]でPHP8.0を選択します。
[PHPキャッシュを有効にする]にチェックをいれます。本設定により、PHPのOPcacheとAPCuが有効化されます。
2-2.PHP拡張モジュールの選択
[PHPプロファイルを設定]ダイアログの[拡張]タブをクリックし、WordPressを実行するのに必要な拡張モジュールを選択していきます。
拡張モジュールについては、WordPressのサイトを参考にして、以下のモジュールを有効化対象としました。
名前 | 説明 |
---|---|
bcmath | 任意の精度の数学で、10 進数 2147483647 桁までの任意のサイズと精度の数値をサポートします。 |
curl | リモート要求操作を実行します。 |
exif | 画像に保存されているメタデータで動作します。 |
ftp | ファイル転送プロトコル (FTP) を話すファイルサーバーへのクライアントアクセスを実装します |
gd | Imagick がインストールされていない場合、GD グラフィックスライブラリは画像操作の機能制限付きフォールバックとして使用されます。 |
iconv | 文字セット間の変換に使用されます。 |
imagick | メディアのアップロードにより良い画質を提供します。 |
intl | 書式設定、音訳、エンコード変換、カレンダー操作、準拠照合順序、テキスト境界の検索、ロケール識別子、タイムゾーン、書記素の操作など、ロケール対応の操作を実行できます。 |
mysqli | MySQL Improved 拡張モジュール |
openssl | 他のホストへの SSL ベースの接続を許可します。 |
pdo_mysql | PDO API で MySQL に接続するためのドライバです。 |
sockets | 一般的なBSDソケットに基づいてソケット通信機能への低レベルインタフェースを実装します。 |
sodium | 署名を検証し、安全にランダムなバイトを提供します。 |
ssh2 | セキュアな暗号化トランスポートを使用して、リモートマシン上のリソース (シェル、リモート exec、トンネリング、ファイル転送) へのアクセスを提供します。 |
zip | プラグイン、テーマ、およびWordPressアップデートパッケージを解凍するために使用されます。 |
zlib | Gzip 圧縮と解凍。 |
2-3.PHPパラメータ設定とJITの有効化
[PHPプロファイルを設定]ダイアログの[コア]タブをクリックし、PHPのパラメータ設定を行います。
設定するパラメータとしては、以下リンクの記事で紹介した、「WordPress All-in-One Migration」プラグインで容量制限を回避するためのパラメータの設定と、PHP8.0で新規に機能追加された、ジャストインタイム(JIT)コンパイラーを有効化するためのパラメータとしました。
ジャストインタイム(JIT)コンパイラーは、PHP8.0の標準機能として組み込まれていますが、デフォルト設定で無効化されているため、パラメータを設定することにより有効化します。
パラメータ設定の一覧を下表に記載します。
パラメータ | 設定値例 | 説明 |
---|---|---|
max_execution_time | 300 | スクリプトがパーサにより強制終了されるまでに許容される最大の 時間を秒単位で指定します。 All-in-One WP Migrationで必要 |
max_imput_time | 300 | スクリプトが POST、GET などの入力を パースする最大の時間を、秒単位で指定します。 All-in-One WP Migrationで必要 |
memory_limit | 256M | スクリプトが確保できる最大メモリをバイト数で指定します。この命令は、 正しく書かれていないスクリプトがサーバーのメモリを食いつぶすことを防止するのに役立ちます。 もし、使用可能メモリに制限を設けたくない場合は、 ここに -1 を指定してください。 All-in-One WP Migrationで必要 |
post_max_size | 5120M | POSTデータに許可される最大サイズを設定します。この設定は、ファ イルアップロードにも影響します。大きなファイルをアップロード するには、この値を upload_max_filesize より大きく設定する必要があります。 All-in-One WP Migrationで必要 |
upload_max_filesize | 5120M | 1つのファイルの最大ファイルサイズ。 All-in-One WP Migrationで必要 |
opcache.jit_buffer_size | 128M | コンパイル済みのJITコードを保存する共有メモリの合計サイズ。 0 を指定すると、JIT が無効になります。デフォルト値が0のため、JITを有効化するには本パラメータ設定が必要です。 |
ここまでの設定を実施したら、[保存]をクリックして、PHPプロファイルの作成を完了させます。
3.WebサイトへのPHP8.0の設定
[Web Station]>[Webサービスポータル]で、対象のWebサイトのポータルを選択し、[編集]をクリックします。
[仮想ホストを編集]ダイアログにて、[Backend]タブをクリックし、スクリプト言語の設定:PHPにて、プルダウンメニューから「2.PHP8.0のプロファイル設定」で作成したプロファイルを選択します。
[保存]をクリックして、WebサイトへのPHP8.0設定を完了させます。
設定完了後、Webサイトの動作に問題がないかを、一通り確認して、問題なければ完了です。
動作に問題があった場合は、設定したプロファイルを前のものに戻します。
4.まとめ
Synology DSMにて新たにリリースされたPHP8.0を本Webサイトに適用した経緯について紹介しました。
特にトラブルもなく運用していますが、記事中にも紹介している通り、テスト用サイトで事前に一通りの動作検証をおこなってから本番サイトに投入するという手順で実施しました。
PHP8.0で新規追加されたジャストインタイム(JIT)コンパイラーについては、有効化・無効化で目に見えての性能向上は見られませんでした。(一応、有効化設定のままで運用継続は行っています。)
以上、最後まで記事を読んでいただき、ありがとうございました。