# PHP 8.1 から 8.4 へアップグレードしました

# リポジトリを追加

Ubuntu 公式リポジトリには最新の PHP がないため、ondrej/php PPA を利用

apt update
apt install -y software-properties-common
add-apt-repository -y ppa:ondrej/php
apt update

ondrej/php とは?

Ubuntu 向けの非公式な PHP リポジトリ で、Ubuntu の公式リポジトリには含まれていない 最新の PHP バージョン を提供しています。

PPA とは?

Personal Package Archive の略で、Ubuntu のパッケージ管理システム(APT)に追加できる 個人や団体が提供するソフトウェアリポジトリ です。

# 必要に応じてパッケージインストール

apt install -y php8.4 php8.4-cli php8.4-fpm php8.4-mbstring php8.4-xml php8.4-curl php8.4-zip php8.4-mysql

# PHP のバージョンを切り替え

# 指定で変更
update-alternatives --set php /usr/bin/php8.4

# 選択して変更
update-alternatives --config php

以上!

あとは、必要に応じて、php-fpm の設定を変更したり

# 複数の PHP バージョンを切り替える方法

使ってみて、やはり前のバージョンのほうがいい!巻き戻したい時があったりしますね。
Ubuntu では、複数の PHP バージョンをインストールして 簡単に切り替えることが可能 です。

# インストール済みの PHP バージョンを確認

# lsコマンドでbin確認
ls /usr/bin/php*

# update-alternativesコマンドで確認
update-alternatives --query php

# PHP のバージョンを切り替える

update-alternatives --config php

# alternative php (/usr/bin/php を提供) には 2 個の選択肢があります。
#
#   選択肢    パス           優先度  状態
# ------------------------------------------------------------
# * 0            /usr/bin/php8.4   84        自動モード
#   1            /usr/bin/php8.1   81        手動モード
#   2            /usr/bin/php8.4   84        手動モード
#
# 現在の選択 [*] を保持するには <Enter>、さもなければ選択肢の番号のキーを押してください:

数字を入力して Enter を押せば、そのバージョンが有効になります。

# php-fpm を使っている場合

php-fpm とは

FPM (FastCGI Process Manager) は高負荷なウェブサイトやアプリケーションのパフォーマンスを向上させるために設計された PHP の FastCGI 実装です。

現在の php-fpm を停止と新しい php-fpm の起動が必要
シンボリックリンクを設定があるなら変更が必要

# 実行ファイル
ln -sf /usr/sbin/php8.4-fpm /usr/sbin/php-fpm

# ソケットファイル
ln -sf /run/php/php8.4-fpm.sock /run/php/php-fpm.sock

# Nginx fastcgi_pass 設定

fastcgi_pass unix:/run/php/php-fpm.sock;
2025-02-13
  • php

関連記事

正規表現一覧 よく使う検索・置換のパターン
Carbon で php date 日付の日数・月数差を計算
nuxtjs と codeigniter で jwt システム構築
Apache 初期設定メモ
Codeigniter APPPATH BASEPATH FCPATH 各種パスと URL 取得
開発におけるコーディングルール・規約
Codeigniter 画像アップロードとリサイズ
爆速軽量フレームワーク codeigniter PHP 開発
Composer コマンドとオプション
codeigniter email ライブラリでメール送信 日本語対応
php CSV データ取得は fgetcsv 使う
php curl 使って クリックなしで POST 送信
PHP empty isset is_null の違い
PHP mbconvertkana 全角半角英数カナ変換
FlattenException deprecated
allowurlinclude の設定で ftp_connect()エラー
php Exception エラーキャッチでメール送信
Class 'Imagick' not found Error
Laravel blade foreach loop と current url
Laravel eloquent model の規約
Laravel でカテゴリー作成 テーブル構築と再帰クエリ
Laravel Email バリデーションについて
Laravel Error についてのメモ
Laravel Log の基本設定&使い方
Laravel Lumen Faker 日本語設定
Laravel logger でエラーログを chatwork に自動送信
Lumen と Laravel 違い比較
Laravel メンテナンスモード
laravel method の基本 get post put options
Laravel を API サーバーとしての初期設定
Laravel リクエストログ出力
Laravel Sail で Docker 環境構築
Laravel Sanctum 使って API トークン JWT 認証と SPA 認証
laravel session を制する
Laravel Test についてのメモ
Laravel schedule 設定
Laravel timestamp() auto update 有効化無効化
Laravel tinker 使って DB データベース接続とコマンド
Laravel toSql パラメータ付きで出力
Laravel 5.1 から 8.1 にバージョンアップ
Laravel 429 Too Many Requests
laravel に vuejs 使うための初期設定
Lumen8 で JWT ユーザー認証
Lumen8 で API 開発
PHP 7.4 にアップグレードして使えなくなる機能
HTML から PDF に変換 PHP ライブラリ mPDF の設定
PHP 8 リリース新機能と変更
php.ini 初期設定のいろいろ
Smarty HTTP URL 取得できるサーバー関数
解決!phpMyAdmin テーブル構造の内容が表示されない問題
PHP 文字列長さ・文字列の幅を取得方法
twig 3 人気 PHP テンプレートエンジンがバージョンアップ
開発時によく使うゼロ埋めパディング作業まとめ
Exception: Class 'ZipArchive' not found