HCRM博客

如何在CentOS上配置和管理PHP-FPM服务?

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

安装前准备

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

如何在CentOS上配置和管理PHP-FPM服务?-图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上配置和管理PHP-FPM服务?-图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
上一篇
下一篇