doudonn WEB制作やサーバーの話とかいろいろ

Ubuntu 22.04.1 LTSにPHP-FPMをインストール、php.ini、www.confの設定方法

  doudonn 更新日:
Ubuntu 22.04.1 LTSにPHP-FPMをインストール、php.ini、www.confの設定方法

Ubuntu 22.04.1 LTSでNginx&PHP-FPMを使う!

ここは特に難しくなく、インストールは普通にやればOKです。
悩むのはモジュールと各種設定だろう。

まとめてインストールするのが効率的ですが、個別に解説します。

Nginxのインストール方法の解説はこちら
Ubuntu 22.04.1 LTSに最新版Nginxをインストールする方法

1、PHP-FPMのインストール

<最新版をインストールするための下準備>

sudo apt install software-properties-common

sudo add-apt-repository ppa:ondrej/php

sudo apt update

この3つを実行してください。

<PHP-FPMのインストール>

apt -y install php8.2-fpm

※バージョンを指定してインストールすると確実

これで最新版がインストールされます。
2023年1月時点では「PHP 8.2.1 (fpm-fcgi)」でした。

同時にPHPもインストールされます。
こちらも最新版「PHP 8.2.1 (cli)」です。

<バージョンの確認方法>

php -v

これで表示されるバージョンがPHPもPHP-FPMも共通です。
「/etc/php」を見てもわかります。

2、PHPのモジュールのインストール

基本的には自分が必要なモジュールだけをインストールします。

※バージョンを入れた方が確実

<入れた方が良いもの>

apt -y install php8.2-curl php8.2-zip php8.2-mbstring php8.2-intl php8.2-imagick

<データベースの操作をするなら必須>

apt -y install php8.2-mysql

自分の場合はとりあえずこれでやっています。
後から自由に追加できるので、もし足りなかっても問題は無い。

3、php.iniの設定

「PHP」と「PHP-FPM」と別々に分かれています。
それぞれ編集してください。

<PHP>

/etc/php/8.2/cli/php.ini

<PHP-FPM8.2>

/etc/php/8.2/fpm/php.ini

<主な変更項目(PHP側のデフォルト値)>

max_execution_time = 30
max_input_time = 60
memory_limit = -1
post_max_size = 8M
upload_max_filesize = 2M
max_file_uploads = 20

<自分の場合>

max_execution_time = 120
max_input_time = 90
memory_limit = 128M
post_max_size = 10M
upload_max_filesize = 10M
max_file_uploads = 20

ここは自由に設定ください。

4、PHP-FPMの設定

<設定ファイル>

/etc/php/8.2/fpm/pool.d/www.conf

<デフォルト値>

[www]
user = www-data
group = www-data
listen = /run/php/php8.2-fpm.sock
listen.owner = www-data
listen.group = www-data
pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3

<自分の場合(さくらVPSメモリ1Gプラン)>

[www]
user = nginx
group = nginx
listen = /run/php/php8.2-fpm.sock
listen.owner = nginx
listen.group = nginx
pm = dynamic
pm.max_children = 6
pm.start_servers = 3
pm.min_spare_servers = 2
pm.max_spare_servers = 4

どの設定が一番良いかはよくわかっていない。
CPUコア数より気持ち多めにしています。
(これがメモリ的に限界)

5、Nginxの設定

location ~ \.php$ {
include fastcgi_params;
fastcgi_pass  unix:/run/php/php8.2-fpm.sock;
fastcgi_param SCRIPT_FILENAME  $document_root$fastcgi_script_name;
}

「fastcgi_pass」にPHP-FPMの設定ファイルにあるパスを記載するだけ。

6、以上です

PHP-FPMのプロセス量の設定が一番迷うところだろう。
ある人は「CPUコア数以上は無駄」と言うし、
ある人は「メモリの限界まで使う」と言う。

個人的にはメモリの限界まで使うのが正しいと思っています。
エックスサーバーは数百個起動しているので、
CPUコア数以上は無駄なんてことは無さそう(自分だけで50個くらい使ってた)。
そもそも、デフォルト設定が「5」です。

PHP-FPMのメモリ使用量ですが、
ワードプレス等メモリを多く使う場合はプロセス1個あたり100MB以上に増える。
自分の軽いPHPシステムでは1個あたり40MBほどです。
というのもあり、topコマンドで実際に使われているメモリ量を見て、それで判断したい。
「この設定が最強!」とかいうのは無いです。理屈をわかっていない人しか言えない。

少な目に設定して、abベンチなどして様子を見ながら限界に挑戦を。

サーバーの関連記事

記事一覧はこちら:サーバー

管理人について
doudonn
名前:doudonn(どうどん)
ひたすらWEB制作な人。
一応社長です。音ゲー好き

プロフィール
お知らせ

2022年11月30日に全記事削除しました。
無駄にページ表示速度にこだわってます。

役立ちサイト
wiki

プライバシーポリシー・広告について


© 2022-2024 doudonn All Rights Reserved.