Ankündigung

Einklappen
Keine Ankündigung bisher.

Webseite auf mehreren Servern benutzen (Internet, Lokal)

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Webseite auf mehreren Servern benutzen (Internet, Lokal)

    Hallo,

    ich baue meine Webseiten lokal auf meinem Rechner mit einer Installation von Apache+PHP sowie einem MySQL Server.

    In jeder Site habe ich eine "login.php", in der die Zugangsdaten für MySQL drin stehen. Wenn ich die jetzt jedoch beim Hoster hochlade, ist dort nicht mehr "localhost", sondern irgendwas anderes. Somit muss man beim Kopieren entweder aufpassen, dass man nicht die login.php überschreibt, oder man muss die Daten jedes Mal neu eintragen.


    Gibt es einen eleganten Weg für, dass der immer die Datenbank nimmt, die "um die Site herum ist"?


  • #2
    Du kannst beim Apache ne Variable setzen Environment Variables in Apache und dann auf jedem Server eben einen anderen Wert setzen. In deiner Config Datei kannst du dann diese Variable abfragen und je nach Wert eben andere Settings laden. Somit ist das PHP Skript überall das selbe und der Webserver selbst gibt an wo er sich befindet.

    Kommentar


    • #3
      Der Link hier ist wohl etwas besser, da Version 2.2: Environment Variables in Apache - Apache HTTP Server

      Also benutze ich einfach
      PHP-Code:
      <?php
      if (isset($_ENV["HOSTNAME"]))
          
      $MachineName $_ENV["HOSTNAME"];
      else if  (isset(
      $_ENV["COMPUTERNAME"]))
          
      $MachineName $_ENV["COMPUTERNAME"];
      else 
      $MachineName "";
      ?>
      und entscheide dann auf Grund von $MachineName, welche Datenbank ich anwähle. Ein Sicherheitsrisiko sind meine lokalen MySQL Daten (root // root) in einer login.php ja auch nicht.

      --

      Hmm, das funktioniert weder auf dem Server, noch lokal …

      Kommentar


      • #4
        Hi,

        vielleicht kannst du damit ja was anfangen. Ich teste meistens local und hab da eine brauchbare Lösung. Folgendes hab ich in meiner Config:

        PHP-Code:
        $liveserver = ( $_SERVER['SERVER_NAME'] ) ? "www.example.com" "example.com";

        if (
        $_SERVER['SERVER_NAME'] == $liveserver
        {
            
        // Zugriff ueber $dbdaten['server'], $dbdaten['datenbank'] usw.
            
        $dbdaten = array(
                
        'server'          => 'localhost'// DATENBANKSERVER
                
        'datenbank'       => 'xxxxx'// DATENBANK
                
        'user'            => 'xxxxx'// DATENBANK USERNAME
                
        'passwort'        => 'xxxxx'// DATENBANK PASSWORT
                
        'prefix'          => 'stein_' // DATENBANK TABELLEN PREFIX
            
        );

        else 
        {
            
        $dbdaten = array(
                
        'server'          => 'localhost'// DATENBANKSERVER
                
        'datenbank'       => 'steinchen'// DATENBANK
                
        'user'            => 'root'// DATENBANK USERNAME
                
        'passwort'        => '1234'// DATENBANK PASSWORT
                
        'prefix'          => 'stein_' // DATENBANK TABELLEN PREFIX
            
        );

        Im ersten Array kommen die Zugangsdaten vom Liveserver, das zweite ist dann von localhost.

        Kommentar


        • #5
          Ohne jetzt merkwürdig zu klingen: So in der Art hätte ich das dann auch gebastelt.

          Vielen Dank für deinen Code, das werde ich dann einfach so übernehmen.

          Kommentar

          Lädt...
          X