*
dsn
datasource setting *
tblNamePrefix
prefix for table names in the database *
authCookieName
secret token cookie name *
AdminsGr
name of admin group *
StationPrefsGr
name of station preferences group *
AllGr
name of 'all users' group *
storageDir
main directory for storing binary media files *
bufferDir
directory for temporary files *
transDir
directory for incomplete transferred files *
accessDir
directory for symlinks to accessed files *
validate
enable/disable validator *
useTrash
enable/disable safe delete (move to trash) *
storageUrlPath
path-URL-part of storageServer base dir *
storageXMLRPC
XMLRPC server script address relative to storageUrlPath *
storageUrlHost, storageUrlPort
host and port of storageServer *
archiveUrlPath
path-URL-part of archiveServer base dir *
archiveXMLRPC
XMLRPC server script address relative to archiveUrlPath *
archiveUrlHost, archiveUrlPort
host and port of archiveServer *
archiveAccountLogin, archiveAccountPass
account info * for login to archive *
sysSubjs
system users/groups - cannot be deleted * */ include("campcaster_version.php"); // these are the default values for the config global $CC_CONFIG; $CC_CONFIG = array( /* ================================================== basic configuration */ 'dsn' => array( 'username' => 'test', 'password' => 'test', 'hostspec' => 'localhost', 'phptype' => 'pgsql', 'database' => 'campcaster', ), 'webServerUser' => 'www-data', "rootDir" => dirname(__FILE__), "smartyTemplate" => dirname(__FILE__)."/htmlUI/templates", "smartyTemplateCompiled" => dirname(__FILE__)."/htmlUI/templates_c", 'tblNamePrefix' => 'cc_', /* ================================================ storage configuration */ 'authCookieName'=> 'campcaster_session_id', //'AdminsGr' => 'Admins', 'StationPrefsGr'=> 'StationPrefs', //'AllGr' => 'All', 'TrashName' => 'trash_', 'storageDir' => dirname(__FILE__).'/stor', 'bufferDir' => dirname(__FILE__).'/stor/buffer', 'transDir' => dirname(__FILE__).'/trans', 'accessDir' => dirname(__FILE__).'/access', 'pearPath' => dirname(__FILE__).'/3rd_party/php/pear', // 'zendPath' => dirname(__FILE__).'/../../../../usr/lib', 'cronDir' => dirname(__FILE__).'/backend/cron', 'validate' => TRUE, 'useTrash' => TRUE, /* ==================================================== URL configuration */ 'storageUrlPath' => '/campcaster/backend', 'storageXMLRPC' => 'xmlrpc/xrLocStor.php', 'storageUrlHost' => 'localhost', 'storageUrlPort' => 80, /* ================================================ archive configuration */ 'archiveUrlPath' => '/campcaster/backend', 'archiveXMLRPC' => 'xmlrpc/xrLocStor.php', 'archiveUrlHost' => 'localhost', // 'archiveUrlHost' => '192.168.30.166', 'archiveUrlPort' => 80, 'archiveAccountLogin' => 'root', 'archiveAccountPass' => 'q', /* ============================================== scheduler configuration */ // 'schedulerUrlPath' => '', // 'schedulerXMLRPC' => 'RC2', // 'schedulerUrlHost' => 'localhost', // 'schedulerUrlPort' => 3344, // 'schedulerPass' => 'change_me', /* ==================================== aplication-specific configuration */ 'objtypes' => array( 'Storage' => array(/*'Folder',*/ 'File' /*, 'Replica'*/), 'File' => array(), 'audioclip' => array(), 'playlist' => array(), // 'Replica' => array(), ), 'allowedActions'=> array( 'File' => array('editPrivs', 'write', 'read'), 'audioclip' => array('editPrivs', 'write', 'read'), 'playlist' => array('editPrivs', 'write', 'read'), // 'Replica' => array('editPrivs', 'write', 'read'), // '_class' => array('editPrivs', 'write', 'read'), ), 'allActions' => array( 'editPrivs', 'write', 'read', /*'classes',*/ 'subjects' ), /* ============================================== auxiliary configuration */ 'tmpRootPass' => 'q', /* =================================================== cron configuration */ 'cronUserName' => 'www-data', # 'lockfile' => dirname(__FILE__).'/cron/cron.lock', 'lockfile' => dirname(__FILE__).'/stor/buffer/cron.lock', 'cronfile' => dirname(__FILE__).'/cron/croncall.php', 'paramdir' => dirname(__FILE__).'/cron/params', 'systemPrefId' => "0", // ID for system prefs in prefs table ); // Add database table names $CC_CONFIG['playListTable'] = $CC_CONFIG['tblNamePrefix'].'playlist'; $CC_CONFIG['playListContentsTable'] = $CC_CONFIG['tblNamePrefix'].'playlistcontents'; $CC_CONFIG['filesTable'] = $CC_CONFIG['tblNamePrefix'].'files'; $CC_CONFIG['accessTable'] = $CC_CONFIG['tblNamePrefix'].'access'; $CC_CONFIG['permTable'] = $CC_CONFIG['tblNamePrefix'].'perms'; $CC_CONFIG['sessTable'] = $CC_CONFIG['tblNamePrefix'].'sess'; $CC_CONFIG['subjTable'] = $CC_CONFIG['tblNamePrefix'].'subjs'; $CC_CONFIG['smembTable'] = $CC_CONFIG['tblNamePrefix'].'smemb'; $CC_CONFIG['transTable'] = $CC_CONFIG['tblNamePrefix'].'trans'; $CC_CONFIG['prefTable'] = $CC_CONFIG['tblNamePrefix'].'pref'; //$CC_CONFIG['playlogTable'] = $CC_CONFIG['tblNamePrefix'].'playlog'; $CC_CONFIG['scheduleTable'] = $CC_CONFIG['tblNamePrefix'].'schedule'; $CC_CONFIG['backupTable'] = $CC_CONFIG['tblNamePrefix'].'backup'; $CC_CONFIG['playListTimeView'] = $CC_CONFIG['tblNamePrefix'].'playlisttimes'; $CC_CONFIG['playListSequence'] = $CC_CONFIG['playListTable'].'_id'; $CC_CONFIG['filesSequence'] = $CC_CONFIG['filesTable'].'_id'; $CC_CONFIG['transSequence'] = $CC_CONFIG['transTable'].'_id'; $CC_CONFIG['prefSequence'] = $CC_CONFIG['prefTable'].'_id'; $CC_CONFIG['permSequence'] = $CC_CONFIG['permTable'].'_id'; $CC_CONFIG['subjSequence'] = $CC_CONFIG['subjTable'].'_id'; $CC_CONFIG['smembSequence'] = $CC_CONFIG['smembTable'].'_id'; $CC_CONFIG['sysSubjs'] = array( 'root', /*$CC_CONFIG['AdminsGr'],*/ /*$CC_CONFIG['AllGr'],*/ $CC_CONFIG['StationPrefsGr'] ); $old_include_path = get_include_path(); set_include_path('.'.PATH_SEPARATOR.$CC_CONFIG['pearPath'].PATH_SEPARATOR.$old_include_path); // See if a ~/.campcaster/storageServer.conf.php exists, and // overwrite the settings from there if any $this_file = null; if (isset($_SERVER["SCRIPT_FILENAME"])) { $this_file = $_SERVER["SCRIPT_FILENAME"]; } elseif(isset($argv[0])) { $this_file = $argv[0]; } if (!is_null($this_file)) { $fileowner_id = fileowner($this_file); $fileowner_array = posix_getpwuid($fileowner_id); $fileowner_homedir = $fileowner_array['dir']; $fileowner_name = $fileowner_array['name']; $home_conf = $fileowner_homedir . '/.campcaster/storageServer.conf.php'; if (file_exists($home_conf)) { $default_config = $CC_CONFIG; $developer_name = $fileowner_name; include($home_conf); $user_config = $CC_CONFIG; $CC_CONFIG = $user_config + $default_config; } } // Check that all the required directories exist. foreach (array('storageDir', 'bufferDir', 'transDir', 'accessDir', 'cronDir') as $d) { $test = file_exists($CC_CONFIG[$d]); if ( $test === FALSE ) { echo " * Error: directory {$CC_CONFIG[$d]} is missing.\n"; echo " * Please run the install script again.\n"; exit(1); } else { $rp = realpath($CC_CONFIG[$d]); } $CC_CONFIG[$d] = $rp; } // Check that htmlUI/templates_c has the right permissions $ss=@stat($CC_CONFIG["smartyTemplateCompiled"]); $groupOwner = (function_exists('posix_getgrgid'))?@posix_getgrgid($ss['gid']):''; if (!empty($groupOwner) && ($groupOwner["name"] != $CC_CONFIG["webServerUser"])) { echo " * Error: Your directory permissions for {$CC_CONFIG['smartyTemplateCompiled']} are not set correctly.
\n"; echo " * The group perms need to be set to the web server user, in this case '{$CC_CONFIG['webServerUser']}'.
\n"; exit(1); } $fileperms=@fileperms($CC_CONFIG["smartyTemplateCompiled"]); if (!($fileperms & 0x0400)) { echo " * Error: Sticky bit not set for {$CC_CONFIG['smartyTemplateCompiled']}.
\n"; exit(1); } ?>