Abhängigkeiten von Paketen entfernen

Ab und zu kommt es vor, dass man ein Paket installieren möchte, aber auf Grund von Abhängigkeiten kann es nicht installiert werden.

In meinem konkreten Fall wird Apache auf Version 2.4.17  gepatched und dort ist z.B. das Metapaket mpm-event verschwunden und direkt integriert worden. Leider hängt ein Paket von mpm-event ab und müsste quasi entfernt werden, da mpm-event nicht mehr existent wäre.

Die Lösung ist einfach die Abhängigkeit entfernen:

  1. Paket entpacken: dpkg-deb -x paket.deb tmp
  2. Konfiguration entdecken: dpkg-deb –control foo.deb tmp/DEBIAN
  3. Die Konfiguration bearbeiten (vim tmp/DEBIAN/control) und in der „Depends:“  Sektion die Störende Abhängigkeit entfernen
  4. Das Paket neu packen: dpkg -b tmp fixed.deb
  5. Als letztes nur noch das neue Paket installieren dpkg -i fixed.deb

Der Vorteil, aber auch Nachteil, ist , dass die Änderungen beim nächsten Update wieder weg sind.

Plesk, Caching und Redis

Mittlerweile ist es ja keine Seltenheit mehr auf caching Technologien zu setzten, um Last vom Server zu nehmen. Für PHP (>=5.5)  gibt es einige Möglichkeiten Caching zu betreiben. Jedoch muss man unterscheiden zwischen Byte- und Datacache:

Im Bytecache wird das geparste PHP script abgelegt, sodass nicht jedes mal neu geparst werden muss. Im Datacache hingegen liegen die tatsächlichen Daten, welche meistens aus Datenbanken geladen werden.

Für den Bytecache gibt es den OpCache von Zend, welcher seit 5.5 mit PHP automatisch mitgeliefert wird. Ich kenne auch keinen anderen weiteren Bytecache, sodass dieser zu bevorzugen ist.

Um Daten zu cachen gibt es u.a. APCu oder xCache als lokale Variante. Diese sind PHP Extensions und müssen seperat kompiliert werden.

Continue reading

SPDY mit Plesk 12.0

SPDY ist das Protokoll, welches mittlerweile am breitesten unterstützt wird und quasi die Basis von http/2 ist. Nginx supportet SPDY mittlerweile schon relativ lange und Apache hinkt da noch etwas hinterher.

Da Plesk nginx (Version 1.6) als reverse Proxy anbietet, ist der Gedanke nicht weit doch SPDY zu aktivieren und die Geschwindigkeitsvorteile zu nutzen.

Das einzige Problem das man hat ist, dass nginx ohne das SPDY Modul kompiliert wurde.

Die einfache Lösung ist nginx selbst zu kompilieren (Beispiel Ubuntu, Adminrechte werden benötigt):

  • Mögliche Abhängigkeiten laden

apt-get build-dep nginx

  • Nginx Quelldateien laden (in dem Fall nginx 1.6.2 stable)

wget http://nginx.org/download/nginx-1.6.2.tar.gz

  • Archiv entpacken

 tar  xf nginx-1.6.2.tar.gz

Continue reading

1&1 Campus-Code vServer

Während der Arbeit machte mich ein Kollege auf das Angebot von 1&1 aufmerksam. Eigentlich unfassbar günstig: 1€ / Jahr für einen vServer L. 50GB,  inkl. Domain, 2GB Ram und noch ein paar Sachen mehr. Natürlich musste ich da erstmal zuschlagen.

Gesagt getan. Registrierung einfach, schnell und unkompliziert. Freigeschaltet war ich dann nach knapp 30 Minuten. Der Server wird Standardmäßig mit CentOS 6 vorinitialisert und es stehen u.a. Debian 7, Suse 13.1 und Ubuntu 14.04.1 zur Verfügung. Die „großen“ Klassiker sind also am Start, aber nur CentOS 6 und Suse 13.1 sind mit Plesk verfügbar. Der Pleskkey lässt sich aber vom Server extrahieren und dann später mit Ubuntu oder Debian nutzen. Die ist leider sehr umständlich. Das neu initialisieren eines Server dauert ca. 30 Minuten, obwohl es eigentlich mit mind. einer Stunde angegeben ist.

Der Server an sich bzw. der Container wird durch Plesk Virtuozzo bereitgestellt. Der Nachteil von diesem System ist eindeutig, dass sich Kernelmodule oder Swap-Files nicht laden lassen. Des weiteren kommen noch einige strikte Limits hinzu z.B. das höchstens 128 Prozesse ausgeführt werden können. Mit einer Plesk Stadardinstallation hat man schon knapp 100 Prozesse (Tasks+Threads). Ich möchte mir gar nicht vorstellen wie das unter Last aussieht. Weiterhin ist es mir auch schon passiert, dass ich an die grenzen vom shared memory gekommen bin und ich meine Domains nicht rekonfigurieren konnte. Etwas nervig finde ich auch, dass MariaDB 10.0 nicht mit Plesk konfiguriert werden kann, obwohl es mit einer KVM-Umgebung klappt. Ich vermute, dass das wieder die Tücken vom Virtuozzo sind.

Über die DNS Einstellungen von Domains kann ich noch nicht sagen, da die Einstellungen für die Stadarddomain nicht verfügbar ist.

Zur Verfügung wird einem eine IPv4 zur Verfügung gestellt, aber keine IPv6. Leider.

Das 1&1 Controlpanel ist schlicht und hat relativ wenige Funktionen. Die meisten „Einstellungen“ lassen sich über das Virtuozzo Panel einsehen bzw. einstellen.

Mein Fazit:

Der Preis ist einfach super und Plesk 12 Unlimited schon ziemlich toll ist. 😉 Leider sind die Limitierungen doch sehr stark und die Virtualisierung schränkt einen doch sehr ein. Jedoch ist der Server klasse dafür geeignet zu lernen und für kleine Projekte sicherlich geeignet. Wenn man jedoch mehr Leistung haben möchte, dann empfehlen sich andere Hoster z.B. netcup, welcher auf KVM Virtualiserung setzt und auf dem meine Hauptdomains laufen. Jedoch zahlt man einen anderen Preis als bei 1&1. Bei 1&1 würde man übrigens 4,99€ in den ersten beiden Jahren pro Monat zahlen. Ich finde, dass aber ein bisschen teuer muss ich gestehen.

Für einen Euro habe ich wohl einen guten kleinen Backupserver gefunden.

Kurzmitteilung

Große Dateien mit nginx als Reverse Proxy

Wenn man z.B. in ownCloud große Dateien hochladen möchte, muss man natürlich die entsprechenden Optionen für PHP setzen, aber leider reicht das nicht.

Kurze Problembeschreibung: Ich möchte eine 250mb große Datei hochladen, aber der Upload schlägt kurz vor Ende fehl.

Die php.ini hat folgende Einstellungen:

  • memory_limit = 512M
  • post_max_size = 512M
  • upload_max_filesize = 512M
  • output_buffering = 512

Da Plesk nginx als Reverse Proxy nutzt, sollte auch noch die

client_max_body_size 512m;

angepasst werden.

Die letzte benötigte Einstellung ist in der Apachekonfiguration zu finden genauer gesagt in der Konfiguration von mod_fcgid (FastCGI)  (/usr/local/psa/admin/conf/templates/default/domain/domainVirtualHost.php)

FcgidMaxRequestLen 536870912

Danach sollte der Upload problemlos funktionieren.