diff --git a/mod/install.php b/mod/install.php index eb740c7b64..06f728729c 100644 --- a/mod/install.php +++ b/mod/install.php @@ -303,12 +303,13 @@ function install_content(App $a) { * required : boolean * help : string optional */ -function check_add(&$checks, $title, $status, $required, $help) { +function check_add(&$checks, $title, $status, $required, $help, $error_msg = "") { $checks[] = [ 'title' => $title, 'status' => $status, 'required' => $required, 'help' => $help, + 'error_msg' => $error_msg, ]; } @@ -489,18 +490,24 @@ function check_smarty3(&$checks) { function check_htaccess(&$checks) { $status = true; $help = ""; + $error_msg = ""; if (function_exists('curl_init')) { - $test = Network::fetchUrl(System::baseUrl()."/install/testrewrite"); + $test = Network::fetchUrlFull(System::baseUrl()."/install/testrewrite"); - if ($test != "ok") { - $test = Network::fetchUrl(normalise_link(System::baseUrl()."/install/testrewrite")); + $url = normalise_link(System::baseUrl()."/install/testrewrite"); + if ($test['body'] != "ok") { + $test = Network::fetchUrlFull($url); } - if ($test != "ok") { + if ($test['body'] != "ok") { $status = false; $help = L10n::t('Url rewrite in .htaccess is not working. Check your server configuration.'); + $error_msg = []; + $error_msg['head'] = L10n::t('Error message from Curl when fetching'); + $error_msg['url'] = $test['redirect_url']; + $error_msg['msg'] = $test['error']; } - check_add($checks, L10n::t('Url rewrite is working'), $status, true, $help); + check_add($checks, L10n::t('Url rewrite is working'), $status, true, $help, $error_msg); } else { // cannot check modrewrite if libcurl is not installed /// @TODO Maybe issue warning here? diff --git a/src/Util/Network.php b/src/Util/Network.php index 4a11f92595..91c4b7d395 100644 --- a/src/Util/Network.php +++ b/src/Util/Network.php @@ -36,7 +36,13 @@ class Network */ public static function fetchUrl($url, $binary = false, &$redirects = 0, $timeout = 0, $accept_content = null, $cookiejar = 0) { - $ret = self::curl( + $ret = fetchUrlFull($url, $binary, $redirects, $timeout, $accept_content, $cookiejar); + + return($ret['body']); + } + public static function fetchUrlFull($url, $binary = false, &$redirects = 0, $timeout = 0, $accept_content = null, $cookiejar = 0) + { + return self::curl( $url, $binary, $redirects, @@ -45,8 +51,6 @@ class Network 'cookiejar'=>$cookiejar ] ); - - return($ret['body']); } /** diff --git a/view/install/style.css b/view/install/style.css index 2f995d5993..d6140a1bb3 100644 --- a/view/install/style.css +++ b/view/install/style.css @@ -32,6 +32,9 @@ td.help { td.help blockquote { margin-left: 60px; } +.error_header { + margin-left: 60px; +} input[type="submit"] { margin: 2em 0; } diff --git a/view/templates/install_checks.tpl b/view/templates/install_checks.tpl index 10a197482b..f960729111 100644 --- a/view/templates/install_checks.tpl +++ b/view/templates/install_checks.tpl @@ -16,7 +16,13 @@ {{/if}} {{if $check.required}}(required){{/if}} {{if $check.help}} -
{{$check.help}}
+ +
{{$check.help}}
+ {{if $check.error_msg}} +
{{$check.error_msg.head}}
{{$check.error_msg.url}}
+
{{$check.error_msg.msg}}
+ {{/if}} + {{/if}} {{/foreach}}