|
|
@@ -59,11 +59,7 @@ $step = $_GET['step'] ?? 1;
|
|
|
//地址
|
|
|
$scriptName = !empty($_SERVER["REQUEST_URI"]) ? $scriptName = $_SERVER["REQUEST_URI"] : $scriptName = $_SERVER["PHP_SELF"];
|
|
|
$rootPath = @preg_replace("/\/(I|i)nstall\/index\.php(.*)$/", "", $scriptName);
|
|
|
-$domain = empty($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : $_SERVER['SERVER_NAME'];
|
|
|
-if ((int)$_SERVER['SERVER_PORT'] != 80) {
|
|
|
- $domain .= ":" . $_SERVER['SERVER_PORT'];
|
|
|
-}
|
|
|
-$domain = $domain . $rootPath;
|
|
|
+[$request_scheme, $request_host] = getSchemeAndHost();
|
|
|
|
|
|
switch ($step) {
|
|
|
case '1':
|
|
|
@@ -299,15 +295,6 @@ switch ($step) {
|
|
|
* 执行SQL语句
|
|
|
*/
|
|
|
$counts = count($sqlFormat);
|
|
|
- if (isset($_SERVER['REQUEST_SCHEME'])) {
|
|
|
- $request_scheme = $_SERVER['REQUEST_SCHEME'];
|
|
|
- } else {
|
|
|
- if ($_SERVER['HTTPS'] == 'on') {
|
|
|
- $request_scheme = 'https';
|
|
|
- } else {
|
|
|
- $request_scheme = 'http';
|
|
|
- }
|
|
|
- }
|
|
|
for ($i = $n; $i < $counts; $i++) {
|
|
|
$sql = trim($sqlFormat[$i]);
|
|
|
if (strstr($sql, 'CREATE TABLE')) {
|
|
|
@@ -328,8 +315,8 @@ switch ($step) {
|
|
|
if (trim($sql) == '')
|
|
|
continue;
|
|
|
$sql = str_replace('`eb_', '`' . $dbPrefix, $sql);//替换表前缀
|
|
|
- $sql = str_replace('http://demo.crmeb.com', $request_scheme . '://' . $_SERVER['SERVER_NAME'], $sql);//替换图片域名
|
|
|
- $sql = str_replace('http:\\\\/\\\\/demo.crmeb.com', $request_scheme . ':\\\\/\\\\/' . $_SERVER['SERVER_NAME'], $sql);//替换图片域名
|
|
|
+ $sql = str_replace('http://demo.crmeb.com', $request_scheme . '://' . $request_host, $sql);//替换图片域名
|
|
|
+ $sql = str_replace('http:\\\\/\\\\/demo.crmeb.com', $request_scheme . ':\\\\/\\\\/' . $request_host, $sql);//替换图片域名
|
|
|
$ret = mysqli_query($conn, $sql);
|
|
|
$message = '';
|
|
|
$arr = array('n' => $i, 'count' => $counts, 'msg' => $message, 'time' => date('Y-m-d H:i:s'));
|
|
|
@@ -425,8 +412,8 @@ switch ($step) {
|
|
|
(1, '" . $username . "', '/statics/system_images/admin_head_pic.png', '" . $password . "', 'admin', '1', '" . $ip . "',$time , $time, 0, 0, 1, 0)";
|
|
|
$res = mysqli_query($conn, $addadminsql);
|
|
|
$res2 = true;
|
|
|
- if (isset($_SERVER['SERVER_NAME'])) {
|
|
|
- $site_url = '\'"' . $request_scheme . '://' . $_SERVER['SERVER_NAME'] . '"\'';
|
|
|
+ if ($request_host) {
|
|
|
+ $site_url = '\'"' . $request_scheme . '://' . $request_host . '"\'';
|
|
|
$res2 = mysqli_query($conn, 'UPDATE `' . $dbPrefix . 'system_config` SET `value`=' . $site_url . ' WHERE `menu_name`="site_url"');
|
|
|
}
|
|
|
$arr = array('n' => 999999, 'count' => $counts, 'msg' => '安装完成', 'time' => date('Y-m-d H:i:s'));
|
|
|
@@ -714,4 +701,31 @@ function generateSignature()
|
|
|
file_put_contents($file, $str);
|
|
|
}
|
|
|
|
|
|
+function getSchemeAndHost()
|
|
|
+{
|
|
|
+ // 检查反向代理设置的头信息
|
|
|
+ $request_scheme = $_SERVER['HTTP_X_FORWARDED_PROTO'] ?? 'http';
|
|
|
+ $request_host = $_SERVER['HTTP_X_FORWARDED_HOST'] ?? '';
|
|
|
+
|
|
|
+ // 如果没有反向代理头信息,则使用标准的 HTTP 头信息
|
|
|
+ if (empty($request_host)) {
|
|
|
+ $request_scheme = isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? 'https' : 'http';
|
|
|
+ $request_host = $_SERVER['HTTP_HOST'] ?? '';
|
|
|
+ }
|
|
|
+
|
|
|
+ // 如果仍然没有获取到域名,则使用服务器变量作为备选
|
|
|
+ if (empty($request_host)) {
|
|
|
+ $request_host = $_SERVER['SERVER_NAME'] ?? 'localhost';
|
|
|
+
|
|
|
+ // 如果使用了端口号(非标准端口),则添加端口号
|
|
|
+ $port = $_SERVER['SERVER_PORT'] ?? '';
|
|
|
+ if (($request_scheme === 'https' && $port !== '443') || ($request_scheme === 'http' && $port !== '80')) {
|
|
|
+ $request_host .= ':' . $port;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 构建并返回scheme和host
|
|
|
+ return [$request_scheme, $request_host];
|
|
|
+}
|
|
|
+
|
|
|
?>
|