aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcash <cash@36083f99-b078-4883-b0ff-0f9b5a30f544>2010-10-12 10:58:36 +0000
committercash <cash@36083f99-b078-4883-b0ff-0f9b5a30f544>2010-10-12 10:58:36 +0000
commitc7559da210c9dba080ff5de243240b3be7f2c857 (patch)
tree2789d3d710ee03c40144cd789fac96aed8c86050
parente9f48ae4ce8fa566b177c2ff5d0673011498b6a5 (diff)
downloadelgg-c7559da210c9dba080ff5de243240b3be7f2c857.tar.gz
elgg-c7559da210c9dba080ff5de243240b3be7f2c857.tar.bz2
better handling of settings file issues during installation
git-svn-id: http://code.elgg.org/elgg/trunk@7063 36083f99-b078-4883-b0ff-0f9b5a30f544
-rw-r--r--install/ElggInstaller.php27
-rw-r--r--install/languages/en.php3
-rw-r--r--languages/en.php2
3 files changed, 21 insertions, 11 deletions
diff --git a/install/ElggInstaller.php b/install/ElggInstaller.php
index 57940dda3..e8220ff45 100644
--- a/install/ElggInstaller.php
+++ b/install/ElggInstaller.php
@@ -5,7 +5,7 @@
*
* @package Elgg
* @subpackage Installer
- * @author Curverider Ltd
+ * @author Cash Costello and Curverider Ltd
* @link http://elgg.org/
*/
@@ -141,7 +141,7 @@ class ElggInstaller {
$this->checkRewriteRules($report);
// check for existence of settings file
- if ($this->checkSettingsFile() != TRUE) {
+ if ($this->checkSettingsFile($report) != TRUE) {
// no file, so check permissions on engine directory
$this->checkEngineDir($report);
}
@@ -459,8 +459,7 @@ class ElggInstaller {
protected function setInstallStatus() {
global $CONFIG;
- $settingsCreated = $this->checkSettingsFile();
- if ($settingsCreated == FALSE) {
+ if (!is_readable("{$CONFIG->path}engine/settings.php")) {
return;
}
@@ -746,7 +745,7 @@ class ElggInstaller {
$writable = is_writable("{$CONFIG->path}engine");
if (!$writable) {
- $report['engine'] = array(
+ $report['settings'] = array(
array(
'severity' => 'failure',
'message' => elgg_echo('install:check:enginedir'),
@@ -760,16 +759,26 @@ class ElggInstaller {
/**
* Check that the settings file exists
+ * @param array $report
* @return bool
*/
- protected function checkSettingsFile() {
+ protected function checkSettingsFile(&$report) {
global $CONFIG;
- if (is_readable("{$CONFIG->path}engine/settings.php")) {
- return TRUE;
+ if (!file_exists("{$CONFIG->path}engine/settings.php")) {
+ return FALSE;
}
- return FALSE;
+ if (!is_readable("{$CONFIG->path}engine/settings.php")) {
+ $report['settings'] = array(
+ array(
+ 'severity' => 'failure',
+ 'message' => elgg_echo('install:check:readsettings'),
+ )
+ );
+ }
+
+ return TRUE;
}
/**
diff --git a/install/languages/en.php b/install/languages/en.php
index 049fd4ad4..455515b61 100644
--- a/install/languages/en.php
+++ b/install/languages/en.php
@@ -26,7 +26,7 @@ If you are ready to proceed, click the Next button.",
'install:require:php' => 'PHP',
'install:require:rewrite' => 'Web server',
- 'install:require:engine' => 'Settings file',
+ 'install:require:settings' => 'Settings file',
'install:require:database' => 'Database',
'install:check:root' => 'Your web server does not have permission to create an .htaccess file in the root directory of Elgg. You have two choices:
@@ -46,6 +46,7 @@ If you are ready to proceed, click the Next button.",
1. Change the permissions on the engine directory
2. Copy the file settings.example.php to settings.php and follow the instructions in it for setting your database parameters.',
+ 'install:check:readsettings' => 'A settings file exists in the engine directory, but the web server cannot read it. You can delete the file or change the read permissions on it.',
'install:check:php:success' => "Your server's PHP satisfies all of Elgg's requirements.",
'install:check:rewrite:success' => 'The test of the rewrite rules was successful.',
diff --git a/languages/en.php b/languages/en.php
index 2806168c6..7953f12d6 100644
--- a/languages/en.php
+++ b/languages/en.php
@@ -47,7 +47,7 @@ $english = array(
'InstallationException:CannotLoadSettings' => 'Elgg could not load the settings file. It does not exist or there is a file permissions issue.',
'SecurityException:Codeblock' => "Denied access to execute privileged code block",
- 'DatabaseException:WrongCredentials' => "Elgg couldn't connect to the database using the given credentials.",
+ 'DatabaseException:WrongCredentials' => "Elgg couldn't connect to the database using the given credentials. Check the settings file.",
'DatabaseException:NoConnect' => "Elgg couldn't select the database '%s', please check that the database is created and you have access to it.",
'SecurityException:FunctionDenied' => "Access to privileged function '%s' is denied.",
'DatabaseException:DBSetupIssues' => "There were a number of issues: ",