laravel项目一发布导致的BUG后台OK。临时解决方案经过短暂的排查,没有找到原因。原数据库密码DB_PASSWORD=abcde#142!*,修改数据库密码为DB_PASSWORD=abcde2019后恢复正常。排查思路修改密码后,可以正常连接数据库,说明是密码问题。同时,同样的密码在项目中访问数据库失败,在本机上可以访问成功。可以判断密码问题是环境问题引起的。打印项目中数据库连接配置的日志,如下:Array([driver]=>mysql[host]=>xxx[port]=>xxx[database]=>xxx[username]=>xxx[password]=>abcde[unix_socket]=>[charset]=>utf8mb4[collat??ion]=>utf8mb4_unicode_ci[prefix]=>[strict]=>1[engine]=>)env中可见密码配置为DB_PASSWORD=abcde#142!*,但是PHP代码中读取的数据库密码配置为abcde。可以看出#后面的内容代码被认为是注释而被忽略。继续查看jenkins发布日志,发现有日志输出:Packageoperations:0installs,3updates,0removals-Updatingvlucas/phpdotenv(v2.5.2=>v2.6.0):Downloading(connecting...)Downloading(0%%Downloading(15%)Downloading(100%)在发布过程中,有依赖包的升级。查看vlucas/phpdotenv的文档并查看以下说明:CommentsYoucancommentyour.envfileusingthe#character。例如#这是一个commentVAR="value"#commentVAR=value#commentsolution.env文件,为密码字段加上双引号,如DB_PASSWORD="abcde#142!*",然后一切恢复正常。建议在.env文件中,最好在环境变量的配置中加上"",以免酿成不测之祸。
