7.1 外部リポジトリ Ondřej Surý PPA の導入
Ubuntu標準の枠を超え、OSがサポートを終了した古いバージョンや、出たばかりの最新PHPを安全に導入するための絶対規律である。
apt install -y software-properties-common
add-apt-repository ppa:ondrej/php -y
apt update
7.2 PHPマルチバージョン一括導入(正典リスト)
旧マニュアルに記された互換性維持のための全リストを網羅する。24.04 Nobleにおいては、ここへPHP 8.3 および 8.4(任意)を追加し、未来に備える。
# PHP 5.6 (レガシー資産用)
apt install -y php5.6 php5.6-common php5.6-fpm php5.6-mysql php5.6-gd php5.6-intl php5.6-curl php5.6-imap php5.6-mcrypt php5.6-mbstring php5.6-opcache php5.6-xml
# PHP 7.x 系統 (安定稼働用)
apt install -y php7.0 php7.0-common php7.0-fpm php7.0-mysql php7.0-gd php7.0-intl php7.0-curl php7.0-imap php7.0-mcrypt php7.0-mbstring php7.0-opcache php7.0-xml
apt install -y php7.4 php7.4-common php7.4-fpm php7.4-mysql php7.4-gd php7.4-intl php7.4-curl php7.4-imap php7.4-mbstring php7.4-opcache php7.4-xml
# PHP 8.x 系統 (現代・Noble標準)
apt install -y php8.1 php8.1-common php8.1-fpm php8.1-mysql php8.1-gd php8.1-intl php8.1-curl php8.1-imap php8.1-mbstring php8.1-opcache php8.1-xml
apt install -y php8.2 php8.2-common php8.2-fpm php8.2-mysql php8.2-gd php8.2-intl php8.2-curl php8.2-imap php8.2-mbstring php8.2-opcache php8.2-xml
apt install -y php8.3 php8.3-common php8.3-fpm php8.3-mysql php8.3-gd php8.3-intl php8.3-curl php8.3-imap php8.3-mbstring php8.3-opcache php8.3-xml
7.3 【Noble追加規律】PHP 8.3 互換性パッチの執行
Ubuntu 24.04 標準の PHP 8.3 において、ISPConfig 3.3.1p1 は count(null) 判定による致命的エラーを発生させる。これを修正しなければ管理画面の設定保存が完遂できない。本構築において発見され、執行された「生きたパッチ」をここに記録する。
【不具合箇所】 /usr/local/ispconfig/interface/lib/classes/tform_base.inc.php 1524行目
# count判定を empty 判定へ置換(PHP 8.3厳格化への対応)
sed -i "s/if(count($this->formDef\['tabs'\]\[$tab\]\['fields'\]) == 0)/if(empty($this->formDef\['tabs'\]\[$tab\]\['fields'\]))/g" /usr/local/ispconfig/interface/lib/classes/tform_base.inc.php
systemctl restart php8.3-fpm
7.4 デフォルトPHPの切り替え
システム全体(CLI)で優先されるPHPバージョンを規定する。
update-alternatives --set php /usr/bin/php8.3
update-alternatives --set phar /usr/bin/phar8.3
7.5 ISPConfig UI への追加PHP登録規律
[System] > [Additional PHP Versions] に、導入した各バージョンを紐付ける。これにより、同一サーバー内のWebサイトごとに異なる規律(PHPバージョン)を割り当てることが可能となる。