Einige Installationsprobleme auf einem dedizierten Server
am 27.01.2013 - 15:36 Uhr in
Hallo,
nach über 1 Jahr Abstinenz (http://www.drupalcenter.de/node/35339) und viel Ärger mit Joomla habe ich mich nun endgültig entschlossen zu Drupal zu wechseln.
Habe damals mein ForkCMS zu Joomla portiert da dies ziemlich simpel war - nur verdient dieses Stück Software nicht die Bezeichnung CMS. Daher muss ich wohl in den saueren Apfel beißen und wieder wechseln. Währe ich bloß damals schon direkt bei Drupal hängen geblieben.
Kurz zum Server:
dedizierter Server i7-2600 CPU, 2TB Sata-II HD (Softwareraid), 16GB Ram, beim dem Hoster erhielt ich außerdem Varnish + APC + Memcached + mongoDB.
Konfiguration für Drupal 7: FCGI, Perl Unterstützung, Python Unterstützung, memory_limit 512 MB, max_execution_time -1, max_input_time -1, post_max_size 256MB, upload_max_filesize 128MB
Lange Rede kurzer Sinn, bevor ich mich auf die Suche nach Modulen mache - benötige ich eine laufende Standardversion von Drupal 7. Also wurde die 7.19er Version installiert, im Anschluss mit dem Locate updatemodul ausgestattet. Hier trat schon der erste Fehler auf:
An AJAX HTTP error occurred. HTTP Result Code: 500 Debugging information follows. Path: /batch?id=10&op=do StatusText: Internal Server Error ResponseText: 500 Internal Server Error Internal Server Error The server encountered an internal error or misconfiguration and was unable to complete your request. Please contact the server administrator, XXX and inform them of the time the error occurred, and anything you might have done that may have caused the error. More information about this error may be available in the server error log. Apache Server at XXXX Port 80
Danach wurden die entsprechenden Module für Varnish, APC, Memcached und mongoDB installiert und aktiviert. Bei der Übersetzung tauchte wieder der oben erwähnte Fehler auf.
Diese Fehler tauchen seit neuestem auch auf:
Warning: strcmp() expects parameter 2 to be string, array given in _system_sort_requirements() (line 2784 of /var/www/vhosts/XXX/drupal7_dev/modules/system/system.module).
Warning: usort(): Array was modified by the user comparison function in system_status() (line 2314 of /var/www/vhosts/XXX/drupal7_dev/modules/system/system.admin.inc).
Könnte es am FCGI liegen? Wie müsste ich den Server konfigurieren damit Drupal 7 perfekt läuft. Mein Hoster sagte das APC im FCGI nicht wirklich sinn machen würde, PHP als Apachemodul würde er aber nicht empfehlen, reines CGI kommt nicht in Frage. APC bringt nur merklich was, wenn die Server CPU sehr schwach sei... bei derzeitigen CPUs ist dies jedoch nicht der Fall.
Nun überlege ich ob ich diese 4er Combo nutzen soll oder APC gänzlich deaktivieren soll. Varnish und Memcached haben jeweils 4GB Platz, sollte denke ich gut ausreichen.
Müssen vielleicht ganz bestimmte PHP, Apache Module aktiviert werden oder sonstige Extensions installiert werden damit Drupal 7 problemlos läuft?
- Anmelden oder Registrieren um Kommentare zu schreiben
Gib mal mehr Infos zu deiner
am 28.01.2013 - 16:54 Uhr
Gib mal mehr Infos zu deiner Software-Ausstattung, die ist wichtiger als die HW-Config:
Der Server ist ja mal ordentlich fett. Ich würde nicht von vorneherein mit allen Optimierungen rumspielen, das macht evt. unnötig Probleme.
Vor allem Varnish solltest du erst aktivieren, wenn die Site ohne richtig läuft.
Das würde ich auch mit APC und Memcache erstmal so halten und wenn die Site erstmal nur mit Apache / PHP läuft, dann kannst du die einzelnen Optimierungen zuschalten und sehen, was passiert.
APC ist normalerweise recht problemlos, bringt neben weniger CPU-Last auch weniger PHP Speicherverbrauch.
Ich verwende allerdings mod_php und nicht fcgi.
Hast du wegen des 500er mal im Apache Errorlog geschaut?
Die Warnings sehen eher nach ner falschen PHP-Version aus.
Mehr kann ich jetzt dazu nicht sagen...
Hallo, vielen Dank für Deine
am 28.01.2013 - 17:31 Uhr
Hallo,
vielen Dank für Deine Rückmeldung.
- Betriebsystem ist ein Linux (CentOS 6.3 (Final)) mit einem Apache2 mit Plesk Panels 11.0.9 als Verwaltungsbackend.
- PHP 5.3.3
- MySQL 5.1.66-log
Im Moment läuft nur mein PliggFork, habe ich zurück Migriert von Joomla (nie wieder dieses System!!!).
Den Hoster habe ich extra gewechselt wegen Drupal, bei meinem alten Hoster hatte ich zwar auch einen dedizierten Managed Server, allerdings konnte er viele Sache nicht anbieten wie mongoDB, Varnish - zudem die Hardware wirklich nicht mehr Zeitgemäß war gekostet jedoch genau so viel wie der neue Server beim neuen Hoster. Besucher varrieren, es ist eine Community mit einer Newsseite zu vergleichen mit über 1500 Autoren. Je nach veröffentlichen Artikel und Themen kommt es schon manchmal vor das die Seite bis zu 20.000 Besucher am Tag abfertigen muss. In der Regel sind es jedoch um die 5.000 pro Tag, mal mehr mal weniger (Piwik Werte).
Varnish kann ich nur über den Hoster deaktivieren, es ist bereits aktiviert und läuft problemlos. Memcached ist auch aktiviert und Pflicht für das alte CMS neben dem APC. Das Problem mit APC ist eben FCGI, ich könnte mod_php oder CGI laufen lassen. Jedoch ist beides nicht zu empfehlen, laut dem Hoster. Bei FCGI wird jedoch APC sofort neu gestartet sobald der Prozess geschlossen wird. Somit werden die Dateien maximal für 5-30 Sekunden gecacht. Ich hätte die Möglichkeit PHP mit PHP-FPM laufen zu lassen, das Problem mit APC wäre dann erledigt...allerdings muss das Plesktempalte neu geschrieben werden hier müsste ich extra bezahlen, da es nicht zu einer Standardkonfiguration gehört.
Drupal 7 in der Rohform reagiert recht träge, wenn ich das CMS ohne Memcache und APC laufen lasse. Somit kommt es an sich für mich nicht in Frage, zudem dies ja bereits unterstüzt wird. In Verbindung mit Varnish ist Drupal 7 wirklich rasend schnell, sobald noch mongoDB ins Spiel kommt... nun ja, laut Benchmarks schafft der Server in der Konstelation bis zu 6000 Anfragen/s zu beantworten. Dies ist schon recht erstaunlich...wenn es nur laufen würde ;)
Mein neuer Provider und ich doktorn schon das ganze Wochenende an den Einstellungen des Servers, jedoch bekomme ich Drupal perto nicht zum vernünftigen laufen.
Folgende Sachen wurden nun vom Provider noch geändert:
- PEAR ist installiert
- das PEAR-Modul Archive_Tar wurde soeben nachinstalliert
- max_allowed_packet wurde in der MySQL-Config auf 32M erhöht
Fehlermeldungen die ich noch erhalte:
- include_path='./sites/all/modules/backup_migrate_files/includes;.:') ist nicht korrekt. Das muss /usr/share/pear heissen - nur wo kann ich bei dem Modul das richtige Verzeichniss zuweisen?
- mod_fcgid: read data timeout in 45 seconds (wie viel soll hier eingestellt werden?)
- Timeout von Varnish von 30s
- mod_fcgid: stderr: PHP Fatal error: Cannot redeclare dmemcache_set()
Es scheint auch einen Bug in Ihrem benutzten Varnish-Modul zu geben, zumindest findet sich im error_log gelegentlich dieser Fehler:
[Mon Jan 28 00:02:03 2013] [error] [client xxx] PHP Fatal error: Call to undefined function varnish_purge_all_pages() in /var/www/vhosts/xxx/subdomains/xxx/sites/all/modules/varnish/varnish.cache.inc on line 64
Nun bin ich mir wirklich nicht sicher, welche Konfiguration ich wählen muss damit Drupal 7 problemlos läuft. Mein Provider hat mir nun mitgetielt das ich erst eine lokale Konfig erstellen soll um zu sehen was alles benötigt wird. Er kann die Konfiguration dann übernehmen. Nur woher soll ich wissen, was benötigt wird. Wenn ich z.B. XAMPP nehmen würde, sind dort ja eine Vielzahl an Extensions aktiviert.
Nutzen möchte ich auf alle Fälle organic groups mit Submodulen, Beiträge sollten nur in Gruppen erstellt werden. Wobei ein User auch mehren Gruppen zugehören kann. Ich weiß zwar noch nicht ganz wie ich das ganze mit Drupal umsetzen soll, zudem die Daten noch iwie migriert werden müssen. Jedoch ist das die grobe Richtung.
Managed Server?
am 29.01.2013 - 13:26 Uhr
Ich denke nicht, dass es wirklich Sinn macht, eine Site von der Größe und Komplexität auf einem Manged Server bei einem nicht auf Drupal spezialisierten Hoster laufen zu lassen.
Für deine Anforderung wäre es vermutlich besser, das ganze entweder über IaaS auf mehrere (virtuelle) Root-Server zu verteilen, die du dann aber selbst (von Hand) konfigurieren müsstest...
Oder aber - was ich an deiner Stelle bevorzugen würde - dir einen Hoster zu suchen, der sich auf Drupal spezialisiert hat. Da gibt es ja schon ein paar, wie z.B. Freistil IT (falls du in D hosten willst) oder pantheon.
XAMPP ist für sowas wohl eher nicht zu gebrauchen, setz dir lieber einen virtuellen Linux-Server auf mit den exakt gleichen Versionen der Komponenten.
Nur dann kannst du da was sinnvoll austesten.
Mal davon abgesehen, dass du so ein System ohnehin als Entwicklungs- bzw. Staging-System verwenden solltest.
Danke für Deine Rückmeldung.
am 29.01.2013 - 13:39 Uhr
Danke für Deine Rückmeldung. Nun, ist Drupal wirklich so speziell? Spezieller als TYPO3? Ich denke eher nicht, bei dem Hoster laufen bereits einige Drupal 7 Projekte absolut problemlos, wie mir mitgeteilt wurde.
Im Grunde genommen habe ich ja komplett freie Hand über das was Installiert oder aktiviert werden muss. Nur muss ich wissen, worauf Drupal besonders allergisch reagiert und was unbedingt benötigt wird. Spezieller Hoster ist zwar schön und gut, aber dies lassen Sie es sich auch ganz schön teuer bezahlen wenn ich mir die Preise so anschau. Ein Root-Server kommt für mich nicht in Frage, ich brauche eine Managed Lösung - ich habe wirklich wenig Zeit und Lust noch den Server aktuell zu halten, da nehme ich doch lieber die Serviceleistung des Hosters...auch wenn es teuerer ist. Bei Problemen habe ich zumindest immer einen direkten Ansprechpartner.
XAMP war nur ein Beispiel, ich nutze an sich gerne WAMP zur Entwicklung - es lässt sich sehr flexibel erweitern und ist nicht so überladen wie XAMP. Das eine Entwicklungsumgebung etwas anders ist als die produktive ist mir schon klar ;)
Dennoch beantwortet dies nicht meine Fragen die ich gestellt habe :)
Vor kurzem las ich, dass APC
am 29.01.2013 - 14:58 Uhr
Vor kurzem las ich, dass APC bei modernen CPUs eigentlich gar nicht so viel bringt - sprich - ein Server mit modernen CPUs kann locker ohne APC arbeiten (mit Drupal).
Varnish: Du hast durchschnittlich 5000 Besucher pro Tag auf deinem Projekt? Das sind ca. 3,5 Besucher pro Minute - das ist, für einen normalen Server, gar nichts und dafür braucht man kein Varnish. Varnish ist für wesentlich höhere Zugriffsraten gedacht. Das normale Drupal-Cache-System kann diese Zugriffsraten ganz alleine handeln (und noch viel mehr).
Probiere mal Loadimpact aus - mein Server, ohne Varnish, kann locker 50 Clients (80 Requests pro Sekunde) handeln - da kommt der nicht einmal ansatzweise ins Schwitzen und ich kann, ohne Probleme, noch locker im Adminbereich Views erstellen/Module aktivieren/deaktivieren ohne dass ich irgendetwas merke - und das alles ohne Varnish (aber mit Memcache).
Varnish kannst du also deaktivieren - darüber solltest du erst wieder nachdenken wenn du vieeeeeeeeeelll höhere Zugriffe hast. zeit.de - welt.de oder Facebook arbeiten mit Varnish aber das ist doch eine ganz andere Liga.
Auch kannst du erstmal ohne APC arbeiten - deine Serverspezifikation braucht nicht unbedingt APC.
Wenn du beides deaktivierst, hast du schon 2 Fehlerquellen ausgeschlossen und du kannst dich auf die anderen Probleme konzentrieren.
5000 - 20000 Besucher pro Tag (die meisten sind Gäste) kannst du vergleichen mit einer Fahrt zum Supermarkt. Dafür reicht ein Kleinwagen mit 40 PS. Bei dir habe ich den Eindruck als wenn du dir einen Renn-Truck mit Gasturbine und 1600 PS zusammenbauen willst - da du glaubst den zum "einkaufen fahren" zu benötigen.
Das waren meine 2 Cents zum Thema.
Gruß Matthias
Danke für deine
am 29.01.2013 - 15:17 Uhr
Danke für deine Rückmeldung,
die Aussage mit dem APC kam auch von meinem Hoster.
Dein Beispiel mit dem Truck ist super und wenn ich die Wahl hätte ich wie ich zum Einkaufen fahre, dann wähle ich natürlich die Gasturbine mit 1600 PS ;)
Ne Spaß bei Seite, es ist mir schon klar das Varnish sich einen ablacht bei diesen Zugriffszahlen, jedoch schadet dies auch nicht. Warum nicht das maximale von Anfang an einsetzen, wenn dies bereits geboten wird?
Zum Loadimpact...ich habe erstmal mein aktuelles Live Projekt gebencht, dieser nutzt lediglich APC. Für memcached und Co wüsste ich zuviel umprogrammieren, es lohnt einfach nicht. Bei diesem habe ich als Ergebniss 2819 Requests erhalten.
Bei der Drupalinstallation mit Varnish, APC, Memcached und mongoDB kamen dabei 6396 Requests heraus.
Ich hoffe ich habe die richtigen Benchwerte genommen.
Die Installationsprobleme tauchen ja nicht bei inbetriebnahme von Cachingmechanismen auf, sondern beim Installieren von Modulen wie z.B. Organic Groups, Autopath, Profile2 etc...an sich ja recht ausgereifte Module die in unzähligen Installationen aktiv sind.