ubuntu22.04にphp-fpm8.2をインストールしたいと思います。
インストール
パッケージのアップデート
まずさ最初にパッケージをアップデートします。
sudo apt update
リポジトリの追加
Ubuntuの標準リポジトリにphp 8系が登録されていないため、
別途ppa:ondrej/phpリポジトリを追加します。
sudo apt install software-properties-common
下記のコマンドの途中でEnterボタンを求めてきますので、そのままEnterします。
sudo add-apt-repository ppa:ondrej/php
php-fpmの追加
リポジトリの追加が終わったら、aptでphp-fpmをインストールします。
sudo apt install -y php-fpm php-curl php-mysql
バージョンの確認
php 8.2.7がインストールできました。
hide@x162-43-18-113:~$ php -v
PHP 8.2.7 (cli) (built: Jun 8 2023 15:27:40) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.2.7, Copyright (c) Zend Technologies
with Zend OPcache v8.2.7, Copyright (c), by Zend Technologies
4. php-domのインストール
後でDomエクステンションが必要になってくるので、ここでインストールしておきます。
sudo apt install php8.2-dom
初期設定
設定ファイルの場所(php-fpm)
sudo vim /etc/php/8.2/fpm/php-fpm.conf
中を確認してみると、最後の行に設定ファイルの場所の記述があります。
; Include one or more files. If glob(3) exists, it is used to include a bunch of
; files from a glob(3) pattern. This directive can be used everywhere in the
; file.
; Relative path can also be used. They will be prefixed by:
; - the global prefix if it's been set (-p argument)
; - /usr otherwise
include=/etc/php/8.2/fpm/pool.d/*.conf
hide@x162-43-18-113:~$ ls -la /etc/php/8.2/fpm/pool.d
合計 32
drwxr-xr-x 2 root root 4096 7月 7 17:39 .
drwxr-xr-x 4 root root 4096 7月 7 17:43 ..
-rw-r--r-- 1 root root 22096 6月 9 00:27 www.conf
www,confファイルが有るので、NginxとPHPがやり取りを行うソケットファイルの場所を探します。
less /etc/php/8.2/fpm/pool.d/www.conf
listenで検索すると、ソケットファイルの場所が探せます。
/run/php/php8.2-fpm.sock
がPHPとNginxとのやり取りを行うソケットです。これを後でNginxの設定ファイルに記述します。
設定ファイルの場所(php.ini)
ここでPHPの細かい設定を行います。
sudo vim /etc/php/8.2/fpm/php.ini
- memory_limitは初期が128M→512Mに変更
- post_max_sizeは初期が8M→32Mに変更
- upload_max_file_sizeは初期2M→16Mに変更
- max_file_uploadsは初期20→30に変更
起動
php-fpmの起動と自動起動設定
systemctlでOS起動時にサービスが開始されるか確認してみます。
systemctl list-unit-files --type=service | grep php
enabledとなっていれば、OKです。
nginxの設定
設定のdefaultファイルを開く
sudo vim /etc/nginx/sites-enabled/default
phpの箇所を有効化
56行目付近にphp設定のサンプルがコメントアウトされた状態で記載されています。
socketを使用する箇所のコメントを解除し有効化します。
パスを記述
パスを /run/php/php8.2-fpm.sock
に変更しましす。
fastcgi_paramの追加
下記の内容をfastcgi_passの下に追加します。
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
Nginxの再読込
編集が終わったらnginxの設定ファイルを再読込。
sudo service nginx reload
設定の確認
wwwのルートはデフォルトで「/var/www/html」となっています。
/var/www/html/info.phpを作成
sudo vim /var/www/html/info.php
下記を記述して保存します。
<?php phpinfo();
保存したらブラウザで確認します。
http://[VPSサーバーのIPアドレス]/info.php
下記の様にPHPの設定状況が確認できます。
info.phpファイルの削除
尚、確認後は上記info.phpファイルは必ず削除してください。PHP環境の全てが表示されますので、セキュリティ的に危険です。
sudo rm /var/www/html/info.php
コメント