默认安装好的 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
, 否则会有报错提示。