由于 PHP 打开 fileinfo(php 参数 –enable-fileinfo)需要大量系统资源才能编译通过,考虑到小内存机器,因此默认 OneinStack fileinfo 不支持,需额外再安装,如果你没安装则会提示:
PHP function mime_content_type() is missing, try enabling fileinfo module.
这样的问题应该是需要安装 [Fileinfo PHP] 扩展才可以继续安装。如果我们当前服务器环境是使用的 OneInStack 一键 WEB 配置的,那就相对比较简单,直接内置有扩展可以快速安装。
第一、快速安装扩展
切换到 oneinstack 安装的根目录下执行 ./addons.sh
脚本, 根据提示可以直接安装成功
第二、手工编译安装
并不是所有的 PHP 扩展都可以通过 ./addons.sh
脚本安装成功, 如果需要安装脚本中没有提供的 PHP 扩展, 就可以使用源码编译安装, 下面我们已 yaf 扩展为例讲解:
# 新建一个文件夹存放下载好的 PHP 扩展压缩包
mkdir php-extension
# 进入刚才的目录中, 下载 PHP 扩展源码包, 基本上都可以在 PECL 找到需要的 PHP 扩展
wget https://pecl.php.net/get/yaf-3.0.7.tgz
# 解压文件
tar zxvf yaf-3.0.7.tgz
# 查看解压的文件目录
ll
package.xml yaf-3.0.7 yaf-3.0.7.tgz
# 切换到解压好的目录下
cd yaf-3.0.7
# 进项源码编译
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make && make install
# 编译完成后切换到编译好的扩展存放的目录之下
cd /usr/local/php/lib/php/extensions
# 查看有没有 no-debug-non-zts-20160303 类似文件夹
ls
# 进入 o-debug-non-zts-20160303 文件夹下
cd no-debug-non-zts-20160303
# 查看有没有 yaf.so 扩展, 如果有, 证明编译成功
ls
# 向 php.ini 配置文件加载 yaf.so 扩展
echo 'extension=yaf.so' > /usr/local/php/etc/php.d/ext-yaf.ini
# 重启 PHP
service php-fpm restart
这样就安装好了 PHP 扩展.