mirror of
https://github.com/nextcloud/server.git
synced 2026-05-28 04:32:30 -04:00
better display for server configuration errors
This commit is contained in:
parent
964a55033a
commit
f0e59b9043
3 changed files with 38 additions and 9 deletions
|
|
@ -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;
|
||||
}
|
||||
26
lib/base.php
26
lib/base.php
|
|
@ -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>
|
||||
|
|
|
|||
Loading…
Reference in a new issue