概要
Ubuntu 26.04でWebアプリ(Nextcloudを想定)を動かす際の柱であるPHPのインストールを行います。
盛大にはまったポイント
2026/04/23にリリースされた26.04。導入されるミドルウェアの最新性がキモでした。
筆者が前項でやったレポジトリ追加は「26.04には対応してない。そもそもミドルウェアが合ってない」など言われましたが、
「リポジトリを追加するまでもなく最新版がインストールされる」ことに気づきませんでした。
さっくりとした手順
- システムを最新化します。
- PHP 8.5本体を導入します。
- 必須モジュールをインストールします。
- PHP-FPMを導入します。
- 高速化設定を行います。(OPcache, APCu周り)
- 設定を反映します。
システムの更新
まずは標準リポジトリを最新の状態にします。
sudo aptitude update
PHP 8.5 本体と Redis サーバーのインストール
メタパッケージ(バージョン指定なし)を使用することで、OSが最適な 8.5 系を自動選択します。
sudo aptitude install php php-fpm php-common php-cli php-readline redis-server
当初筆者はPHP8.4を選択していたのですが、そこが盛大なはまりポイントでした。(PHPの動向を追っていなかったという失態もあります)
Nextcloud 必須・推奨拡張モジュールのインストール
Nextcloudの動作に不可欠なモジュール群を一括で導入します。
sudo aptitude install php-{bcmath,bz2,curl,gd,gmp,intl,ldap,mbstring,mysql,sockets,xml,zip,imagick,redis,apcu,memcached}
Apache 連携設定 (PHP-FPM版)
Apacheで PHP 8.5 を FPM 経由で動作させる設定です。
sudo a2enmod proxy_fcgi setenvif
sudo a2enconf php8.5-fpm
sudo systemctl restart apache2
5. PHP 8.5 高速化設定 (OPcache / APCu)
Nextcloudの警告を消し、パフォーマンスを最大化するための設定です。
- OPcache設定の作成
cat <<- __EOF__ | sudo tee /etc/php/8.5/mods-available/opcache.ini > /dev/null
; configuration for php opcache module
opcache.enable=1
opcache.enable_cli=1
opcache.interned_strings_buffer=16
opcache.max_accelerated_files=10000
opcache.memory_consumption=256
opcache.save_comments=1
opcache.revalidate_freq=1
__EOF__
→ 既にあるファイルを上書きます。(切り戻し想定せず)
- APCu設定の作成
cat <<- __EOF__ | sudo tee /etc/php/8.5/mods-available/apcu.ini > /dev/null
extension=apcu.so
[apcu]
apc.enabled=1 apc.shm_size=32M apc.ttl=7200 apc.enable_cli=1 apc.serializer=php __EOF__
設定の有効化
sudo phpenmod opcache apcu
このphpenmodもハマりポイントでした。従来の ln -sではなく、専用コマンドを用いることでfpm / cli / apache-mod でも安定した運用が可能になります。
サービスの再起動と確認
sudo systemctl restart php8.5-fpm
sudo systemctl restart redis-server
sudo systemctl restart apache2
- バージョンの確認
php -v
※ with Zend OPcache v8.5.4 等 と表示されれば正解です。
備考:PHPを用いるWebアプリ設定の確認
Apacheの各サイト設定ファイル (/etc/apache2/sites-available/*.conf) 内で、必ず 8.5 のソケットを指定してください。
<FilesMatch \.php$>
SetHandler "proxy:unix:/var/run/php/php8.5-fpm.sock|fcgi://localhost/"
</FilesMatch>
これを入れないと、
The requested URL was not found on this server.
Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.
の非情なるメッセージが返ってきます。
コメントを残す