+ Antworten
Ergebnis 1 bis 9 von 9

Thema: Pro Subdomain andere Datenbank

  1. #1
    Neu an Board
    Registriert seit
    03.12.2006
    Beiträge
    5
    Bedankte sich
    0
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Idee Pro Subdomain andere Datenbank

    Hallo,
    ich habe schon den anderen Thread gesehen, bei dem es um die MultiDomain-fähigkeit von Joomla geht. Leider geht es hier eigentlich nur um 1.0.x

    Ich habe Joomla 1.5.x und plane eine Art Städteportal.
    Die einzelnen Städte sollen jeweils als Subdomain erreicht werden.
    Dabei soll jede Subdomain eine eigene Datenbank haben, von welchem der Inhalt geladen werden soll. Alles andere wie Aufbau und Struktur der Seite ist komplett gleich.

    Ich dachte mir, daß es in folgender Art und Weise geregelt werden könnte :

    Code:
    in der /includes/framework.php 
    
    ersetze
    require_once( JPATH_CONFIGURATION	.DS.'configuration.php' );
    
    durch
    switch ($_SERVER['HTTP_HOST']) {
    case "stadt1.domain.de":
    	require_once( JPATH_CONFIGURATION	.DS.'configuration_stadt1.php' );
    	break;
    case "stadt2.domain.de":
    	require_once( JPATH_CONFIGURATION	.DS.'configuration_stadt2.php' );
    	break;
    default:
    	require_once( JPATH_CONFIGURATION	.DS.'configuration.php' );
    }
    Neu angelegt werden müssen dann die einzelnen Dateien configuration_stadtx.php, welche einfach von der configuration.php kopiert werden und dann entsprechende die Variablen für die Datenbank abgeändert werden.

    Wenn ich so vorgehe und eine Subdomain aufrufe, bekomme ich leider nur eine BlankPage. Wo liegt mein Denkfehler ? Müsste evtl. noch die live_site umgeschrieben werden ?

    Danke und Grüße
    Patrick

  2. #2
    OpenSource Nutzer Avatar von blackice2999
    Registriert seit
    18.05.2006
    Ort
    Berlin
    Alter
    32
    Beiträge
    3.639
    Bedankte sich
    112
    Erhielt 934 Danksagungen
    in 711 Beiträgen

    Standard

    Hallo,

    wenn es um 1.0.x geht bist Du im falschen Forum Siehe weiter unten...

    Also warum bearbeitest Du die Framework ?
    da die configuration.PHP <<< ja auch eine php datei ist kannst Du darin einfach eine nette switch / case abfrage einbauen...

    Anfang der configuration:
    hier setzt du alle einstellungen rein, die für alle installationen gleich sind.

    dann fängt mit switch / case an... je seite ein eigener abschnitt...

    Nicht geprüft, aber es könnte funktionieren. Aber! Du verlierst die Möglichkeit deine Einstellungen in Joomla vornehmen zu können.

    Gruß Dennis
    Thread gelöst ? => Anleitung
    Wichtige Themen => Joomla FAQ | Flottes Sicherheitsliste
    Einfach nur so => Geiz ist doch geil oder?
    *dies ist ein Joomla Forum - Kein css / html Anfänger Forum...*

  3. #3
    Neu an Board
    Registriert seit
    03.12.2006
    Beiträge
    5
    Bedankte sich
    0
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    Hallo,
    es geht wie bereis geschrieben um um Joomla 1.5.x.
    Bei 1.0.x könnte ich anhand der Anleitung 'Joomla MultiDomain-fähig' im anderen Thread verfahren.

    Ja, das stimmt, ich könnte auch die configuration.php selbst mit einer Abfrage versehen, so hatte ich es anfangs auch. Hatte es dann nur abgeändert, da ich wegen der BlankPage dachte, es läge daran.

    Trotzdem ist noch irgendwo anders ein Problem, evtl. wegen der $live_site, wobei ja aber die Pfade alle gleich sein müssten, da ja die Struktur und Dateien an sich gleich sind, nur die Datenbank geändert werden soll.

    Grüße Patrick

  4. #4
    OpenSource Nutzer Avatar von blackice2999
    Registriert seit
    18.05.2006
    Ort
    Berlin
    Alter
    32
    Beiträge
    3.639
    Bedankte sich
    112
    Erhielt 934 Danksagungen
    in 711 Beiträgen

    Standard

    Hi,

    naja die Live Site ist schon wichtig, es ist was anderes ob ich über:

    http://meineDomain.de oder über http://www.meineDomain.de drauf zugreife... selbst dabei kann es bereits zu Problemen kommen wenn die Livesite nicht korrekt ist. (gerade im Zusammenhang mit dem JCE Editor)

    Gruß Dennis
    Thread gelöst ? => Anleitung
    Wichtige Themen => Joomla FAQ | Flottes Sicherheitsliste
    Einfach nur so => Geiz ist doch geil oder?
    *dies ist ein Joomla Forum - Kein css / html Anfänger Forum...*

  5. #5
    Neu an Board
    Registriert seit
    03.12.2006
    Beiträge
    5
    Bedankte sich
    0
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    Dachte ich mir...
    Kann mir jemand auf die Sprünge helfen, wo und wie ich die Subdomains 'umbiegen' kann, daß am Ende die Seite läuft.

    Wie gesagt, sind die Dateien ja immer gleich, nur die Datenbank ist anders.
    Danke und Grüße
    Patrick

  6. #6
    OpenSource Nutzer Avatar von blackice2999
    Registriert seit
    18.05.2006
    Ort
    Berlin
    Alter
    32
    Beiträge
    3.639
    Bedankte sich
    112
    Erhielt 934 Danksagungen
    in 711 Beiträgen

    Standard

    Hi,

    dein Lösungsansatz klingt doch schon nicht verkehrt, warum gibst Du denn gleich auf ?
    Du kannst doch per php einfach die Aufgerufene URL auswerten und dementsprechend die live_site setzen. Da du ja eh schon die configuration biegen möchtest, ist das der kleinste Anteil...

    Ansonsten schau mal ins JED (Joomla Extension Directory) da findest auch eine Komponente welche Joomla Multidomainfähig macht. (Kostenpflichtig)

    Gruß Dennis
    Thread gelöst ? => Anleitung
    Wichtige Themen => Joomla FAQ | Flottes Sicherheitsliste
    Einfach nur so => Geiz ist doch geil oder?
    *dies ist ein Joomla Forum - Kein css / html Anfänger Forum...*

  7. #7
    Neu an Board
    Registriert seit
    03.12.2006
    Beiträge
    5
    Bedankte sich
    0
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    Hallo,
    habe es jetzt einigermaßen hinbekommen.
    Die switch-Abfrage erzeugte in der /includes/framework.php leider einen Fehler, so daß immer nur eine BlankPage angezeigt wurde.
    Das ist jetzt der Inhalt der configuration.php, welche nun natürlich nicht mehr im Backend bearbeitet werden kann. So funktioniert soweit alles, auch sh404sef.

    Code:
    <?php
    
    switch ($_SERVER['HTTP_HOST']) {
    
    case "stadt1.domain.de":
    	class JConfig {
    	var $offline = '0';
    	var $editor = 'tinymce';
    	var $list_limit = '30';
    	var $helpurl = 'http://help.joomla.org';
    	var $debug = '0';
    	var $debug_lang = '0';
    	var $sef = '1';
    	var $sef_rewrite = '1';
    	var $sef_suffix = '1';
    	var $feed_limit = '5';
    	var $secret = 'xxxxxxx';
    	var $gzip = '0';
    	var $error_reporting = '-1';
    	var $xmlrpc_server = '0';
    	var $log_path = '/srv/www/web28/html/logs';
    	var $tmp_path = '/srv/www/web28/html/tmp';
    	var $live_site = '';
    	var $offset = '1';
    	var $caching = '0';
    	var $cachetime = '15';
    	var $cache_handler = 'file';
    	var $memcache_settings = array();
    	var $ftp_enable = '0';
    	var $ftp_host = '127...1';
    	var $ftp_port = '21';
    	var $ftp_user = 'xxx';
    	var $ftp_pass = 'xxx';
    	var $ftp_root = '';
    	var $dbtype = 'mysql';
    	var $host = 'localhost';
    	var $user = 'web28';
    	var $db = 'usr_web28_1';
    	var $dbprefix = 'jos_';
    	var $mailer = 'mail';
    	var $mailfrom = 'info@xxxx.de';
    	var $fromname = 'xxxx.de';
    	var $sendmail = '/usr/sbin/sendmail';
    	var $smtpauth = '0';
    	var $smtpuser = '';
    	var $smtppass = '';
    	var $smtphost = 'localhost';
    	var $MetaAuthor = '0';
    	var $MetaTitle = '1';
    	var $lifetime = '60';
    	var $session_handler = 'database';
    	var $password = 'xxxx';
    	var $sitename = 'xxxx.de';
    	var $MetaDesc = '';
    	var $MetaKeys = '';
    	var $offline_message = 'Diese Website ist zurzeit im Wartungsmodus. Bitte kommen Sie später wieder.';
    }
    	break;
    
    case "stadt2.domain.de":
    	class JConfig {
    	var $offline = '0';
    	var $editor = 'tinymce';
    	var $list_limit = '30';
    	var $helpurl = 'http://help.joomla.org';
    	var $debug = '0';
    	var $debug_lang = '0';
    	var $sef = '1';
    	var $sef_rewrite = '1';
    	var $sef_suffix = '1';
    	var $feed_limit = '5';
    	var $secret = 'xxxx';
    	var $gzip = '0';
    	var $error_reporting = '-1';
    	var $xmlrpc_server = '0';
    	var $log_path = '/srv/www/web28/html/logs';
    	var $tmp_path = '/srv/www/web28/html/tmp';
    	var $live_site = '';
    	var $offset = '1';
    	var $caching = '0';
    	var $cachetime = '15';
    	var $cache_handler = 'file';
    	var $memcache_settings = array();
    	var $ftp_enable = '0';
    	var $ftp_host = '127...1';
    	var $ftp_port = '21';
    	var $ftp_user = 'xxxx';
    	var $ftp_pass = 'xxxx';
    	var $ftp_root = '';
    	var $dbtype = 'mysql';
    	var $host = 'localhost';
    	var $user = 'web28';
    	var $db = 'usr_web28_2';
    	var $dbprefix = 'jos_';
    	var $mailer = 'mail';
    	var $mailfrom = 'info@xxxx.de';
    	var $fromname = 'xxxx.de';
    	var $sendmail = '/usr/sbin/sendmail';
    	var $smtpauth = '0';
    	var $smtpuser = '';
    	var $smtppass = '';
    	var $smtphost = 'localhost';
    	var $MetaAuthor = '0';
    	var $MetaTitle = '1';
    	var $lifetime = '60';
    	var $session_handler = 'database';
    	var $password = 'xxxx';
    	var $sitename = 'xxxx';
    	var $MetaDesc = '';
    	var $MetaKeys = '';
    	var $offline_message = 'Diese Website ist zurzeit im Wartungsmodus. Bitte kommen Sie später wieder.';
    }
    	break;
    
    default:
    	class JConfig {
    	var $offline = '0';
    	var $editor = 'tinymce';
    	var $list_limit = '30';
    	var $helpurl = 'http://help.joomla.org';
    	var $debug = '0';
    	var $debug_lang = '0';
    	var $sef = '1';
    	var $sef_rewrite = '1';
    	var $sef_suffix = '1';
    	var $feed_limit = '5';
    	var $secret = 'xxxx;
    	var $gzip = '1';
    	var $error_reporting = '-1';
    	var $xmlrpc_server = '0';
    	var $log_path = '/srv/www/web28/html/logs';
    	var $tmp_path = '/srv/www/web28/html/tmp';
    	var $live_site = '';
    	var $offset = '1';
    	var $caching = '0';
    	var $cachetime = '15';
    	var $cache_handler = 'file';
    	var $memcache_settings = array();
    	var $ftp_enable = '0';
    	var $ftp_host = '127...1';
    	var $ftp_port = '21';
    	var $ftp_user = 'xxxx';
    	var $ftp_pass = 'xxxx';
    	var $ftp_root = '';
    	var $dbtype = 'mysql';
    	var $host = 'localhost';
    	var $user = 'web28';
    	var $db = 'usr_web28_3';
    	var $dbprefix = 'jos_';
    	var $mailer = 'mail';
    	var $mailfrom = 'info@xxxx.de';
    	var $fromname = 'xxxx.de';
    	var $sendmail = '/usr/sbin/sendmail';
    	var $smtpauth = '0';
    	var $smtpuser = '';
    	var $smtppass = '';
    	var $smtphost = 'localhost';
    	var $MetaAuthor = '0';
    	var $MetaTitle = '1';
    	var $lifetime = '60';
    	var $session_handler = 'database';
    	var $password = 'xxxx';
    	var $sitename = 'xxxx.de';
    	var $MetaDesc = '';
    	var $MetaKeys = '';
    	var $offline_message = 'Diese Website ist zurzeit im Wartungsmodus. Bitte kommen Sie später wieder.';
    }
    }
    
    ?>

    Wenn ich nun Gzip aktivieren möchte, kann die Seite nicht mehr geladen werden.
    Fehlermeldung von Firefox :

    Code:
    Fehlerhafte Kodierung der Inhalte:       
    
    Die Webseite, die Sie öffnen möchten, kann nicht angezeigt werden, da sie eine ungültige oder unbekannte Form der Kompression verwendet.   
            
    Die aufgerufene Seite kann nicht angezeigt werden, da sie eine ungültige oder nicht unterstützte Form der Kompression verwendet.
    Wüsste hier zufällig gerade jemand, wie ich das noch hinbekommen könnte ?
    Danke und Grüße
    Patrick

  8. #8
    Gehört zum Inventar
    Registriert seit
    18.02.2005
    Beiträge
    8.841
    Bedankte sich
    85
    Erhielt 2.269 Danksagungen
    in 1.936 Beiträgen

    Standard

    Viel zu kompliziert.

    Schreibe ein SystemPlugin, Event: onAfterInitialise
    PHP-Code:
    $uri =& JFactory::getURI();
    $config =& JFactory::getConfig();

    $host $uri->getHost();

    switch (
    $host
    {
        case 
    'stadt1.domain.de':
                 
    $config->setValue('config.live_site'$host);
                 
    $config->setValue('config.db''web728');
                 
    $config->setValue('config.password''9874h34f8');
                 break;

        case 
    'stadt2.domain.de':
                 
    $config->setValue('config.live_site'$host);
                 
    $config->setValue('config.db''web728');
                 
    $config->setValue('config.password''9874h34f8');
                 break;

        default:
                 
    $config->setValue('config.live_site''domain.de');
                 break;


  9. #9
    Neu an Board
    Registriert seit
    03.12.2006
    Beiträge
    5
    Bedankte sich
    0
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    Hallo und danke für deine Hilfestellung,
    habe gerade deinen Beitrag/dein Plugin in einem anderen Thread gesehen uns bei mir getestet.
    Funktioniert einwandfrei.
    Ich wollte deinen Code von hier für die verschiedenen Datenbanken in das Plugin nehmen, irgendwie wird das von Joomla allerdings immer ignoriert.

    Egal was ich hier angebe, wird immer die Datenbank verwendet, die in der configuration.php steht. Livesite habe ich jeweils leer gelassen, funktioniert trotzden.

    Aber das mit der Datenbank wird einfach ignoriert.
    Hane ich no irgendwo was übersehen ?

    Danke und Grüße Patrick

+ Antworten

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein