Apache with php-fpm: Difference between revisions
(Stop using the prefork module with the PHP DSO.) |
m (→See Also: Changed a link to https) |
||
(2 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
{{Merge|Apache|Everything in one place seems logical}} | |||
PHP-FPM is the Fast Process Manager for PHP which runs as a service that spawns PHP processes as needed when files files are requested through the FastCGI interface. Passing this off to the PHP-FPM results in interpreting the PHP files much faster than having Apache spawn new processes each time a page is requested. You can read more about it [https://php-fpm.org/ here]. | PHP-FPM is the Fast Process Manager for PHP which runs as a service that spawns PHP processes as needed when files files are requested through the FastCGI interface. Passing this off to the PHP-FPM results in interpreting the PHP files much faster than having Apache spawn new processes each time a page is requested. You can read more about it [https://php-fpm.org/ here]. | ||
=== | == Instructions == | ||
=== Installation === | |||
Install required packages | |||
{{Cmd|# apk add apache2-proxy php8-fpm}} | |||
{{Cmd| | |||
Run and add services to startup | |||
{{Cmd|# rc-service php-fpm8 start | |||
# rc-update add php-fpm8 | |||
# rc-service apache2 start | |||
# rc-update add apache2}} | |||
=== Configure === | |||
==== Configure Apache ==== | |||
Uncomment the mpm_event module and comment the mpm_prefork module like so: | Uncomment the mpm_event module and comment the mpm_prefork module like so: | ||
Line 19: | Line 28: | ||
#LoadModule mpm_prefork_module modules/mod_mpm_prefork.so | #LoadModule mpm_prefork_module modules/mod_mpm_prefork.so | ||
Add the following lines to /etc/apache2/httpd.conf: | Add the following lines to {{Path|/etc/apache2/httpd.conf}}: | ||
<FilesMatch \.php$> | <FilesMatch \.php$> | ||
Line 25: | Line 34: | ||
</FilesMatch> | </FilesMatch> | ||
Comment out the following lines in /etc/apache2/conf.d/php8-module.conf: | Comment out the following lines in {{Path|/etc/apache2/conf.d/php8-module.conf}}: | ||
#LoadModule php_module modules/mod_php8.so | #LoadModule php_module modules/mod_php8.so | ||
#DirectoryIndex index.php index.html | #DirectoryIndex index.php index.html | ||
#<FilesMatch \.php$> | #<FilesMatch \.php$> | ||
# SetHandler application/x-httpd-php | # SetHandler application/x-httpd-php | ||
Line 36: | Line 45: | ||
==== Configure PHP-FPM ==== | |||
Edit the file {{Path|/etc/php8/php-fpm.conf}} to suit your needs. | |||
In the configuration you may need to change the default user and group from nobody to another user such as <code>apache</code>: | |||
user = apache | user = apache | ||
group = apache | group = apache | ||
Restart apache2 and PHP-FPM after editing the configuration: | |||
{{Cmd|# rc-service php-fpm8 reload && rc-service apache2 reload}} | |||
== See Also == | |||
* [[Apache]] | |||
* [https://wiki.apache.org/httpd/PHP-FPM Apache Wiki entry on PHP-FPM] | |||
* [https://php.net/manual/en/install.fpm.configuration.php PHP-FPM Manual] | |||
[[Category:Web Server]] | [[Category:Web Server]] | ||
[[Category:PHP]] | [[Category:PHP]] |
Latest revision as of 20:40, 26 July 2023
This material is proposed for merging ... It should be merged with Apache. Everything in one place seems logical (Discuss) |
PHP-FPM is the Fast Process Manager for PHP which runs as a service that spawns PHP processes as needed when files files are requested through the FastCGI interface. Passing this off to the PHP-FPM results in interpreting the PHP files much faster than having Apache spawn new processes each time a page is requested. You can read more about it here.
Instructions
Installation
Install required packages
# apk add apache2-proxy php8-fpm
Run and add services to startup
# rc-service php-fpm8 start # rc-update add php-fpm8 # rc-service apache2 start # rc-update add apache2
Configure
Configure Apache
Uncomment the mpm_event module and comment the mpm_prefork module like so:
LoadModule mpm_event_module modules/mod_mpm_event.so #LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
Add the following lines to /etc/apache2/httpd.conf:
<FilesMatch \.php$> SetHandler "proxy:fcgi://127.0.0.1:9000" </FilesMatch>
Comment out the following lines in /etc/apache2/conf.d/php8-module.conf:
#LoadModule php_module modules/mod_php8.so #DirectoryIndex index.php index.html #<FilesMatch \.php$> # SetHandler application/x-httpd-php #</FilesMatch>
Configure PHP-FPM
Edit the file /etc/php8/php-fpm.conf to suit your needs.
In the configuration you may need to change the default user and group from nobody to another user such as apache
:
user = apache group = apache
Restart apache2 and PHP-FPM after editing the configuration:
# rc-service php-fpm8 reload && rc-service apache2 reload