LAMP auf nem VPS

Seit 2 Tagen bin ich nun besitzer eines VPS bei HostEurope (bei 8,99€ im Monat konnte ich einfach nicht nein sagen *sfg*). Leider wird das Ding nur mit Suse ausgeliefert und als alter Debianer habe ich damit so meine "Probleme". Kein abt, kein deselect und YAST finde ich .. na ja .. reden wir nicht drüber ;)

Was tun also, um Webserver, DB etc auf den neusten Stand zu bringen und php auch noch durch die Version 5 zu ersetzen?

Selbermachen! (oder 1002 Suse-Dokus studieren *sfg*)

Zum Glück sind alle nötigen Tools wie make etc. schon drauf, also heißt es erst mal : alles muss raus. (zumindest das, was nicht mehr gebraucht wird.), sprich Apache2, PHP4 und MySQL per YAST deinstalliert. Komischerweise hat YAST bei der Deinstallation von PHP4 auch gleich einige Komponenten der Serververwaltungssoftware PLESK entfernt (wieso auch immer). Nun ja, es gibt schlimmers, solange ich noch nen SSH Zugang habe is alles ok ^^

Nach der Deinstallation kommt bekanntlich die Installation, allerdings sollte man sich vorher schon alle nötigen und aktuellen Pakete der Software via wget in das Verzeichnis /usr/src/www_src/ herunterladen:

  • MySQL (server-4.1.13, devel-4.1.13, client-4.1.13, shared-4.1.13)
  • zlib (1.2.3)
  • libxml2 (2.6.20)
  • php5 (5.0.4)
  • Apache2 (2.0.54)

Bei MySQL war ich übrigends faul und habe mir nur die entsprechenden RPMs geruntergeladen. Alle anderen Pakete liegen als tar.gz bzw. tar.bz2 vor und müssen erst mal mittels tar xzf packetname entpackt werden.

Wenn alle Pakete erfolgreich entpackt wurden, kann installiert werden. Bei den RPMs von MySQL erledigt das ein einfaches rpm -i MySQL*.rpm, für alle anderen Pakete kommt GNU make zum Einsatz.

Ist MySQL installiert, geht´s mit zlib und libxml2 weiter. Dazu einfach in das entsprechende Verzeichnis wechseln und mit make kompilieren und installieren.

  ./configure
  make
  make install

Wenn die beiden Installationen erfolgreich durchgelaufen sind, geht´s mit dem Apache weiter.

  ./configure –prefix=/usr/local/apache2 –enable-so
  make
  make install

–prefix gibt übrigends das Zielverzeichnis (in diesem Fall /usr/local/apache2) an
–enable-so steht für die dynamisch nachladbaren Module, die wir später für Erweiterungen wie PHP5 benötigen

Ist die Installation ohne Probleme durchgelaufen, geht´s mit PHP weiter.

  ./configure –prefix=/usr/local/php5 –with-apxs2=/usr/local/apache2/bin/apxs \
     –with-libxml-dir=/usr/local/lib –with-zlib –with-zlib-dir=/usr/local/lib \
     –with-mysql=/usr –with-mysqli=/usr/bin/mysql_config \
     –with-gd –enable-soap –enable-sockets
  make
  make install

Bei meiner Installation gab es allerdings ein paar multiple defined Fehler. Wieso hab ich erst nach einigen Recherchen im Internet herausbekommen. Anscheinend gibt es, bedingt durch die beiden Flags "with-mysql" und "with-mysqli", ein Problem in der makefile von php. Beheben läßt sich das durch weglassen einer der beiden Flags (wobei dann auch eine der beiden Bibliotheken wegfällt) oder durch manuelles editieren der makefile. Ich habe mich für´s letztere entschieden und die makefile angepaßt. Dort muss man die Zeile "EXTRA_LIBS =" suchen und das zweite "-lmysqlclient" entfernen.

Danach dann mit

  make clean
  make
  make install

die Installation abschließen. Wichtig dabei ist, das man kein ./configure ausführt, da sonst die makefile wieder neu gebildet wird und die vorher gemachten Änderungen obsolet sind. 

Hat alles geklappt muss man nun nur noch die Datei php.ini-dist aus dem php-Installationsverzeichnis in den Ordner "/usr/local/php5/lib/" kopieren und in php.ini umbenennen. Freilich funktioniert php auch ohne diesen Schritt, allerdings nutzt php dann immer die default-Werte und Anpassungen sind nicht möglich.

Zu guterletzt muss noch die httpd.conf angepaßt werden. Per default hat das make install Kommando zwar die Zeile

 LoadModule php5_module        modules/libphp5.so

in die httpd.conf geschrieben, nun fehlt aber noch

AddType application/x-httpd-php .php

das manuell eingefügt werden muss. Wichtig dabei, das die Zeile ganz ans Ende der httpd.conf geschrieben wird.

Das war´s auch schon. Nun kann man den Webserver via "/usr/local/apache2/bin/apachectl start" starten. Ob php richtig installiert wurde, testet man am besten in dem man eine Datei mit dem Inhalt

<?php phpinfo(); ?>

erstellt und sie dann im Browser aufruft (meineIP/dateiname.php)  

9 thoughts on “LAMP auf nem VPS

  1. hab deinen bericht mit technorati.com gefunden.

    überlege mir auch so eine teil zuzulegen. wie siehts mit der performance aus?? lässt sich dein vps bequem über ssh administrieren (reaktionszeit)?? siehst du wieviel ram dein vps benutzen darf?

    danke für deinen bericht.

  2. Also die Performance is, soweit ich das bislang sehen kann ganz ok, die Reaktionszeit via ssh ist super. Manchmal „hakt“ SSH allerdings etwas (keine Eingabe in die Console via SSH für ca. ne halbe Sek. möglich), ist aber verschmerzbar. Was die RAM-Benutzung angeht, da hab ich leider noch nichts gefunden :( … werde mich aber melden sowie ich mehr weiß.

    Im Großen und Ganzen bin ich aber noch nicht wirklich zu viel gekommen, nen „Endericht“ mit einigen Tests in Punkto Stabilität und Performance wird man hier aber auf jeden Fall noch lesen können! ;)

  3. „Ich habe mich für´s letztere entschieden und die makefile angepaßt. Dort muss man die Zeile „EXTRA_LIBS =“ suchen und das zweite „-lmysqlclient“ entfernen.“

    wo finde ich dieswn file unter php?
    ich werde noch wahnsinnig. bitte give me a clou?

Comments are closed.