CentOS配置apache和php-fpm
上一篇写的Ubuntu22.04如何配置apache和php-fpm,详见Ubuntu22.04如何配置apache和php-fpm
本篇记录下CentOS如何配置apache和php-fpm。
php-fpm的安装
安装apache、php、php-fpm时需要注意顺序,一般先安装apache。
apt install httpd
安装完apache之后,如果先安装php,之后会默认将php作为apache的模块使用,因此可以先安装php-fpm,再安装php。
apt install php-fpm
apt install php
apache配置文件
先进入/etc/httpd/目录下,这是apache的配置文件目录。
先进入conf.d目录,查看php.conf文件里是否默认有这么一段,意思是如果apache不使用mod_php5模块也不使用mod_php7模块,那么代理生效,代理到php-fpm。
php.conf的文件内容如下:
#
# The following lines prevent .user.ini files from being viewed by Web clients.
#
<Files ".user.ini">
Require all denied
</Files>
#
# Allow php to handle Multiviews
#
AddType text/html .php
#
# Add index.php to the list of files that will be served as directory
# indexes.
#
DirectoryIndex index.php
#
# Redirect to local php-fpm (no mod_php in default configuration)
#
<IfModule !mod_php5.c>
<IfModule !mod_php7.c>
# Enable http authorization headers
SetEnvIfNoCase ^Authorization$ "(.+)" HTTP_AUTHORIZATION=$1
<FilesMatch \.(php|phar)$>
SetHandler "proxy:unix:/run/php-fpm/www.sock|fcgi://localhost"
</FilesMatch>
</IfModule>
</IfModule>
#
# mod_php is deprecated as FPM is now used by default with httpd in event mode
# mod_php is only used when explicitly enabled or httpd switch to prefork mode
#
# mod_php options
#
<IfModule mod_php7.c>
#
# Cause the PHP interpreter to handle files with a .php extension.
#
<FilesMatch \.(php|phar)$>
SetHandler application/x-httpd-php
</FilesMatch>
#
# Uncomment the following lines to allow PHP to pretty-print .phps
# files as PHP source code:
#
#<FilesMatch \.phps$>
# SetHandler application/x-httpd-php-source
#</FilesMatch>
#
# Apache specific PHP configuration options
# those can be override in each configured vhost
#
php_value session.save_handler "files"
php_value session.save_path "/var/lib/php/session"
php_value soap.wsdl_cache_dir "/var/lib/php/wsdlcache"
#php_value opcache.file_cache "/var/lib/php/opcache"
</IfModule>
再进入conf.modules.d目录,修改*-php.conf,把php模块禁掉。
在LoadModule php7_module modules/libphp7.so前加上#。
重启apache和php-fpm生效。
systemctl restart httpd
systemctl restart php-fpm
php配置文件
php配置文件的在/etc/php.ini。无论php是作为apache的模块运行还是使用php-fpm,对应的配置文件都是/etc/php.ini。
php-fpm配置文件
php-fpm的相关配置文件有俩,一个是/etc/php-fpm.conf,另一个是/etc/php-fpm.d/www.conf。
php-fpm.conf用默认的就行。
www.conf要注意下面这行,如果是listen = 127.0.0.1:9000,改成:listen = /run/php-fpm/www.sock
www.conf最底下有些与php.ini一样名字的配置参数,如果没注释掉,以www.conf里的配置为主,比如php.ini里默认的session目录是/tmp,www.conf里的session目录是
/var/lib/php/session,如果用到了php的session功能,记得改/var/lib/php/session的目录权限,否则php的session功能用不了。
重启php-fpm生效。
systemctl restart php-fpm