summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRobin Appelman <icewind1991@gmail.com>2011-04-28 16:54:10 +0200
committerRobin Appelman <icewind1991@gmail.com>2011-04-28 16:54:10 +0200
commit1850bddb673d4e19e4ff5dd58c99855b1c0f7a71 (patch)
tree0fe22ca943beb0733c13b87b21e91f139f5b80d2
parente7c91b55b78aff8292f48d82d107b3a4865ddb99 (diff)
downloadnextcloud-server-1850bddb673d4e19e4ff5dd58c99855b1c0f7a71.tar.gz
nextcloud-server-1850bddb673d4e19e4ff5dd58c99855b1c0f7a71.zip
move sqlite database into the data folder, makes it easier to set the correct permissions
-rw-r--r--3dparty/MDB2/Driver/Manager/sqlite.php5
-rw-r--r--3dparty/MDB2/Driver/sqlite.php7
-rw-r--r--lib/base.php14
-rw-r--r--lib/database.php10
-rw-r--r--lib/installer.php2
5 files changed, 17 insertions, 21 deletions
diff --git a/3dparty/MDB2/Driver/Manager/sqlite.php b/3dparty/MDB2/Driver/Manager/sqlite.php
index 3a5d266280e..5258cff891d 100644
--- a/3dparty/MDB2/Driver/Manager/sqlite.php
+++ b/3dparty/MDB2/Driver/Manager/sqlite.php
@@ -71,6 +71,8 @@ class MDB2_Driver_Manager_sqlite extends MDB2_Driver_Manager_Common
*/
function createDatabase($name, $options = array())
{
+ global $SERVERROOT;
+ $datadir=OC_CONFIG::getValue( "datadirectory", "$SERVERROOT/data" );
$db =$this->getDBInstance();
if (PEAR::isError($db)) {
return $db;
@@ -82,7 +84,8 @@ class MDB2_Driver_Manager_sqlite extends MDB2_Driver_Manager_Common
'database already exists', __FUNCTION__);
}
$php_errormsg = '';
- $handle = @sqlite_open($database_file, $db->dsn['mode'], $php_errormsg);
+ $database_file="$datadir/$database_file.db";
+ $handle = sqlite_open($database_file, $db->dsn['mode'], $php_errormsg);
if (!$handle) {
return $db->raiseError(MDB2_ERROR_CANNOT_CREATE, null, null,
(isset($php_errormsg) ? $php_errormsg : 'could not create the database file'), __FUNCTION__);
diff --git a/3dparty/MDB2/Driver/sqlite.php b/3dparty/MDB2/Driver/sqlite.php
index 061b9c67aaa..49a8cbdfbc2 100644
--- a/3dparty/MDB2/Driver/sqlite.php
+++ b/3dparty/MDB2/Driver/sqlite.php
@@ -347,6 +347,8 @@ class MDB2_Driver_sqlite extends MDB2_Driver_Common
**/
function connect()
{
+ global $SERVERROOT;
+ $datadir=OC_CONFIG::getValue( "datadirectory", "$SERVERROOT/data" );
$database_file = $this->_getDatabaseFile($this->database_name);
if (is_resource($this->connection)) {
//if (count(array_diff($this->connected_dsn, $this->dsn)) == 0
@@ -370,6 +372,9 @@ class MDB2_Driver_sqlite extends MDB2_Driver_Common
}
if ($database_file !== ':memory:') {
+ if(!strpos($database_file,'.db')){
+ $database_file="$datadir/$database_file.db";
+ }
if (!file_exists($database_file)) {
if (!touch($database_file)) {
return $this->raiseError(MDB2_ERROR_NOT_FOUND, null, null,
@@ -405,7 +410,9 @@ class MDB2_Driver_sqlite extends MDB2_Driver_Common
$php_errormsg = '';
if (version_compare('5.1.0', PHP_VERSION, '>')) {
@ini_set('track_errors', true);
+ echo 1;
$connection = @$connect_function($database_file);
+ echo 2;
@ini_restore('track_errors');
} else {
$connection = @$connect_function($database_file, 0666, $php_errormsg);
diff --git a/lib/base.php b/lib/base.php
index 10d59a9d0d6..ab8d0d056b1 100644
--- a/lib/base.php
+++ b/lib/base.php
@@ -302,20 +302,6 @@ class OC_UTIL {
//check for correct file permissions
if(!stristr(PHP_OS, 'WIN')){
- if($CONFIG_DBTYPE=='sqlite'){
- $file=$SERVERROOT.'/'.$CONFIG_DBNAME;
- if(file_exists($file)){
- $prems=substr(decoct(fileperms($file)),-3);
- if(substr($prems,2,1)!='0'){
- @chmod($file,0660);
- clearstatcache();
- $prems=substr(decoct(fileperms($file)),-3);
- if(substr($prems,2,1)!='0'){
- $errors[]=array('error'=>'SQLite database file ('.$file.') is readable from the web<br/>','hint'=>$permissionsHint);
- }
- }
- }
- }
$prems=substr(decoct(fileperms($CONFIG_DATADIRECTORY_ROOT)),-3);
if(substr($prems,-1)!='0'){
OC_HELPER::chmodr($CONFIG_DATADIRECTORY_ROOT,0770);
diff --git a/lib/database.php b/lib/database.php
index 97651ccf50a..3c2480c8b6d 100644
--- a/lib/database.php
+++ b/lib/database.php
@@ -43,8 +43,8 @@ class OC_DB {
$CONFIG_DBUSER = OC_CONFIG::getValue( "dbuser", "" );;
$CONFIG_DBPASSWORD = OC_CONFIG::getValue( "dbpassword", "" );;
$CONFIG_DBTYPE = OC_CONFIG::getValue( "dbtype", "sqlite" );;
- global $DOCUMENTROOT;
global $SERVERROOT;
+ $datadir=OC_CONFIG::getValue( "datadirectory", "$SERVERROOT/data" );
// do nothing if the connection already has been established
if(!self::$DBConnection){
@@ -64,7 +64,7 @@ class OC_DB {
// sqlite
$dsn = array(
'phptype' => 'sqlite',
- 'database' => "$SERVERROOT/$CONFIG_DBNAME",
+ 'database' => "$datadir/$CONFIG_DBNAME.db",
'mode' => '0644' );
}
elseif( $CONFIG_DBTYPE == 'mysql' ){
@@ -256,9 +256,9 @@ class OC_DB {
if( $definition instanceof MDB2_Schema_Error ){
die( $definition->getMessage().': '.$definition->getUserInfo());
}
- if(OC_CONFIG::getValue('dbtype','sqlite')=='sqlite'){
- $definition['overwrite']=true;//always overwrite for sqlite
- }
+// if(OC_CONFIG::getValue('dbtype','sqlite')=='sqlite'){
+// $definition['overwrite']=true;//always overwrite for sqlite
+// }
$ret=self::$schema->createDatabase( $definition );
// Die in case something went wrong
diff --git a/lib/installer.php b/lib/installer.php
index 1222a22e71c..0646ef8e0ea 100644
--- a/lib/installer.php
+++ b/lib/installer.php
@@ -136,7 +136,7 @@ class OC_INSTALLER{
global $SERVERROOT;
global $WEBROOT;
$content="ErrorDocument 404 /$WEBROOT/templates/404.php\n";
- file_put_contents($SERVERROOT.'/.htaccess',$content);
+ @file_put_contents($SERVERROOT.'/.htaccess',$content); //supress errors in case we don't have permissions for it
$content="deny from all";
file_put_contents(OC_CONFIG::getValue('datadirectory',$SERVERROOT.'/data').'/.htaccess',$content);