Blog icon indicating copy to clipboard operation
Blog copied to clipboard

在 Arch Linux 下如何安装php扩展

Open codcodog opened this issue 7 years ago • 0 comments

在 Arch Linux 下如何安装php扩展

场景

由于当初的PHPpacman安装而不是源码安装的, 并且自己的Arch也好久没滚动更新了, 导致想安装PHP 扩展的时候:

$ sudo pacman -S php-sqlite

Error 404 找不到下载链接, 毕竟好久没更新系统了.

而且又不是源码安装, 因此不能使用源码安装的办法, 详情请戳PHP安装扩展

如何安装扩展

这里介绍的办法, 同上面的PHP安装扩展其实差不多, 只不过是多了几步而已.

首先查看自己的PHP版本,

$ php --version  

输出:

PHP 7.0.9 (cli) (built: Jul 20 2016 17:12:28) ( NTS  )
Copyright (c) 1997-2016 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies

然后去http://www.php.net/releases/官网, 找到自己的PHP版本, 下载回来本地, 这里, 博主选择的是7.0.9版本.

下载回来之后, 解压进入ext目录:

$ tar xfz php-7.0.9
$ cd php-7.0.9/ext/pod_sqlite/  # 博主安装pdo_sqlite这个扩展

然后在这个目录下运行:

$ phpize

在这里可能会遇到类似这样的错误:

Cannot find config.m4. 
Make sure that you run '/opt/local/bin/phpize' in the top level source directory of the module

在该目录下, ls 可以看到一个config0.m4文件,

$ cp config0.m4 config.m4

然后依次运行:

$ phpize
$ ./configure
$ make clean && make && make install 

然后我们需要的pdo_sqlite.so文件就生成在当前路径的modules目录下.

然后把pdo_sqlite.so复制到我们pacman安装的php动态库中, 在这里, 博主的是:

$ cp modules/pdo_sqlite.so /usr/lib/php/modules/

(PS: 如果不知道自己的动态库位置在那里, 在php.ini中打开pdo_sqlite.so扩展之后, 在命令行使用php -m | grep sqlite会收到相应的提示, 例如: PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/pdo_sqlite.so')

最后, 重启下php服务, 尝试使用pdo_sqlite.so扩展, ok了!

codcodog avatar Jul 11 '17 16:07 codcodog