HCRM博客

如何在CentOS上配置和管理PHPFPM服务?

在CentOS上安装和配置PHPFPM是一个多步骤的过程,涉及安装必要的依赖包、编译PHP源代码以及配置相关的服务,以下是一个详细的指南,包括常见问题的解答。

安装前准备

确保系统已经安装了必要的开发工具和库:

如何在CentOS上配置和管理PHPFPM服务?-图1
(图片来源网络,侵权删除)
yum y install gcc automake autoconf libtool make
yum y install gcc gccc++ glib2devel libxml2devel zlibdevel bzip2devel curldevel e2fsprogsdevel krb5devel libmcryptdevel libjpegdevel libpngdevel freetypedevel libxsltdevel recodedevel libicudevel openssldevel sqlitedevel wget

下载并解压PHP源代码

从PHP官方站下载所需的PHP版本源代码,例如PHP 7.4.12:

wget https://www.php.net/distributions/php7.4.12.tar.gz
tar xzvf php7.4.12.tar.gz
cd php7.4.12

配置PHP编译选项

在编译PHP时,需要指定一些配置选项,以确保PHPFPM和其他所需模块被正确编译:

./configure prefix=/usr/local/php \
withconfigfilepath=/usr/local/php/etc \
enablefpm \
withfpmuser=nginx \
withfpmgroup=nginx \
enableinlineoptimization \
disabledebug \
disablerpath \
enableshared \
enablesoap \
withxmlrpc \
withopenssl \
withmcrypt \
withpcreregex \
withsqlite3 \
withzlib \
enablebcmath \
withiconv \
withbz2 \
enablecalendar \
withcurl \
withcdb \
enabledom \
enableexif \
enablefileinfo \
enablefilter \
withpcredir \
enableftp \
withgd \
withopenssldir \
withjpegdir \
withpngdir \
withfreetypedir \
enablegdnativettf \
enablegdjisconv \
withgettext \
withgmp \
enablejson \
enablembstring \
enablembregex \
enablembregexbacktrack \
withlibmbfl \
withonig \
enablepdo \
withmysqli=mysqlnd \
withpdomysql=mysqlnd \
withzlibdir \
withpdosqlite \
withreadline \
enablesession \
enableshmop \
enablesimplexml \
enablesockets \
enablesysvmsg \
enablesysvsem \
enablesysvshm \
enablewddx \
withlibxmldir \
withxsl \
enablezip \
enablemysqlndcompressionsupport \
withpear \
enableopcache

编译和安装PHP

执行以下命令以编译和安装PHP:

make && make install

配置PHPFPM

将配置文件复制到合适的位置,并修改启动用户和组:

cd /usr/local/php/etc
cp phpfpm.conf.default phpfpm.conf
cp sapi/fpm/init.d.phpfpm init.d/phpfpm
cp sapi/fpm/www.conf.default sapi/fpm/www.conf

编辑www.conf文件,设置正确的监听地址和用户组:

[www]
listen = /var/run/phpfpm/phpfpm.sock
user = nginx
group = nginx
pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35
chdir = /

启动PHPFPM服务

创建PHPFPM启动脚本,并将其添加到系统服务中:

如何在CentOS上配置和管理PHPFPM服务?-图2
(图片来源网络,侵权删除)
cp sapi/fpm/init.d/phpfpm /etc/init.d/phpfpm
chmod +x /etc/init.d/phpfpm
chkconfig add phpfpm
service phpfpm start

配置Nginx使用PHPFPM

编辑Nginx配置文件(例如/etc/nginx/nginx.conf),添加以下配置以支持PHP处理:

location ~ \.php$ {
    try_files $uri =404;
    fastcgi_pass unix:/var/run/phpfpm/phpfpm.sock;
    fastcgi_index index.php;
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}

重启Nginx服务以应用更改:

systemctl restart nginx

验证安装

创建一个测试PHP文件,例如/usr/share/nginx/html/test.php如下:

<?php phpinfo(); ?>

然后在浏览器中访问http://your_server_ip/test.php,如果看到PHP信息页面,说明PHPFPM已成功安装并配置。

常见问题及解答(FAQ)

Q1: PHP编译时出现“oniguruma”错误怎么办?

A1: CentOS默认可能没有安装oniguruma库,可以通过以下命令安装:

yum install oniguruma onigurumadevel y

然后再重新编译PHP。

Q2: PHPFPM无法启动或报错怎么办?

A2: 检查PHPFPM的错误日志,通常位于/var/log/phpfpm/error.log,根据日志中的提示进行相应的调整,常见的问题包括权限不足、配置文件错误等,确保/var/run/phpfpm/phpfpm.sock文件的权限正确,并且phpfpm.conf中的用户和组设置正确。

本站部分图片及内容来源网络,版权归原作者所有,转载目的为传递知识,不代表本站立场。若侵权或违规联系Email:zjx77377423@163.com 核实后第一时间删除。 转载请注明出处:https://blog.huochengrm.cn/pc/17909.html

分享:
扫描分享到社交APP
上一篇
下一篇