LoginSignup
2
0

More than 1 year has passed since last update.

ラズパイにPHP8.2を導入した

Posted at

PHP8.2は簡単には入れられない

標準リポジトリを探してもPHP8.2は見つからない。
なんなら8.1もない。8.0はあるけど面白くない。

# apt search php8.2
ソート中... 完了
全文検索... 完了  

前提パッケージを導入

PHPをインストールするためには色々と前提パッケージを入れる必要がある。

build-essential

gccやmakeなど、開発に必要なビルドツールをまとめてインストールできる。
もしかしたら最初から入ってるかもしれない。

# apt -y install build-essential

apt-transport-https

aptでhttp通信ができるようにするパッケージ。デフォルトだとhttp通信ができないようである。最新のaptだと対応しているらしいので要らないかもしれないらしい。

# apt -y install apt-transport-https

ca-certificates

https通信するためのCA証明書。これがないとhttps通信に失敗するらしい。
これも最初から入ってるかも。

# apt -y install ca-certificates

リポジトリ追加(失敗)

PPA(非公式なリポジトリ)であるオンドレイ氏のリポジトリを追加して、インストールする方法。
ですが、失敗したので飛ばしても良いです。Ubuntuならこれでいけるっぽいです。

software-properties-common

後述するadd-apt-repositoryを使えるようにする。

# apt install -y software-properties-common

リポジトリ追加

非公式なものを使うときは、ご自身の責任のもと使うようにしましょう。
私は、ネットで調べて有名そうなものを使うようにしています。

オンドレイ氏のリポジトリを追加しようとしたが、エラー!

# add-apt-repository ppa:ondrej/php
Traceback (most recent call last):
  File "/usr/bin/add-apt-repository", line 95, in <module>
    sp = SoftwareProperties(options=options)
  File "/usr/lib/python3/dist-packages/softwareproperties/SoftwareProperties.py", line 109, in __init__
    self.reload_sourceslist()
  File "/usr/lib/python3/dist-packages/softwareproperties/SoftwareProperties.py", line 599, in reload_sourceslist
    self.distro.get_sources(self.sourceslist)    
  File "/usr/lib/python3/dist-packages/aptsources/distro.py", line 91, in get_sources
    raise NoDistroTemplateException(
aptsources.distro.NoDistroTemplateException: Error: could not find a distribution template for Raspbian/bullseye

調べてみたところ、これはUbuntu用のPPAのようで、RaspbianOSに対応したものではないらしい。
※ただし、無理やり使えるようにする方法もあるみたい。
https://qiita.com/hnw/items/734f82bee26a40269c1b

OSのバージョンは以下のコマンドで調べることができる。
lsb_releaseは最初から入ってそうだが、なければapt -y install lsb-releaseでインストールする。

# lsb_release -a
No LSB modules are available.
Distributor ID: Raspbian
Description:    Raspbian GNU/Linux 11 (bullseye)
Release:        11
Codename:       bullseye

リポジトリ追加(成功)

suryPPAリポジトリを使う方法。

GPGキーをダウンロード

wgetコマンドで、GPGキーをダウンロードします。
GPGキーの詳細は割愛しますが、これで認証することで、suryリポジトリをパッケージリストに追加できるようになります。
wgetが使えない場合は、apt install -y wgetでインストールします。

# wget -qO /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg

パッケージリストを追加

echoコマンドで追加。

# echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list

パッケージリストを更新する

# apt update

パッケージ確認

php8.2関連のパッケージが追加されたことを確認できた。

# apt search php8.2
ソート中... 完了
全文検索... 完了  
libapache2-mod-php8.2/bullseye 8.2.0-1+0~20221208.9+debian11~1.gbp03fa1d armhf
  server-side, HTML-embedded scripting language (Apache 2 module)

libapache2-mod-php8.2-dbgsym/bullseye 8.2.0-1+0~20221208.9+debian11~1.gbp03fa1d armhf
  debug symbols for libapache2-mod-php8.2

libphp8.2-embed/bullseye 8.2.0-1+0~20221208.9+debian11~1.gbp03fa1d armhf
  HTML-embedded scripting language (Embedded SAPI library)

〜〜〜省略〜〜〜

PHP関連パッケージをインストール

PHP本体

# apt install -y php8.2

phpをインストールすると標準でphp-cliなど、いくつかのパッケージがインストールされる。
dpkg -lコマンドでインストールされているパッケージを確認できる。RedHat系OSでいうところのrpmコマンドのようなもの。

# dpkg -l | grep php
ii  libapache2-mod-php8.2                  8.2.0-1+0~20221208.9+debian11~1.gbp03fa1d  armhf        server-side, HTML-embedded scripting language (Apache 2 module)
ii  php-common                             2:93+0~20221211.45+debian11~1.gbpdb4dcc    all          Common files for PHP packages
ii  php8.2                                 8.2.0-1+0~20221208.9+debian11~1.gbp03fa1d  all          server-side, HTML-embedded scripting language (metapackage)
ii  php8.2-cli                             8.2.0-1+0~20221208.9+debian11~1.gbp03fa1d  armhf        command-line interpreter for the PHP scripting language
ii  php8.2-common                          8.2.0-1+0~20221208.9+debian11~1.gbp03fa1d  armhf        documentation, examples and common module for PHP
ii  php8.2-opcache                         8.2.0-1+0~20221208.9+debian11~1.gbp03fa1d  armhf        Zend OpCache module for PHP
ii  php8.2-readline                        8.2.0-1+0~20221208.9+debian11~1.gbp03fa1d  armhf        readline module for PHP

その他に必要なパッケージがあれば別途インストールが必要。

php-mysql

PHPでMySQLやMariaDBを取り扱うためのパッケージ。

# apt install -y php8.2-mysql

おわり

とりあえずここまで。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0