*/
function createDatabase($name, $options = array())
{
+ global $SERVERROOT;
+ $datadir=OC_CONFIG::getValue( "datadirectory", "$SERVERROOT/data" );
$db =$this->getDBInstance();
if (PEAR::isError($db)) {
return $db;
'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__);
**/
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
}
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,
$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);
//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);
$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){
// sqlite
$dsn = array(
'phptype' => 'sqlite',
- 'database' => "$SERVERROOT/$CONFIG_DBNAME",
+ 'database' => "$datadir/$CONFIG_DBNAME.db",
'mode' => '0644' );
}
elseif( $CONFIG_DBTYPE == 'mysql' ){
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
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);