宝塔中使用Laravel程序 .env 配置不生效的解决方法:putenv函数被禁
宝塔面板教程在宝塔面板中部署Laravel应用时,很多开发者可能都遇到过这样一个棘手问题:明明已经在.env文件中设置了环境变量,但在程序中却无论如何都无法获取到这些变量的值。经过一番排查,发现问题的根源竟然是putenv函数被禁用了。
putenv函数在PHP中用于设置环境变量,Laravel框架在启动时会读取.env文件中的内容,并通过putenv将这些变量设置为环境变量。但如果服务器上出于安全考虑禁用了这个函数,Laravel就无法正确设置环境变量,从而导致.env文件中的配置无法生效。
解决方法如下:
- 修改PHP配置:登录宝塔面板,找到对应的PHP版本设置,进入“禁用函数”部分,将
putenv从禁用列表中移除。保存设置后,重启PHP-FPM服务。 - 使用替代方案:如果不希望完全启用
putenv函数,可以考虑使用Laravel的替代配置方式。例如,直接在config目录下的相应配置文件中硬编码设置需要的变量值。

重点注意:修改PHP配置可能会对服务器安全性产生影响,务必确保了解启用putenv可能带来的风险,并采取相应安全措施。如果不确定如何操作,建议咨询专业人士或服务器提供商。