ubuntu に PHPをインストールする 20260412
1.日本語UTF-8を使う設定
$ sudo apt install language-pack-ja
2.phpのレポジトリを追加
$ sudo add-apt-repository ppa:ondrej/php
$ sudo apt update
$ sudo apt upgrade
3.PHPのインストール
Ubuntuが推奨中のバージョンを確認する。$ sudo apt show php
Package: php Version: 2:8.4+101~+ubuntu24.04.1+deb.sury.org+1 Priority: optional :まずはパッケージリストのアップデート。$ sudo apt update
次のどちらかでinstallする。
(1) 推奨中のバージョンをインストールする場合$ sudo apt install php
(2) バージョン指定でをインストールする場合
$ sudo apt install php8.4
インストール後にでPHPのバージョンを表示する。
$ php -v
PHP 8.4.20 (cli) (built: Apr 11 2026 07:43:26) (NTS) Copyright (c) The PHP Group Built by Debian Zend Engine v4.4.20, Copyright (c) Zend Technologies with Zend OPcache v8.4.20, Copyright (c), by Zend Technologies
4.apache2の再起動
PHPがインストールされたのでapache2を起動または再起動する
まだapache2が起動されていなかったら,起動する
$ sudo service apache2 start
すでにapache2が起動されていたら,再起動する
$ sudo service apache2 restart
5.PHPの単独テスト
・ファイルtestphp.phpを次のようにubuntuのDocumentRoot (/var/www/html)に作る。
-------------------------------------
<?php
-------------------------------------
print "Hello! from PHP\n";
?>
/var/www/htmlにおいて,つぎのコマンドで実行する。
$ php /var/www/html/testphp.php
が表示されればOK。これでPHPの動作が確認できた
Hello! from PHP
6.モジュールの追加とチェック
マルチバイト文字,jpegファイル,zipを使いたいのでモジュールを追加する。
(1) 推奨中のバージョンの場合$ sudo apt install php-mbstring
(2) バージョン指定の場合
$ sudo apt install php-gd
$ sudo apt install php-zip
$ sudo apt install php8.4-mbstring
モジュールをチェックする
$ sudo apt install php8.4-gd
$ sudo apt install php8.4-zip
$ php -m
[PHP Modules] calendar Core ctype date exif FFI fileinfo filter ftp gd gettext hash iconv json libxml mbstring openssl pcntl pcre PDO Phar posix random readline Reflection session shmop sockets sodium SPL standard sysvmsg sysvsem sysvshm tokenizer Zend OPcache zlib [Zend Modules]
7.php.iniの修正
モジュール mbstring gd zip が追加されたので
/etc/php/8.4/apache2/php.ini
を修正する。
$ sudo nano /etc/php/8.4/apache2/php.ini
920行目あたり
extension=gd
extension=mbstring
の「;」を消して有効化する
extension=zip
をそれらの後ろに追加する
設定を変更したのでapache2を再起動する。
$ sudo service apache2 restart
8.PHPファイルのブラウザでの表示
apache2が動作していなかったら起動する(起動していたら再起動する)
まだapache2が起動されていなかったら,起動する
$ sudo service apache2 start
すでにapache2が起動されていたら,再起動する
$ sudo service apache2 restart
ここでブラウザで http://localhost/testphp.php をアクセスし,
Hello! from PHP
が表示されればOK。
9.PHPの設定状況の表示
10.おまけ (複数バージョンPHPの使用)(必要なら)
/var/www/html/info.phpを次のように作る
-------------------------------------
<?php
-------------------------------------
phpinfo();
?>
ここでブラウザで http://localhost/info.php にアクセスし,
phpの設定項目が表になって表示される。
mbstringに関する情報も表の中に項目として表示されていたら,mbstringも認識OK。
(表が表示されたら,ブラウザのページ内検索で「mbstring」を検索するとよい。)
php8.4が動作するようになったが,かつて使用実績のあるphp8.2も動かすことにした。
(1) phpの古いバージョンをインストールできるようにする
(1.1) パッケージのアップデートを確認
$ sudo apt update
(1.2) software-properties-commonパッケージをインストールする。
$ sudo apt install software-properties-common
(1.3) リポジトリを追加する
$ sudo add-apt-repository ppa:ondrej/php
(1.4) 再度パッケージのアップデートを確認
$ sudo apt update
(1.5) PHPをバージョン指定でインストールする
$ sudo apt install php8.2
(1.6) 必要に応じて拡張機能もインストール
$ sudo apt install php8.2-gd
$ sudo apt install php8.2-mbstring
:
(1.7) 拡張機能をインストールしたのでphp.iniも修正
php.iniは次のところにある。
/etc/php/8.2/apache2/php.ini
(2) CLI(コマンドラインインターフェイス)でのPHP
PHPのバージョンの切り替え
$ sudo update-alternatives --set php /usr/bin/php8.2
(php8.4に戻す時 $ sudo update-alternatives --set php /usr/bin/php8.4)
で交互に入れ替えられる。
入れ替え結果は
$ php -v
で確認できる。
(3) apache2でのPHP
CLIが切り替わっても,apache2が使用するPHPは切り替わっていないので切り替える
(3.1)モジュールのインストール
ApacheのPHP8.2モジュール設定をインストールする。
$ sudo apt install libapache2-mod-php8.2
(3.2)PHP8.2モジュールの有効化
$ sudo a2enmod php8.2
(php8.4に戻す時 $ sudo a2enmod php8.4)
(3.3)不要になったPHP8.4モジュールの無効化
PHP8.2モジュールを有効化しただけでは、PHPのバージョンが競合してApacheが起動できなくなる。
そのため,a2dismodコマンドでPHP8.4モジュールを無効化する。
削除されるわけではない。
$ sudo a2dismod php8.4
(php8.4に戻す時 $ sudo a2dismod php8.2)
(3.4) Apache再起動
$ sudo service apache2 restart