在网站服务器运维管理工具中,经常使用的就是宝塔面板(https://www.bt.cn/)了,非常好用非常方便并且功能强大,大家有需要的可以去官网查看。
在管理多个站点过程中,由于不同源码使用了不同PHP版本,因此安装了多个PHP版本。
我的服务器版本为CentOS 7.3,宝塔面板版本为免费版 7.2.0,由于部署了新的网站代码,部分组件需要使用composer进行安装,因此打开ssh命令行工具,进入站点根目录,直接运行 composer install,提示报错:
大概意思是putenv()被禁用,导致无法执行。
这个问题很明确,就是默认PHP安装时禁用了一些可能导致影响安全的函数或方法,要启用也很简单,找到相关的PHP配置文件修改了就可以了。
由于此站点采用了PHP7.2版本,也没多想就直接打开宝塔面板管理后台,在PHP7.2的配置管理进行了修改:
然后到命令行重新输入命令执行,仍然报 putenv被禁用 错误,重新了PHP甚至Web服务器还是不行。
明明已经修改却还是报错,所以怀疑调用的PHP并不是修改了配置的PHP,输入版本命令查看确认:
这下明白了,执行composer过程中调用的为PHP5.6版本,所以更改了7.2 的配置肯定是不行的,再去宝塔后台修改了PHP5.6的配置就可以了。
不过我这里想把默认调用的PHP改成7.2的,毕竟7.x版本才是以后的主角。
先查看下系统默认php命令关联的PHP版本,在命令行输入 ls -l /usr/bin/php 显示:
打开/www/server/php目录可以看到通过宝塔安装的多个PHP版本都在此处:
要更改成7.2的执行以下命令 ln -sf /www/server/php/72/bin/php /usr/bin/php 即可:
再次输入ls指令可以看到已经切换到7.2版本了。