当前位置: 首页 > article >正文

在麒麟系统安装php7.4中遇到的问题

一、安装过程

下载相关php安装包,进行解压,进入安装包,进行编译安装,编译

./configure

--prefix=/soft/php74

--with-config-file-path=/soft/php74/etc

--with-libdir=/usr/lib64

--with-freetype=/usr/include/freetype2/freetype/

--with-jpeg=/usr/lib64

--disable-rpath

--with-curl

--enable-gd

--with-gettext

--with-mysqli

--with-openssl

--with-openssl-dir

--with-iconv

--with-zip

--with-pdo-mysql

--with-pdo-sqlite

--with-xsl

--with-zlib

--with-bz2

--with-mhash

--enable-fpm

--enable-pdo

--enable-session

--enable-simplexml

--enable-bcmath

--enable-mbregex

--enable-mbstring

--enable-opcache

--enable-pcntl

--enable-shmop

--enable-soap

--enable-sockets

--enable-sysvmsg

--enable-sysvsem

--enable-sysvshm

--enable-mysqlnd

--enable-xml

--enable-phar

如果没有报错就进行编译安装

make && make install

在进行make的时候报错如下:make: *** [ext/phar/phar.php]

解决方法如下:make ZEND_EXTRA_LIBS='-liconv'

二、问题排查

安装的过程中基本没出现什么问题,主要问题出现在php启动的时候,本次的环境是进行php版本升级,由7.2升级到7.4,安装成功后查看phpinfo信息总是显示php版本为7.2,无法切换到新安装的版本。通过分析发现,nginx是通过fastcgi进程管理器与php进行通信,php-fpm为进程管理器的一种,所以初步判断是nginx无法正常与php通信造成的,中间的主要遇到的问题如下:

1、手动启动php-fpm,访问系统提示502,查看日志报错如下:

主要报错原因为nginx和php-fpm的配置sock方式不同,原有的nginx配置方式为为通过文件进行访问,内容如下

而新的php-fpm的访问方式为通过监听端口的方式(可通过查看配置文件,配置文件路径为php7_4/etc/php-fpm.d/www.conf),具体内容如下

解决方法:

修改enable-php.conf 文件,修改内容如下:

location ~ [^/].php(/|$)

{

try_files $uri =404;

fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

include fastcgi.conf;

}

在nginx中引用该配置文件(nginx配置文件如下:/usr/local/nginx/conf/nginx.conf),内容如下:

2、修改后报错如下:

提示被拒绝,错误信息如下:

通过排查发现少修改了vhost下的enable-php,修改后即可成功

备注:

手动启动php-fpm:php-fpm -c /usr/local/php7_4/lib/php.ini -y /usr/local/php7_4/etc/php-fpm.conf

当存在多版本php时,通过软连接进行版本切换:ln -sf /usr/local/php7_4/bin/php /usr/bin/php

断开所有php-fpm进程连接:pkill -9 php-fpm

重启php-fpm:

systemctl stop php-fpm

systemctl start php-fpm


http://www.kler.cn/a/287951.html

相关文章:

  • VSCode设置
  • 加速 AI 创新:引入 Elastic AI 生态系统
  • AI大模型(一):Prompt AI编程
  • 超好用shell脚本NuShell mac安装
  • Gitcode文件历史记录查看和还原
  • RabbitMQ 与 PHP Swoole 实现
  • uniapp微信小程序3D XR-FRAME
  • 机器学习之监督学习(二)逻辑回归(二元分类问题)
  • 【ESP32】mqtt 发送和接收
  • 半导体是什么?
  • Spark MLlib模型训练—回归算法 Random forest regression
  • 【uniapp重大bug】uni-data-select的localdata改变,也会触发@change方法
  • Unity(2022.3.41LTS) - UI简介,了解
  • 鸿蒙(API 12 Beta3版)【媒体资源使用指导】Media Library Kit媒体文件管理服务
  • PHP高效进销存管理系统智能管理库存销售与采购系统小程序源码
  • Java 实现二叉树展平为链表
  • python打包 exe 提示no module named flask
  • 关于zotero无法识别拖入的pdf和caj的题录信息
  • 安全随机数生成指南
  • 38次8.28(docker03:容器网络,主从镜像)
  • 23种设计模式之代理模式
  • 如何写接口自动化测试断言?
  • SpringBoot 数据访问-jpa
  • 【CSS】如何写渐变色文字并且有打光效果
  • 嵌入式系统基础知识介绍
  • DAY65