Apache with php-fpm: Difference between revisions
m (fix code block) |
(Stop using the prefork module with the PHP DSO.) |
||
Line 13: | Line 13: | ||
'''Configure Apache''' | '''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: | Add the following lines to /etc/apache2/httpd.conf: | ||
Line 19: | Line 24: | ||
SetHandler "proxy:fcgi://127.0.0.1:9000" | SetHandler "proxy:fcgi://127.0.0.1:9000" | ||
</FilesMatch> | </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''' | '''Configure PHP-FPM''' |
Revision as of 04:49, 19 April 2022
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