php-fpm - Man Page

PHP FastCGI Process Manager 'PHP-FPM'

Synopsis

php-fpm [options]

Description

PHP is a widely-used general-purpose scripting language that is especially suited for Web development and can be embedded into HTML. This is a variant of PHP that will run in the background as a daemon, listening for CGI requests. Output is logged to /var/log/php-fpm.log.

Most options are set in the configuration file. The configuration file is /etc/php-fpm.conf. By default, php-fpm will respond to CGI requests listening on localhost http port 9000. Therefore php-fpm expects your webserver to forward all requests for '.php' files to port 9000 and you should edit your webserver configuration file appropriately.

Options

-C

Do not chdir to the script's directory

--php-ini path|file
-c path|file

Look for php.ini file in the directory path or use the specified file

--no-php-ini
-n

No php.ini file will be used

--define foo[=bar]
-d foo[=bar]

Define INI entry foo with value bar

-e

Generate extended information for debugger/profiler

--help
-h

This help

--info
-i

PHP information and configuration

--modules
-m

Show compiled in modules

--version
-v

Version number

--prefix path
-p

Specify alternative prefix path (the default is /usr)

--pid file
-g

Specify the PID file location.

--fpm-config file
-y

Specify alternative path to FastCGI process manager configuration file (the default is /etc/php-fpm.conf)

--test
-t

Test FPM configuration file and exit If called twice (-tt), the configuration is dumped before exiting.

--daemonize
-D

Force to run in background and ignore daemonize option from configuration file.

--nodaemonize
-F

Force to stay in foreground and ignore daemonize option from configuration file.

--force-stderr
-O

Force output to stderr in nodaemonize even if stderr is not a TTY.

--allow-to-run-as-root
-R

Allow pool to run as root (disabled by default)

Files

php-fpm.conf

The configuration file for the php-fpm daemon.

php.ini

The standard php configuration file.

Examples

For any unix systems which use init.d for their main process manager, you should use the init script provided to start and stop the php-fpm daemon.

sudo /etc/init.d/php-fpm start

For any unix systems which use systemd for their main process manager, you should use the unit file provided to start and stop the php-fpm daemon.

sudo systemctl start php-fpm.service

If your installation has no appropriate init script, launch php-fpm with no arguments. It will launch as a daemon (background process) by default. The file /var/run/php-fpm.pid determines whether php-fpm is already up and running. Once started, php-fpm then responds to several POSIX signals:

SIGINT,SIGTERM immediate termination

SIGQUIT graceful stop

SIGUSR1 re-open log file

SIGUSR2 graceful reload of all workers + reload of fpm conf/binary

Tips

The PHP-FPM CGI daemon will work well with most popular webservers, including Apache2, lighttpd and nginx.

See Also

For a more or less complete description of PHP-FPM look here:

https://www.php.net/fpm

Bugs

You can view the list of known bugs or report any new bug you found at:

https://github.com/php/php-src/issues

Authors

PHP-FPM SAPI was written by Andrei Nigmatulin. The mailing-lists are highload-php-en (English) and highload-php-ru (Russian).

The PHP Group: Thies C. Arntzen, Stig Bakken, Andi Gutmans, Rasmus Lerdorf, Sam Ruby, Sascha Schumann, Zeev Suraski, Jim Winstead, Andrei Zmievski.

A List of active developers can be found here:

https://www.php.net/credits.php

And last but not least PHP was developed with the help of a huge amount of contributors all around the world.

Version Information

This manpage describes php-fpm, version 8.4.2RC1.

Info

2024 The PHP Group Scripting Language