【程序目录】fix(install): 改进安装脚本的环境变量加载逻辑

修改安装脚本以优先使用容器环境变量,其次使用系统环境变量,最后使用默认值
添加对.env文件的加载支持,确保配置能正确读取
This commit is contained in:
sugar1569 2026-04-16 11:24:30 +08:00
parent 60c4bffee2
commit dc171d9ae5

View File

@ -1,4 +1,13 @@
<?php
require dirname(__DIR__, 2) . '/vendor/autoload.php';
use think\facade\Env;
// 不初始化应用容器,直接使用 Env
$app = new think\App();
// 单独加载 .env 文件(不连接数据库)
Env::load(dirname(__DIR__, 2) . '/.env');
//文件签名
$fileValue = '';
//最低php版本要求
@ -23,22 +32,25 @@ if ('7.1.0' > phpversion()) {
if (phpversion() >= '8.0.0') {
exit('您的php版本太高,不能安装本软件,兼容php版本7.1~7.4,谢谢!');
}
// echo '当前php版本:' . phpversion() . '<br>';
date_default_timezone_set('PRC');
error_reporting(E_ALL & ~E_NOTICE);
header('Content-Type: text/html; charset=UTF-8');
//mysql数据库配置容器中获取
$MYSQL_HOST_IP = getenv('MYSQL_HOST_IP') ?: '127.0.0.1';
$MYSQL_PORT = getenv('MYSQL_PORT') ?: '3306';
$MYSQL_USER = getenv('MYSQL_USER') ?: 'root';
$MYSQL_PASSWORD = getenv('MYSQL_PASSWORD') ?: '123456';
$MYSQL_DATABASE = getenv('MYSQL_DATABASE') ?: 'crmeb';
//redis配置容器中获取
$REDIS_HOST_IP = getenv('REDIS_HOST_IP') ?: '127.0.0.1';
$REDIS_PORT = getenv('REDIS_PORT') ?: '6379';
$REDIS_DATABASE = getenv('REDIS_DATABASE') ?: 0;
$REDIS_PASSWORD = getenv('REDIS_PASSWORD') ?: '';
//mysql数据库配置,如果容器环境变量有值,则使用容器环境变量,如果容器环境变量不存在,则使用系统环境变量,如果系统环境变量不存在,则使用默认值
$MYSQL_HOST_IP = getenv('MYSQL_HOST_IP') ?: Env::get('database.hostname', '127.0.0.1');
$MYSQL_PORT = getenv('MYSQL_PORT') ?: Env::get('database.hostport', '3306');
$MYSQL_USER = getenv('MYSQL_USER') ?: Env::get('database.username', 'root');
$MYSQL_PASSWORD = getenv('MYSQL_PASSWORD') ?: Env::get('database.password', '123456');
$MYSQL_DATABASE = getenv('MYSQL_DATABASE') ?: Env::get('database.database', 'crmeb');
//redis配置,如果容器环境变量有值,则使用容器环境变量,如果容器环境变量不存在,则使用系统环境变量,如果系统环境变量不存在,则使用默认值
$REDIS_HOST_IP = getenv('REDIS_HOST_IP') ?: Env::get('redis.redis_hostname', '127.0.0.1');
$REDIS_PORT = getenv('REDIS_PORT') ?: Env::get('redis.port', '6379');
$REDIS_DATABASE = getenv('REDIS_DATABASE') ?: Env::get('redis.select', 0);
$REDIS_PASSWORD = getenv('REDIS_PASSWORD') ?: Env::get('redis.redis_password', '');
//数据库
$sqlFile = 'crmeb.sql';