Apache with php-fpm

From Alpine Linux
Revision as of 04:50, 19 April 2022 by Kk6mrp (talk | contribs) (minor edit)

Apache and PHP

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.

Step by Step Instructions

Install 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 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

You can edit the file /etc/php8/php-fpm.conf to suit you 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 you must reload related services.

rc-service php-fpm8 reload && rc-service apache2 reload

More info

apache wiki php-fpm manual