PHP安装扩展模块

hcwei 2020年06月10日 80次浏览

1、下载源码包进入模块目录

下载同版本的php源码包,解压后进入ext目录,此为模块目录。

cd /tools/package/php-7.2.8/ext/

2、进入需要添加的模块目录

这里以gettext为例,进入gettext目录。

cd gettext

3、指定php-config文件编译安装

路径要根据自己的php安装路径确定,我这里php是安装在/applications下:

/applications/php-7.2.8/bin/phpize
./configure --with-php-config=/applications/php-7.2.8/bin/php-config
make
make install

并在/application/php-7.2.8/lib/php/extensions/no-debug-non-zts-20170718中生成gettext.so文件,如图:

4、修改php.ini文件添加上gettext配置

查询php.ini文件路径:

/application/php-7.2.8/bin/php -i | grep php.ini

配置文件中追加extension=gettext:

echo "extension=gettext" >>/application/php-7.2.8/lib/php.ini

5、重启php

pkill php
/application/php-7.2.8/sbin/php-fpm

6、查看模块是否启用

/application/php-7.2.8/bin/php -m

问题:

使用过程中错误日志中出现以下报错:

[29-Nov-2018 05:50:33 UTC] PHP Warning:  PHP Startup: Invalid library (maybe not a PHP library) 'gettext.so' in Unknown on line 0

对比之前安装swoole报错:

[14-Nov-2018 01:40:33 UTC] PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/local/php/lib/php/extensions/no-debug-non-zts-20160303/swoole.so' - /usr/local/php/lib/php/extensions/no-debug-non-zts-20160303/swoole.so: cannot open shared object file: No such file or directory in Unknown on line 0

发现swoole报错是文件未找到或者in Unknown on line 0;考虑可能是文件权限问题,发现php安装目录是root权限,而php使用时用的是www权限,固将php安装路径修改为www权限:

chown -R www.www /application/php

然后重启php:

pkill php
/application/php-7.2.8/sbin/php-fpm

最后测试问题解决。