比如说我要装fileinfo拓展(laravel5.8需要)
1.检查所需要的拓展是否有安装:
php -i | grep fileinfo
--disable-fileinfo 说明这个拓展并没有。
2.下载并解压拓展
方式有多种,可以单独下载源码拓展,也可以直接下载对应php版本的源码包,这里砸门采用第二种,因为如果以后还想装其他拓展的话,就不用再去下载了。
2.1 检查php版本
php -v
2.2 下载源码包
地址:https://www.php.net/downloads.php
找到自己的对应版本的源码压缩包,鼠标右键就能复制该超链接地址。
例如我的是7.3.6的:
地址为:https://www.php.net/distributions/php-7.3.6.tar.gz
在linux上我们可以使用wget工具进行下载。
或者用windows点击下载,然后用winscp等工具上传(其实这种方式下载比较快,wget贼鸡儿慢)
在此简单说明一下wget 和 wget -O 的区别
wget 下载链接 默认会以最后一个符合”/”的后面的字符来命令
例如我下载上面那个源码包,获得的文件就是php-7.3.6.tar.gz
而是用-O 就可以对下载文件进行重命名,例如
wget -O php7.tar.gz https://www.php.net/distributions/php-7.3.6.tar.gz
则获得的文件就是php7.tar.gz
2.3 解压压缩包
不同后缀的解压命令或参数有所不同,如下
tar -zxvf php-7.3.6.tar.gz
uzip php-7.3.6.zip
tar -jxvf php-7.3.6.tar.bz2
tar -Jxvf filename.tar.xz
tar -Zxvf filename.tar.Z
但是事实上, 从1.15版本开始tar就可以自动识别压缩的格式,故不需人为区分压缩格式就能正确解压
tar -xvf filename.tar.gz tar -xvf filename.tar.bz2 tar -xvf filename.tar.xz tar -xvf filename.tar.Z
3.准备编译拓展啦
3.1解压完进入拓展目录:
cd php-7.3.6/ext
你会发觉一堆拓展都在,放图
然后咋办呢,找到你那个,进去啊!
cd fileinfo
3.2 用phpize生成configure 文件
先看看你的phpize在哪里:
whereis phpize 如果不在全局命令的那个目录的话,就得使用绝对路径了,或者你用ln -s 目录+源文件 目标生成目录+文件生成一个符号链接,也可以全局使用。
我的是在/usr/bin/phpzie这里。刚好是全局命令,所以可以直接使用phpize
直接在该目录执行:
phpize
会发觉生成了configure文件
3.3 编译安装
指定配置文件
./configure -with-php-config=/usr/local/php/bin/php-config
如果报文件没找到,可能你的php-config路径不对,whereis一下然后改下后面路径即可
再执行:
make&&make install
3.4 在php.ini里面加上拓展
这里注意一下,编译安装的拓展是直接全局的,在配置文件只需要拓展文件名称,不需要路径
whereis php.ini
一般在:/usr/local/php/etc/php.ini
在最后面加上
extension=fileinfo
重启fpm 即可
/etc/init.d/php-fpm restart
检查拓展:php-m
其他的拓展安装方式也是一样的。在此简单记录流程。
安装过程中若遇到无法解决的问题,欢迎在下方评论交流