首先要知道yaconf是干啥滴!https://blog.youkuaiyun.com/weixin_39166924/article/details/95740573
下载安装包 (首先要安装git) https://www.jianshu.com/p/89a2917ff5c1
找个合适的位置 我是放在了/usr/software 专门放安装软件的位置
git clone https://github.com/laruence/yaconf.git
下载完成进入yaconf目录 cd yaconf 编译生成so文件 ( 找到安装php的目录 )
cd yaconf
/usr/bin/phpize7.0 #我是将phpize安装到了该位置 就用你自己安装的位置就行
./configure --with-php-config=/usr/bin/php-config #后边写你自己php-config所在的位置
进行编译安装
make -j && make install
找个地方创建一个文件夹 比如我在/media/sf_ubt/下创建了ini文件夹用来存放所有的配置文件后缀统一都是.ini 比如我创建了ceshi.ini 然后在里面写入内容为:
name=“hsl”
password=111111
保存即可
当然也可以写其他格式的比如map类型的 https://blog.youkuaiyun.com/weixin_39166924/article/details/95740573文章当中都有介绍
安装完成了之后我们需要修改php.ini配置文件添加上yaconf.so扩展
这个地方要特别注意 我的linux环境下有两个php.ini配置文件 我发现我在程序里面打印phpinfo看到的php.ini路径和在cli模式下执行php -i | grep php.ini 看到的php.ini路径是不一样的 这说明fpm和cli下php.ini配置文件根本就不是一样 所以我们要找到这两个php.ini配置文件都加上扩展 这样可以保证在fpm模式下运行和在cli模式下运行都是正常的!
这里说另外一种简单的安装yaconf的方法 直接执行命令:
pecl install yaconf
这一句话可以代替上边所有的操作 然后再往下走即可
extension=yaconf.so
yaconf.directory=/media/sf_ubt/ini #写你自己创建的文件夹路径
yaconf.check_delay=100 #心跳检查时间,若为0则不检查,但如果有修改,需重启PHP
不要忘记重启服务
service php7.0-fpm restart
service nginx restart
然后可以通过php -m 查看是否安装好了yaconfg扩展 如果有yaconf说明cli模式下php.ini当中有了yaconf扩展
然后打印phpinfo 在界面上看看是否有了yaconf扩展
要保证两者都有才行
在cli终端测试一下 随便在哪个地方创建个php文件写上:
<?php
$yaconf = new Yaconf();
echo $yaconf::get('ceshi.name'); //其实就是在获取php.ini配置文件当中yaconf.directory指向的路径下的ceshi.ini里面的name的值
?>
php test.php 即可得到结果
在thinkphp5.1当中测试一下: 我们在fpm的php.ini配置文件当中可能会这么写:
extension=yaconf.so [yaconf] yaconf.directory="/var/www/html/tp5" 表示配置文件都存放在了改目录下 yaconf.check_delay=60
在项目根目录下创建think.ini配置文件 里面写上:
name=‘hsl’
password=111111由于默认Yaconf使用多个配置文件,建议在项目中使用setYaconf方法指定Yaconf使用的独立配置文件,例如
建议在应用的公共函数文件中进行设置 common.php
think\facade\Config::setYaconf('thinkphp');
在相关位置直接使用:
Config::yaconf('name')
即可获取配置参数的值
或者直接使用类:echo \Yaconf::get(‘thinkphp.name’);die;
详解:https://www.cnblogs.com/tinywan/p/9528200.html