PHP增量安装readline.so模块支持交互模式

问题

由于之前编译安装php的时候,只编译了最基本的模块,今天突然想用PHP的交互模式php -a,就是像python那样,进入交互模式后,可以在命令行模式下执行一些代码打印结果,这对于测试函数得用法是很方便的,但是当我运行php -a的时候,输入echo 1却没有输出。原因是缺少readline模块。

在这里插入图片描述

解决

安装readline,由于它依赖2个模块,re2clibedit-dev,我们先对其进行安装,然后在安装readline。

步骤如下:

1、安装re2c,libedit-dev,yum install libedit-devel -yyum install re2c -y

2、 进入php编译好的源码位置,我的位置是/usr/local/php7.4.5/php-7.4.5cd /usr/local/php7.4.5/php-7.4.5 在这里插入图片描述
3、进入ext,如下找到了readline。

在这里插入图片描述
4、进入readline进行编译

  • cd readline

  • 执行/usr/local/php7.4.5/bin/phpize,这时候会在readline目录下生成相应的configure文件 (其实phpize是一个运行脚本,主要作用是检测php的环境还有就是在特定的目录生成相应的configure文件,这样makeinstall之后,生成的.so文件才会自动加载到php扩展目录下面)
    在这里插入图片描述

  • ./configure --with-php-config=/usr/local/php7.4.5/bin/php-config
    在这里插入图片描述

  • make

  • make install
    在这里插入图片描述

  • 我们进入/usr/local/php7.4.5/lib/php/extensions/no-debug-zts-20190902,看到生成了readline.so
    在这里插入图片描述

  • 在php.ini引入扩展extension=readline.so,我们先用php -r "phpinfo();"|grep php.ini查看用的php.ini的位置。
    在这里插入图片描述

  • 修改php.ini。
    在这里插入图片描述
    在这里插入图片描述

查看效果

在这里插入图片描述

参考连接:https://blog.csdn.net/weixin_38674371/article/details/84714696

猜你喜欢

转载自blog.csdn.net/kiramario/article/details/119089211