使用 YUM 安装 PHP 后,还有一些默认配置需要修改。

一、修改 php.ini

可以使用下面的命令找到 php.ini 的位置:

$ sudo find / -name php.ini

可以看到其位置是 /etc/php.ini,打开:

$ sudo vi /etc/php.ini

修改其默认参数:

expose_php = Off
cgi.fix_pathinfo = 0
date.timezone = "Asia/Shanghai"
display_errors = Off

参数解析:

更多参数可以查看最后的参考文章。

二、修改 PHP-FPM 配置文件

PHP-FPM 配置文件结构与 Nginx 的类似,全局配置文件为 /etc/php-fpm.conf,其中引入了在 /etc/php-fpm.d 目录中的所有配置文件。在 /etc/php-fpm.conf 文件的开头可以看到下面一行:

include=/etc/php-fpm.d/*.conf

/etc/php-fpm.d 目录中的配置文件用于将 PHP-FPM 的进程池(pool)区分开来,用意是当一个进程池的资源被耗尽时,不会影响到其它进程池。假如,在 Nginx 中配置了 2 个虚拟服务器,那么就可以在 PHP-FPM 中创建对应的两个进程池配置文件,每个文件单独设置各自的进程数限制(默认 128)和套接字。这样的话,当 Nginx 中的一个虚拟服务器访问量过高造成其对应的 PHP-FPM 进程池耗尽时,不会影响另一个虚拟服务器的正常访问。进程池名以文件名进行区分。在 /etc/php-fpm.d 目录中,可以看到一个默认的进程池配置文件 www.conf

回到全局配置文件 /etc/php-fpm.conf

$ vi /etc/php-fpm.conf

可以看到下面这一行:

pid = /run/php-fpm/php-fpm.pid

由于 /run/php-fpm 这个目录并不存在,在启动 PHP-FPM 时会报错,所以需要提前创建好:

$ cd /run
$ sudo mkdir php-fpm

接着修改默认的进程池文件:

$ sudo vi /etc/php-fpm.d/www.conf

将下面 2 项修改的与 Nginx 中配置的用户一致:

user = nginx
group = nginx

配置文件修改后可以使用下面的命令检查配置文件:

$ sudo php-fpm -t

假如使用套接字文件与 Nginx 通信,而不是经过 TCP 端口,那么 listen.ownerlisten.group 也要修改。

启动 PHP-FPM:

$ # 启动
$ sudo php-fpm
$ # 设置为开机自启
$ sudo systemctl enable php-fpm.service

启动后可以用下面的命令查看 PHP-FPM 的主进程及默认的 www 进程池:

$ ps aux | grep php-fpm

三、配置 Nginx 相关指令

打开 Nginx 的 server 配置文件:

$ sudo vi /etc/nginx/conf.d/default.conf

将默认被注释掉的处理 PHP 文件的 location 指令块前面的 # 删除:

location ~ \.php$ {
        root           /path/to/php;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }

修改 root 指令,将默认目录改为刚刚创建的目录;

修改 fastcgi_parm 指令,将默认的第二个参数 /scripts$fastcgi_script_name 改为 $document_root$fastcgi_script_name

重启 Nginx:

$ # 检测 Nginx 配置文件语法
$ sudo nginx -t
$ # 重启 Nginx
$ sudo nginx -s reload

四、参考文章

php.ini 常用的配置

php.ini 配置调优 —— 让 PHP 应用性能维持在更高水平

(完)