Homestead 中如何安装PHP Yaf扩展

Go qloog · 2018年05月20日 · 最后由 qloog 回复于 2018年05月26日 · 2387 次阅读


默认安装好的 Homestead 中没有安装 yaf 扩展,如果想在 Homesatead 中使用yaf扩展,需要手动安装下,下面来一步一步操作下。

这里以PHP 7.2 版本为例进行介绍

登录到虚拟机

vagrant ssh

pecl 安装

使用pecl 安装

sudo pecl install yaf

可能会提示

WARNING: channel "pecl.php.net" has updated its protocols, use "pecl channel-update pecl.php.net" to update
Cannot install, php_dir for channel "pecl.php.net" is not writeable by the current user

提示内容告诉我们两个要注意的:

  • 建议 执行 pecl channel-update pecl.php.net 来更新channel
  • 当前用户没有可写权限

更新pecl channel

sudo pecl channel-update pecl.php.net

结果

Updating channel "pecl.php.net"
Update of Channel "pecl.php.net" succeeded

说明更新成功。

安装yaf

sudo pecl install yaf

执行结果


.....

running: make INSTALL_ROOT="/tmp/pear/temp/pear-build-rootrhPLgR/install-yaf-3.0.7" install
Installing shared extensions:     /tmp/pear/temp/pear-build-rootrhPLgR/install-yaf-3.0.7/usr/lib/php/20170718/
running: find "/tmp/pear/temp/pear-build-rootrhPLgR/install-yaf-3.0.7" | xargs ls -dils
1974702    4 drwxr-xr-x 3 root root    4096 May 20 09:52 /tmp/pear/temp/pear-build-rootrhPLgR/install-yaf-3.0.7
2106594    4 drwxr-xr-x 3 root root    4096 May 20 09:52 /tmp/pear/temp/pear-build-rootrhPLgR/install-yaf-3.0.7/usr
2106595    4 drwxr-xr-x 3 root root    4096 May 20 09:52 /tmp/pear/temp/pear-build-rootrhPLgR/install-yaf-3.0.7/usr/lib
2106596    4 drwxr-xr-x 3 root root    4096 May 20 09:52 /tmp/pear/temp/pear-build-rootrhPLgR/install-yaf-3.0.7/usr/lib/php
2106597    4 drwxr-xr-x 2 root root    4096 May 20 09:52 /tmp/pear/temp/pear-build-rootrhPLgR/install-yaf-3.0.7/usr/lib/php/20170718
2106593 1412 -rwxr-xr-x 1 root root 1442040 May 20 09:52 /tmp/pear/temp/pear-build-rootrhPLgR/install-yaf-3.0.7/usr/lib/php/20170718/yaf.so

Build process completed successfully
Installing '/usr/lib/php/20170718/yaf.so'
install ok: channel://pecl.php.net/yaf-3.0.7
configuration option "php_ini" is not set to php.ini location
You should add "extension=yaf.so" to php.ini

查看yaf扩展位置

sudo ls /usr/lib/php/20170718 |grep yaf

所有的扩展都位于 /usr/lib/php/20170718 目录下,查看需要sudo 权限

配置yaf扩展

新建yaf.ini文件

sudo vim /etc/php/7.2/mods-available/yaf.ini

加入以下代码

extension=yaf.so

添加软连接

// fpm
sudo ln -s /etc/php/7.2/mods-available/yaf.ini /etc/php/7.2/fpm/conf.d/20-yaf.ini

// cli
sudo ln -s /etc/php/7.2/mods-available/yaf.ini /etc/php/7.2/cli/conf.d/20-yaf.ini

重启php-fpm

sudo service php7.2-fpm restart

验证

验证yaf模块是否成功安装

php -i |grep yaf

如果有以下结果, 说明安装成功。

vagrant@homestead:~$ php -i |grep yaf
/etc/php/7.2/cli/conf.d/20-yaf.ini,
yaf
yaf support => enabled
Supports => http://pecl.php.net/package/yaf
yaf.action_prefer => Off => Off
yaf.environ => product => product
yaf.forward_limit => 5 => 5
yaf.library => no value => no value
yaf.lowcase_path => Off => Off
yaf.name_separator => no value => no value
yaf.name_suffix => On => On
yaf.st_compatible => Off => Off
yaf.use_namespace => Off => Off
yaf.use_spl_autoload => Off => Off

注意

所有命令最好都加上 sudo, 否则会有报错提示。

共收到 2 条回复


Rago 2018年05月24日

homestead 还是很方便的,特别是开发多项目的时候,改改配置就搞定。

qloog 2018年05月26日

@Rago 没错,使用后就会爱上它 : )