패키지 이름은 php-fpm이다. .
sudo apt install php-fpm
sudo apt install php8.1-fpm # 버전 이름을 직접 지정하는 경우
버전 이름을 지정하지 않으면 우분투 버전에 따른 기본값에 해당하는 버전을 설치하는 것 같은데 어차피 PHP 패키지는 버전마다 한가지 버전만 있는 것 같다.
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
bzip2 mailcap mime-support php-common php8.1-cli php8.1-common php8.1-fpm php8.1-opcache php8.1-readline
Suggested packages:
bzip2-doc php-pear
The following NEW packages will be installed:
bzip2 mailcap mime-support php-common php-fpm php8.1-cli php8.1-common php8.1-fpm php8.1-opcache php8.1-readline
0 upgraded, 10 newly installed, 0 to remove and 6 not upgraded.
Need to get 5256 kB of archives.
After this operation, 21.7 MB of additional disk space will be used.
Do you want to continue? [Y/n]
systemd 서비스 이름은 php버전-fpm이다.
sudo systemctl status php8.1-fpm
sudo systemctl disable apache2
sudo apt remove apache2
유닉스 소켓 파일은 /run/php/php8.1-fpm.sock;에 있고 버전 이름이 안붙은 php-fpm.sock도 있는데 php8.1-fpm.sock로 향하는 심볼릭 링크이다.
ls -la /run/php/
total 4
drwxr-xr-x 2 www-data www-data 100 Jan 13 20:51 .
drwxr-xr-x 38 root root 1160 Jan 13 20:10 ..
lrwxrwxrwx 1 root root 30 Jan 13 20:51 php-fpm.sock -> /etc/alternatives/php-fpm.sock
-rw-r--r-- 1 root root 7 Jan 13 20:51 php8.1-fpm.pid
srw-rw---- 1 www-data www-data 0 Jan 13 20:51 php8.1-fpm.sock
유닉스 소켓에서 TCP로 전환하려면
/etc/php/버전/fpm/pool.d/www.conf 에서
listen = /run/php/php8.1-fpm.sock을
listen = localhost:9000으로 바꿔야 한다.
소켓 파일의 소유자와 www.conf파일의 내용을 보면 php가 www-data사용자로 실행하는 것을 확인할 수 있었다.
PHP 확장의 패키지 이름은 php버전-모듈이름 이고 마찬가지로 버전을 생략하면 기본값의 버전이 붙는다.
sudo apt install php-mysqli
sudo apt install php8.1-mysqli
cat /lib/systemd/system/php8.1-fpm.service
[Unit]
Description=The PHP 8.1 FastCGI Process Manager
Documentation=man:php-fpm8.1(8)
After=network.target
[Service]
Type=notify
ExecStart=/usr/sbin/php-fpm8.1 --nodaemonize --fpm-config /etc/php/8.1/fpm/php-fpm.conf
ExecStartPost=-/usr/lib/php/php-fpm-socket-helper install /run/php/php-fpm.sock /etc/php/8.1/fpm/pool.d/www.conf 81
ExecStopPost=-/usr/lib/php/php-fpm-socket-helper remove /run/php/php-fpm.sock /etc/php/8.1/fpm/pool.d/www.conf 81
ExecReload=/bin/kill -USR2 $MAINPID
[Install]
WantedBy=multi-user.target