如何在Ubuntu 16.04上安装PHP 7.1的yaml扩展而非7.2版本
给PHP 7.1安装YAML扩展的解决办法
针对你在Ubuntu 14.04服务器上给PHP 7.1安装yaml扩展时遇到的问题,我整理了一套踩坑后验证有效的步骤,你可以跟着一步步来:
1. 搞定匹配版本的依赖包
你之前用的php-dev可能会默认关联到其他PHP版本,导致后续编译出错,咱们直接指定PHP7.1的开发包:
- 先更新下源缓存:
sudo apt update - 安装对应版本的依赖:
sudo apt install -y libyaml-dev php7.1-dev php-pear
2. 通过PECL安装兼容的YAML版本
PHP7.1不支持最新版的yaml扩展,咱们指定兼容的2.0.4版本安装:
sudo pecl install yaml-2.0.4
安装过程中如果提示enable yaml serializer support? [no] :,直接回车选默认就行。
3. 手动启用扩展
PECL安装完后不会自动帮你配置,得手动加配置文件:
- 给CLI模式的PHP加配置:
sudo echo "extension=yaml.so" > /etc/php/7.1/cli/conf.d/20-yaml.ini - 如果你的网站用的是PHP-FPM(比如搭配Nginx),还要给FPM加配置:
sudo echo "extension=yaml.so" > /etc/php/7.1/fpm/conf.d/20-yaml.ini
4. 验证安装结果
- 先重启PHP-FPM(如果用了的话):
sudo service php7.1-fpm restart - 执行下面的命令检查是否生效:
php -m | grep yaml
如果输出yaml,就说明安装成功了!也可以用更直观的方式验证:
php -r "var_dump(extension_loaded('yaml'));"
返回bool(true)就没问题啦。
常见小问题排查
- 要是安装时提示
phpize: command not found,说明php7.1-dev没装对,重新执行sudo apt install php7.1-dev就行 - 要是扩展不生效,检查下配置文件路径是不是对的,Ubuntu14.04里PHP7.1的配置目录就是
/etc/php/7.1/,cli和fpm是分开的 - 碰到依赖冲突的话,先删掉通用的
php-dev包:sudo apt remove php-dev && sudo apt autoremove,再重新装php7.1-dev
内容的提问来源于stack exchange,提问作者phpguru
相关产品推荐
相关产品推荐

