1Blu Sever Setup

Worum geht es?

Du arbeitest auf einem Windows XP/Vista Client und möchtest einen 1blu Dedicated Server einrichten als Apache Webserver + PHP5 + SQL5 Datenbank? Dann bist Du hier richtig.
Hier wird beschrieben,
  • wie die Einrichtung vonstatten geht.
  • wie Du Verzeichnisse einrichtest, in denen Deine PHPs mit Datendateien arbeiten können.
  • wie der qmail-Zugang konfiguriert wird.
  • wie der SQL Zugang konfiguriert wird.
  • welche Aufräumarbeiten notwendig sind.
Es wird vorausgesetzt, daß Du in einer Entwicklungsumgebung PHP-Dateien und eine MYSQL-Datenbank erstellt hast, auf die die PHP-Dateien zugreifen.

Es wird vorausgesetzt, daß Du bei 1blu einen dedicated Server mit mindestens 1 Domain (als Beispiel verwenden wir in diesem Tutorial beispiel.de) bestellt hast und Du von 1blu die Einrichtungsbestätigung und die Zugangsdaten bekommen hast.

    Vorbereitung

  1. txt-Datei anlegen für Zugangsdaten - diese Zugangsdatei wird in Zukunft kurz ZDatei (für eine Vorlage klicke hier!) genannt
  2. Kopieren der Plesk-Zugangsdaten (URL,User,Passwort) in die ZDatei - die Plesk-Zugangsdaten wurden per mail zugeschickt
  3. Kopieren der SSH-Zugangsdaten (IP,user,passwort) in die ZDatei - die SSH-Zugangsdaten wurden per mail zugeschickt
  4. Download Putty via Internet (Google mit den Suchbegriffen download Putty) - Putty ist die kostenloses Unix/Linux Konsole, mit der Du direkt Linux commands auf Deinen server absetzen kannst - dazu später mehr
  5. Installiere Putty auf Deinem lokalen Rechner und lege Dir einen bequemen Shortcut (z.B. auf den Desktop) - Du brauchst Putty öfter
  6. Download EMS light oder MYSQL-Dreamcoder light - beides kostenlose,grafische MYSQL-Admin-Consolen; EMS hat bei mir unter Vista nicht mehr funktioniert, wäre aber besser geeignet, da das Export-Tool integriert ist.
  7. Installiere die MYSQL-Admin-Console Deiner Wahl und lege Dir einen bequemen Shortcut (z.B. auf den Desktop) - Du brauchst die MYSQL-Admin-Console öfter
  8. Domain einrichten

  9. Starte Plesk im Browser mit URL der Plesk-Zugangsdaten - bei Meldung " Es besteht ein Problem mit dem Sicherheitszertifikat der Website." auf "Laden dieser Website fortsetzen (nicht empfohlen)." klicken
  10. Anmelden mit User und Passwort - siehe Plesk-Zugangsdaten
  11. Klicke Im Menü Links auf "Domains", dann "Neue Domain einrichten"
  12. Trage die Domain ein (z.B. beispiel.de), die Du mit Deinem Server bestellt hast, aktiviere oder deaktiviere den Prefix www (in unserem Beispiel bleibt www aktiviert) wie benötigt und klicke [OK]
  13. Da Du ja Deine PHP-Dateien auf dem Server über diese Domain erreichbar hosten möchtest, solltest Du hier "Physikalisches Hosting" auswählen, klicke [OK]
  14. Falls Du https-Seiten hosten möchtest, aktiviere die SSL-Unterstütztung; getrennte Verzeichnisse für SSL und nicht-SSL-Inhalte sind sicherer, aber schwerer zu administrieren (Verlinkung zwischen Inhalten könnte unterschiedlich zur dev-box ausfallen)
  15. Denke Dir ein FTP Login (bewährt hat sich was mit 7 oder 8 Zeichen, komplett kleingeschrieben) und ein Passwort (möglichst 8 Zeichen mit mind 1 Groß-, 1 Kleinbuchstaben und 1 Zahl), trage das unter account-Einstellungen und in Deine ZDatei ein (trage auch die URL, die Du Dir selber zusammenbaust: ftp:// + IP-Adresse die auf der Plesk-Seite angezeigt wird, also z.B. ftp://77.88.99.0, in die ZDatei ein)
  16. Unter Dienste aktiviere mindestens die PHP-Unterstützung und, wenn Du Deine PHP-Dateien auf der dev-box getestet hast, deaktiviere den PHP-safe mode; für die Webstatistiken habe ich Webalizer gewählt, weil anscheinend Plesk damit gut umgehen kann, plesk-stat habe ich aktiviert, die benutzerdefinierten Fehlerdokumente habe ich auch aktiviert - klicke [OK] in Deiner Domains-Übersicht erscheint jetzt die eingerichtete Domain


  17. Wenn Du jetzt einen Browser mit der eingerichteten Domain-Url (Achtung aktiviertes oder deaktiviertes www) (in unserem Bespiel www.beispiel.de) startest, wird Dich ein Plesk-Auftritt empfangen.

    PHP-, Styles und Content Setup

    Reichern wir den Webauftritt mit php-Logik, Inhalten, Styles und Bildern an.

    Dazu müssen wir zuerst auf unserem Windows-Client eine FTP-Verbindung etablieren. Unter Vista geht das so (Windows XP sollte so ähnlich funktionieren, ansonsten funktionieren auch andere ftp-clients, z.B. das kostenlose freeftp - google mal freeftp download):

  18. Windows Explorer öffnen
  19. Rechtsklick auf Computer
  20. Klick "Netzwerkressource hinzufügen"
  21. Willkommen-Dialog mit [Weiter] abwimmeln
  22. "Wo soll dieser Netzwerkort erstellt werden?" Dialog mit "Eine benutzerdefinierte Netzwerkressource auswählen" beantworten, [Weiter]
  23. Dem "Geben Sie den Standort der Website an" Dialog mit der ftp-Url aus der ZDatei antworten., [Weiter]
  24. Im Dialog "Geben Sie einen Benutzername und ein Kennwort an (falls erforderlich)." das "Anonym anmelden" deaktivieren und den ftp-usernamen aus Deiner ZDatei eingeben, [Weiter]
  25. Den Dialog "Wie soll dieser Netzwerk heißen?" kannst Du beliebig beantworten - bewährt hat sich, hier den Domainnamen anzugeben (in unserem Beispiel: beispiel.de), [Weiter]
  26. Bei "Fertigstellen des Assistenten" kannst Du "Diesen Netzwerkort nach Klicken auf Fertig stellen öffnen" deaktivieren, [Fertig stellen] - Deine FTP-Verbindung stellt sich jetzt in jedem Windows-Explorer so dar, wie ein Laufwerk
  27. Öffne Deine ftp-Verbindung via Windows-Explorer und säubere die Verzeichnisse httpdocs und httpsdocs von Dateien - lasse die Verzeichnisse vorerst stehen; wenn sich die Dateien nicht löschen lassen liegt das an unzureichenden Rechten Deines ftp users - benenne dann wenigstens alles um, was nach index.??? (z.B index.htm oder index.php) aussieht (z.B. index.htm in indexold.htm)
  28. Kopiere Deine Webseiten-Inhalte einschließlich css, js, htm, php und Bildern in das Verzeichnis httpdocs oder httpsdocs, abhängig davon, ob es ssl Inhalte sein sollen oder nicht - eine php-Datei sollte index.php heißen oder es sollte wenigstens eine index.htm existieren - die index-Datei wird immer dann aufgerufen, wenn ein Benutzer in seinem Browser nur die domain-url eingibt, also dort keine Datei spezifiziert
  29. Informationsbeschaffung - Basis

  30. Erstelle eine textdatei phpinfo.php auf Deinem windows client - mit dem Inhalt:
    <HTML><BODY>
    <?php
    phpinfo();
    ?>
    <HR><B>GD Info - Dump</B><HR>
    <?php
    var_dump(gd_info());
    ?>
    </BODY></HTML>
  31. Kopiere die Datei phpinfo.php auf Deinen Server in das Verzeichnis httpdocs
  32. Starte die URL http://<DeineDomainURL>/phpinfo.php (in unserem Beispiel: http://www.beispiel.de/phpinfo.php) im Browser
  33. Suche nach DOCUMENT_ROOT und schreibe Dir den Wert in die ZDatei (in unserem Beispiel: /srv/www/vhosts/beispiel.de/httpdocs) - das ist der linux-pfad zu unseren http-Dateien; dieser Pfad ohne httpdocs ist unser ftp-Basispfad (in unserem Beispiel: /srv/www/vhosts/beispiel.de)
  34. Suche nach User/Group - schreibe den nur aus Buchstaben bestehenden Teil der Zeichenkette als apache-user in die ZDatei (in unserem Beispiel soll das wwwrun sein)
  35. Wenn die PHP Funktion ImageTTFText genutzt werden soll, prüfe in der Sektion gd, ob der GD Support und der FreeType support enabled ist, die FreeType version sollte höher als 2 sein (in unserem Beispiel sind alle Bedingungen erfüllt)
  36. Wenn Deine scripts die sendmail-Funktionalität benutzen sollen, schreibe den Wert von sendmail_path in die ZDatei
  37. locale für ucwords und ucfirst beachten!
  38. httpdocs und httpsdocs Cleanup

  39. Starte putty, verwende die SSH-Zugangsdaten aus ZDatei
    Hier gelten Linux-Regeln!:
    - Pfadnamen basieren auf Forwardslash (z.B. /srv/www/vhosts/beispiel.de)
    - keine Doppelpunkt-Laufwerksangaben im Pfad
    Unix/Linux Befehle Kurzübersicht
    NavigationÄnderungRechte
    ls oder dir zum Listen von Dateien und Verzeichnissencp für copyaddgroup/delgroup zum Hinzufügen/Löschen von Gruppen
    cd zum Verzeichnis wechselnmv für moveuseradd/userdel zum Hinzufügen/Löschen von Useraccounts
    cd / wechselt zur Rootrm für remove fileschmod wechselt die item (file oder dir) Rechte
    cd .. wechselt in das Vater-Verzeichnisrmdir für remove directorieschown ändert den Benutzereigentümer von Dateien
    cd slash+pfad geht von einem in der Root startenden, also absoluten Pfad ausedit <textfile> - zum textfile editieren; ungewöhnliche Bedienung!
    <ESC>Doppelpunkt wechselt in den command-Modus;
    q! schließt edit dort ohne Dateispeicherung
    wq schließt edit und speichert die Datei
    Für mehr Hilfe VIM edit linux googeln
    chgrp ändert den Gruppeneigentümer von Dateien
    zu jedem command gibt es mit der option --help mehr Hilfe: z.B. ls --help; gute Kurz-Referenz:
    http://www.linux-praxis.de/linux1/befehle2.html
  40. cd <document root> (in unserem Beispiel: cd /srv/www/vhosts/beispiel.de/httpdocs)
  41. Äufräumen nach der Methode: gucken mit Befehl dir, Überflüssiges identifizieren mit Köpfchen, mit rm und rmdir löschen, mit cd in das nächste Verzeichnis wechseln und von vorn
    rm -d -r <Folder> löscht verzeichnisse mit allen Unterverzeichnissen und Dateien
  42. Folder für Dateien anlegen, mit denen PHP-Scripte arbeiten

    Der Trick ist dabei nicht wirklich das Folder anlegen, sondern das Setzen der Rechte.

  43. Überlege Dir sehr genau, ob der Daten-Folder im httpdocs (oder httpsdocs) stehen soll oder in einem übergeordneten Folder - im ersten Fall können selbst bei richtig gesetzten Rechten User über die Fehlermeldungen wenigstens Hinweise darüber erhalten, ob eine Datei oder ein Folder existiert
  44. Lege Deinen Folder in Putty an - mit cd zum Folder wechseln und mit rmdir den Folder anlegen (im Beispiel wird in datfolder in httpdocs angelegt)
    Achtung: Im ftp-client wirst Du den folder zu diesem Zeitpunkt wohl noch nicht sehen
  45. Mit chown <apache-user aus ZDatei> <Dein Folder> (im Beispiel: chown wwwrun datfolder) wird dieser Folder dem apache-user übereignet, sodaß dieser dort machen kann, was er will
  46. Lege dann eine Datei testdir.php an:
    <HTML><BODY>
    <?php
    $testfolder='<Dein Folder>/testfolder'; // in unserem Beispiel: 'datfolder/testfolder'
    $issuccess=mkdir($testfolder, 0770);
    if($issuccess) echo "Folder '".$testfolder."' was created.";
    else echo "Folder '".$testfolder."' FAILED to be created.";
    ?>
    </BODY></HTML>


    Achtung: liegt Dein Folder nicht in httpdocs (oder httpsdocs), mußt Du noch absolute Pfadangaben hinzufügen
  47. Kopiere die Datei testdir.php in das httpdocs Verzeichnis auf Deinem Server und starte sie in einem Browser von Deinem client
  48. Zurück in putty lasse Dir mit dir anzeigen, welche Gruppe Dein Apache-User neuen items zuweist (in unserem Beispiel www) - die 4. Spalte in der liste - notiere Dir die Apache-Gruppe in Deiner ZDatei
  49. rmdir testfolder, um den testfolder zu löschen
  50. Wechsle in den Vater-Folder Deines Folders (in unserem Beispiel nach httpdocs)
  51. chgrp <Apache-Gruppe>,<Dein Folder> (in unserem Beispiel: chgrp www,datfolder), um die Apache-Gruppe auf den Folder anzuwenden
  52. chgmod ug+rwx <Dein Folder> (in unserem Beispiel: chgmod ug+rwx datfolder), um dem Apache-User und der Apache-Gruppe volle Rechte und anonymous keine Rechte auf den Folder einzuräumen
  53. edit /etc/group, um die Gruppen Datei zu editieren - pro Zeile eine Gruppe (in unserem Beispiel, eine Zeile www:x:8: ) - an das Ende der Zeile der Apache-Gruppe schreiben wir unseren ftp-user
  54. SQL-Datenbank einrichten

  55. Datenbank anlegen via tools Plesk/ menüpunkt Domains/ domain beispiel.de/ sektion Dienste/ icon Datenbanken/ icon Neue Datenbank hinzufügen … eingaben folgen -> username und passwort in die ZDatei schreiben
  56. export table create und data insert als sql-Datei von Datenbank auf Entwicklungsserver
    %windowsroot%\<MYSQL-ORDNER>\bin\mysqldump database -u <USER> -p=<PASSWORD> > database.sql
    USER sollte am besten root sein


  57. Theoretisch könnte man das nun mit dem SQL Editor der MYSQL-Admin-Konsole vom client aus in die MYSQL-DB des Servers importieren. In der Praxis bricht das mit Fehlermeldungen ab, wenn die sql-Datei zu groß ist. In diesen Fällen muß die sql Datei zuerst auf den server gebracht werden und von dort importiert - wie hier beschrieben:
  58. Login mit putty - lege im ftp-Basispfad (in unserem Beispiel: /srv/www/vhosts/beispiel.de) einen Folder transfer an (Befehl: mkdir transfer)
  59. Kopiere sql-export-Datei mit Deinem ftp-client (z.b. windows-explorer) in das transfer verzeichnis)
  60. Wechsle in putty mit cd in das transfer Verzeichnis
  61. mysql -u admin -p <datenbank>
  62. Passwort-Eingabe
  63. SET AUTOCOMMIT=0;
    SET UNIQUE_CHECKS=0;
    SET FOREIGN_KEY_CHECKS=0;
    commit;
  64. mysql> source file_name
  65. admin user einrichten, um mit MYSQL-Admin-Console des clients auf den server zuzugreifen:
    http://faq.1blu.de/index.php?action=artikel&cat=319&id=249&artlang=de
    - wichtig: danach noch FLUSH PRIVILEGES; anwenden (Hintergrundinfos:
    http://dev.mysql.com/doc/refman/5.0/en/adding-users.html
    )


  66. Alternativ kann man die Verwaltung auch über die Plesk-MYSQL-Admin-Console ausführen:
    http://faq.1blu.de/index.php?action=artikel&cat=216&id=226&artlang=de&highlight=mysql


    Font für PHP Funktion ImageTTFText einrichten

  67. Kopiere die font-Datei von Deinem windows-client per ftp auf server (z.B. in ein Verzeichnis transfer, daß unter dem ftp-Basispfad - siehe ZDatei - eingerichtet hast) (als Beispiel soll hier arial.ttf herhalten)
    Achtung: Im C:\windows\font Verzeichnis unter Vista werden standardmäßig keine Datei-Namen angezeigt und drag’n drop copy funzt auch nicht -> kopiere Dir die font-Datei lokal mit copy via DOS-Box irgendwohin zwischen
  68. Prüfe in putty, ob das Verzeichnis /usr/share/fonts/truetype existiert - mit cd und dir; lege gegebenenfalls fehlende Verzeichnisse mit mkdir an (alles kleingeschrieben)
  69. Verschiebe Deinen font mit mv von dem transfer-Verzeichnis nach /usr/share/fonts/truetype
  70. In /usr/share/fonts/truetype lasse ein dir laufen
    - notiere Dir die exakte Schreibweise der Font-Datei (Groß- und Kleinschreibung!!!)
    - checke die Rechte auf Deinem Font - other sollte r-x haben - ansonsten mit chmod o+rx,<font name> ändern (falls Du unsicher bist, auf jeden Fall chmod ausführen)
  71. Die php function ImageTTFText sollte für den Font keinen Pfad mehr enthalten (in unserem Beispiel: ImageTTFText ($im, 20, 0, 10, 20, $white, "arial.ttf", "TestText"); )
  72. sendmail/qmail einrichten

    Kümmern wir uns zuerst um ankommende Mails.
  73. In Plesk richtest Du für Deine Domain Email-Postfächer ein, via: menüpunkt Domains/ domain beispiel.de/ sektion Dienste/ icon E-Mail/ icon Neue E-Mail hinzufügen … Eingaben folgen
  74. Mails sollen an den dedicated server und nicht an einen 1blu server versandt warden - siehe:
    http://faq.1blu.de/index.php?action=artikel&cat=342&id=201&artlang=de&highlight=mail


  75. Und nun die ausgehenden Mails - bringen wir die php-Funktion mail zum laufen:
  76. qmail check: setze in putty ein dir auf den sendmail_path aus ZDatei ohne Parameter ab (in unserem Beispiel: dir usr/sbin/sendmail)
    Achtung: die weitere Konfiguration geht davon aus, daß qmail benutzt wird, also der sendmail-Pfad ein alias auf ein qmail item ist - z.B. /var/qmail/bin/sendmail
  77. edit /var/qmail/control/me
  78. Die Datei sollte den Domain-Namen enthalten (in unserem Beispiel: beispiel.de)
  79. Lege dann eine Datei testmail.php an:
    <?php
    $to="deine.email@ÄNDERE!!!.de";
    $subject="test".date('Y-m-d H:i:s');
    $message="<HTML><BODY><Font Face=Arial Size=11px>test message</Font></BODY>\n";
    $headers = "MIME-Version: 1.0\n";
    $headers .= "Content-Transfer-Encoding: 8bit\n";
    $headers .= "Content-Type: text/html; charset=UTF-8\n";
    putenv("QMAILUSER=notify"); // wird in unserem Beispiel zum Absender: notify@beispiel.de
    putenv("QMAILNAME=Descriptive Name"); // ergänzt die email: "Descriptive Name" notify@beispiel.de
    mail($to, $subject, $message,$headers);
    echo "mail sent<BR>";
    ?>

    Passe die Wertezuweisung der EMail-Adresse für das Feld $to an!
  80. Kopiere die Datei testmail.php in das httpdocs Verzeichnis auf Deinem Server und starte sie in einem Browser von Deinem client
  81. Aufräumen

  82. Lösche phpinfo.php
  83. Lösche testdir.php
  84. Lösche testmail.php
  85. table count check - Falls, die SQL-Daten aus Deiner Entwicklungsumgebung übernommen werden sollten, checke für jede Tabelle, ob die gleiche Zeilenanzahl in der Produktivumgebung angekommen ist.
  86. In Tabelle dokumentieren, welche folder, files, tabellen und views migiriert wurden
  87. cron/scheduling falls nötig
  88. Website-Syntax-Checks:
    http://uitest.com/de/check/
  89. TESTEN, TESTEN, TESTEN !!!
  90. Registrieren in Suchmaschinen & Promotion


...und fertig ist Ihr 1Blu-Server-Setup!

Haben Sie Fragen zum 1Blu-Server-Setup? Klicken Sie hier für Hilfe.