Skip to content
Snippets Groups Projects
Commit f0e59b90 authored by Robin Appelman's avatar Robin Appelman
Browse files

better display for server configuration errors

parent 964a5503
No related branches found
No related tags found
No related merge requests found
......@@ -633,3 +633,18 @@ p.actions a.delete
border: 1px solid #CCC;
text-align: right;
}
li.error{
list-style:none;
width: 640px;
margin: 4em auto;
padding: 1em 1em 1em 4em;
background-color: #FEE;
background-image: url(../img/task-attention.png);
background-position: 0.8em 0.8em;
background-repeat: no-repeat;
border: 1px solid #CCC;
-moz-border-radius: 10px;
-webkit-border-radius: 10px;
border-radius: 10px;
}
\ No newline at end of file
......@@ -222,7 +222,7 @@ class OC_UTIL {
/**
* check if the current server configuration is suitable for ownCloud
* @return array with error messages
* @return array arrays with error messages and hints
*/
public static function checkServer(){
global $SERVERROOT;
......@@ -235,11 +235,23 @@ class OC_UTIL {
//check for database drivers
if(!is_callable('sqlite_open') and !is_callable('mysql_connect')){
$errors[]='No database drivers (sqlite or mysql) installed.<br/>';
$errors[]=array('error'=>'No database drivers (sqlite or mysql) installed.<br/>','hint'=>'');//TODO: sane hint
}
$CONFIG_DBTYPE = OC_CONFIG::getValue( "dbtype", "sqlite" );
$CONFIG_DBNAME = OC_CONFIG::getValue( "dbname", "owncloud" );
//try to get the username the httpd server runs on, used in hints
$stat=stat($_SERVER['DOCUMENT_ROOT']);
if(is_callable('posix_getpwuid')){
$serverUser=posix_getpwuid($stat['uid']);
$serverUser='\''.$serverUser['name'].'\'';
}else{
$serverUser='\'www-data\' for ubuntu/debian';//TODO: try to detect the distro and give a guess based on that
}
//common hint for all file permissons error messages
$permissionsHint="Permissions can usually be fixed by setting the owner of the directory to the user the web server runs as ($serverUser)";
//check for correct file permissions
if(!stristr(PHP_OS, 'WIN')){
if($CONFIG_DBTYPE=='sqlite'){
......@@ -251,7 +263,7 @@ class OC_UTIL {
clearstatcache();
$prems=substr(decoct(fileperms($file)),-3);
if(substr($prems,2,1)!='0'){
$errors[]='SQLite database file ('.$file.') is readable from the web<br/>';
$errors[]=array('error'=>'SQLite database file ('.$file.') is readable from the web<br/>','hint'=>$permissionsHint);
}
}
}
......@@ -262,7 +274,7 @@ class OC_UTIL {
clearstatcache();
$prems=substr(decoct(fileperms($CONFIG_DATADIRECTORY_ROOT)),-3);
if(substr($prems,2,1)!='0'){
$errors[]='Data directory ('.$CONFIG_DATADIRECTORY_ROOT.') is readable from the web<br/>';
$errors[]=array('error'=>'Data directory ('.$CONFIG_DATADIRECTORY_ROOT.') is readable from the web<br/>','hint'=>$permissionsHint);
}
}
if( OC_CONFIG::getValue( "enablebackup", false )){
......@@ -272,7 +284,7 @@ class OC_UTIL {
clearstatcache();
$prems=substr(decoct(fileperms($CONFIG_BACKUPDIRECTORY)),-3);
if(substr($prems,2,1)!='0'){
$errors[]='Data directory ('.$CONFIG_BACKUPDIRECTORY.') is readable from the web<br/>';
$errors[]=array('error'=>'Data directory ('.$CONFIG_BACKUPDIRECTORY.') is readable from the web<br/>','hint'=>$permissionsHint);
}
}
}
......@@ -280,7 +292,7 @@ class OC_UTIL {
//TODO: premisions checks for windows hosts
}
if(!is_writable($CONFIG_DATADIRECTORY_ROOT)){
$errors[]='Data directory ('.$CONFIG_BACKUPDIRECTORY.') not writable by ownCloud<br/>';
$errors[]=array('error'=>'Data directory ('.$CONFIG_DATADIRECTORY_ROOT.') not writable by ownCloud<br/>','hint'=>$permissionsHint);
}
//TODO: check for php modules
......
......@@ -5,10 +5,12 @@
?>
<div id="login">
<img src="<?php echo image_path("", "owncloud-logo-medium-white.png"); ?>" alt="ownCloud" />
<br/><br/><br/><br/>
<ul>
<?php foreach($_["errors"] as $error):?>
<li><?php echo $error ?></li>
<li class='error'>
<?php echo $error['error'] ?><br/>
<p class='hint'><?php echo $error['hint'] ?></p>
</li>
<?php endforeach ?>
</ul>
</div>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment