最近的PHP项目中,需要用到切图和缩图的效果,在linux开发环境,安装过程遇到好多问题,在此与大家分享
报错信息类似于;
PHP Fileinfo extension must be installed/enabled to use Intervention Image
GD Library extension not available with this PHP installation
大致的意思就是你没有安装这些扩展;
你不能使用这些函数;
今天就和小伙伴们分享一些安装php扩展的经验;
所谓前人栽树后人乘凉吗;
php提供了扩展官网;
哪里不会点哪里;
首先服务器上面需要安装php
没安装php的小伙伴可以安装PHP
进入到php的源码包位置 注意是源码包位置 , 不是安装位置
cd /usr/local/src/php-7.1.20/ext/fileinfo //我这里源码包的路径
ll 看一下;
发现里面没有 configure 这个文件夹;
这里我们需要执行一下;
/usr/local/php/bin/phpize
如果php安装的路径不是我这个路径;
还可以执行这个命令找到 phpize;
which phpize //返回phpize的路径
该phpize命令是用来为PHP扩展准备构建环境;
想详细了解的 点这里
Configuring for:
PHP Api Version: 20160303
Zend Module Api No: 20160303
Zend Extension Api No: 320160303
出现以上的字幕说明成功了;
ll 看一下 出现了configure这个文件夹;
然后我们在执行下命令;
./configure -with-php-config=/usr/local/php/bin/php-config //-with-php-config=php配置文件路径
make && make install //编译 及 安装
哎呀, 我在这一步报了过错;
没有报错的小伙伴可以接着往下走make: *** [libmagic/apprentice.lo] Error 1
;
编译时内存不足;
这个问题网上的大部分回答都是;
在./configure脚本后面加上 --disable-fileinfo
;
但是我加上了 还是没有用 (╥╯^╰╥);
最后通过这种办法解决了;
添加swap交换内存;
#1.进入目录
cd /var
#2.获取要增加的SWAP文件块(这里以1GB为例)
dd if=/dev/zero of=swapfile bs=1024 count=1038336
#3.创建SWAP文件
/sbin/mkswap swapfile
#4.激活SWAP文件
/sbin/swapon swapfile
#5.查看SWAP信息是否正确
/sbin/swapon -s
#6.添加到fstab文件中让系统引导时自动启动
echo "/var/swapfile swap swap defaults 0 0" >>/etc/fstab
操作示例;
[root@iZ25uog2aivZ var]# dd if=/dev/zero of=swapfile bs=1024 count=1038336
1038336+0 records in
1038336+0 records out
1063256064 bytes (1.1 GB) copied, 19.287 s, 55.1 MB/s
[root@iZ25uog2aivZ var]# /sbin/mkswap swapfile
Setting up swapspace version 1, size = 1038332 KiB
no label, UUID=59e3b114-ed70-4d64-af01-2d02873fa358
[root@iZ25uog2aivZ var]# /sbin/swapon swapfile
swapon: /var/swapfile: insecure permissions 0644, 0600 suggested.
[root@iZ25uog2aivZ var]# /sbin/swapon -s
Filename Type Size Used Priority
/var/swapfile file 1038332 0 -1
[root@iZ25uog2aivZ var]# echo "/var/swapfile swap swap defaults 0 0" >>/etc/fstab
[root@iZ25uog2aivZ var]# free -m
total used free shared buffers cached
Mem: 992 923 69 81 1 309
-/+ buffers/cache: 611 381
Swap: 1013 0 1013
然后继续执行 make && make install
发现不报错了 (╥╯^╰╥) OK;
----------------------------------------------------------------------
Libraries have been installed in:
/usr/local/src/php-7.1.20/ext/curl/modules
If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:
- add LIBDIR to the `LD_LIBRARY_PATH' environment variable
during execution
- add LIBDIR to the `LD_RUN_PATH' environment variable
during linking
- use the `-Wl,--rpath -Wl,LIBDIR' linker flag
- have your system administrator add LIBDIR to `/etc/ld.so.conf'
See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
Build complete.
Don't forget to run 'make test'.
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20160303/ //存放扩展的路径
看到以上的代码 , 就说明编译安装成功了 (╥╯^╰╥)
错误解决与没有报错的小伙伴 可以直接到这一步;
接下来就可以修改 php.ini文件了;
这里我装作不知道php.ini文件在哪个地方 (其实我真的不知道);
可以执行命令;
[root@VM_0_16_centos curl]# php -i | grep php.ini
Configuration File (php.ini) Path => /usr/local/php/lib
Loaded Configuration File => /usr/local/php/lib/php.ini
编辑php.ini文件
vim /usr/local/php/lib/php.ini
找到这个
;/extension_dir
修改成
extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20160303/" //这个路径对应着上面那个存放扩展的路径
在下面加上
extension=fileinfo.so
然后在重新启动 php
pkill php-fpm //杀死php进程
/usr/local/php/sbin/php-fpm //启动php
进入phpinfo 说明 fileinfo安装成功
本文为史大坨原创文章,转载无需和我联系,但请注明来自史大坨博客https://www.shidatuos.cn