Was sind Best Practices zum Konfigurieren eines Servers für WordPress-Websites?

Ich stellte einen Systemadministrator ein, um einen VPS-Server für mich einzurichten, und leider sieht es so aus, als wären die Dinge nicht richtig eingerichtet. Beim Versuch, Plugins zu installieren und zu aktualisieren, erhalte ich ständig Zugriffserrors. WP Super Cache ist das Hauptproblem, da es bei meinen Lesern zu 502 Fehlern kommt. Derzeit lädt meine Website keine Seitennummerierung (keine Seite 2, Seite 3 usw.).

Update 12/1: Der Apache-Server hat sich heute mehrmals neu gestartet und in den letzten 3 Stunden seit meiner Anfrage an den Host-Provider habe ich bisher nur, dass sie ihn überwachen. Und es hat wieder angefangen, seit sie auch zu überwachen begannen …

Der Sysadmin, der den Server eingerichtet hat, erwähnte, dass die Ordner wp-admin, wp-content und wp-plugins auf 777 Berechtigungen geändert werden müssten, damit er im DSO-Modus ordnungsgemäß funktioniert. Das einzige Problem ist, dass ich immer noch kein 3.0.2-Upgrade bekommen konnte, um unter diesen Einstellungen zu arbeiten (504 Timeout-Nginx-Fehler dieses Mal), also bin ich immer noch besorgt, es aus vielen Gründen so zu machen.

Mir wurde gesagt, dass wenn ich im PHP-Modus laufe (denke ich, dass es richtig ist?), Dass ich mehr RAM mit Abfragen usw. aufspüre, und ich bin bereits zu 60% im DSO-Modus. Für mich ergibt das keinen Sinn, weil mein Blog ein wenig langsam lief, aber immer noch in Ordnung war, ohne dass es beim Shared Hosting zu Ausfällen kam. Ich bin jetzt auf einem sehr seriösen VPS w / 512MB RAM und meine Seite bekommt nur 10-12k Seitenaufrufe pro Tag.

Der Host sagte, dass sie die Konfiguration optimiert haben, um Ram zu optimieren, also glaube ich nicht, dass irgendetwas falsch eingestellt ist. Ich versuche immer noch herauszufinden, was hier vor sich geht.

Entwicklung…..

Solutions Collecting From Web of "Was sind Best Practices zum Konfigurieren eines Servers für WordPress-Websites?"

Es ist eine sehr belastete Frage, ich werde mein Bestes geben, denke daran, es ist 4 Uhr morgens, also gebe ich dir nur Höhepunkte, keine detaillierten Erklärungen.

Linux Ich gehe davon aus, dass Sie eine aktuelle Version von Ubuntu verwenden

  1. Ändern Sie den Standard-SSH-Port von 22 in etwas anderes (/ etc / ssh / sshd_config).
  2. Entweder AllowGroups oder AllowUser in der sshd_config aktivieren,
  3. Installieren Sie fail2ban (apt-get install fail2ban)
  4. Installieren Sie Apache2, PHP5 und Mysql-Server
  5. Bearbeiten Sie /etc/apache2/conf.d/security.conf und nehmen Sie die entsprechenden Änderungen für einen Produktionsserver vor.
  6. Deaktivieren Sie das langsame Abfrageprotokoll in MySQL (Sie möchten dies nicht in der Produktion, insbesondere auf einem VPS)
  7. Konfigurieren Sie Ihre Systemzeitzone (dpkg-reconfigure tzdata)
  8. Stellen Sie sicher, dass Ihre php.ini dieselbe Zeitzone enthält
  9. Fügen Sie einen neuen virtuellen Host in / etc / apache2 / sites-available / hinzu.
    1. Aktivieren Sie diesen virtuellen Host durch: a2ensite nameofnewvhostfile
    2. Mod-Rewrite aktivieren (a2enmod rewrite)
    3. Starten Sie den Neustart von apache2 /etc/init.d/apache2 neu

Sie können auch einige andere Dinge tun, wie Shorewall oder UFW für eine bessere Firewall-Verwaltung installieren, Nginx als Reverse-Proxy für Apache installieren, den Abfrage-Cache optimieren, aber das hängt wirklich von einer ganzen Reihe anderer Dinge ab, und Sie sollten zwicken mysql-Einstellungen nach einigen Tagen im Produktionsmodus.

Auf die Gefahr hin, die Frage nicht zu beantworten (was Vid ganz gut gemacht hat), schlage ich vor, dass Sie zu einem VPS-Host wechseln, der Ihnen die Systemadministration anbietet (normalerweise kostenlos).

Ich denke speziell an http://hub.org . Marc (der Typ, der ihn ausführt, und einer der ursprünglichen vier, die PostgreSQL erstellt haben) ist der beste Systemadministrator, dem ich jemals begegnet bin.

Hubs Control Panel (es ist nicht CPanel) wird neu erstellt, während ich dies schreibe; Ihr Verdienst besteht darin, nur zu zeigen, worüber sich die Endnutzer Sorgen machen sollten. Der Rest hängt im Wesentlichen davon ab, ein Support-Ticket zu eröffnen und zu verlangen, dass es erledigt wird. (Natürlich können Sie tun, was auch immer Sie als Wurzel fühlen mögen, wenn Sie sich in der shell auskennen …)

Oh, und … Ich sollte erwähnen, dass Marc der Typ ist, der sich wirklich mit deinen Skripten beschäftigt und den Fehler aufzeigt, wenn er vermutet, dass das Serverprobleme austriggers. Ich kenne keinen anderen Gastgeber, der das macht …

Einige Ideen:

Ich mag WP-Super-Cache nicht, weil es das Problem langsamer dynamischer Seitengenerierungszeiten nicht wirklich triggers.

Wenn Sie einen dedizierten Server nur für WordPress haben, würde ich keine Kompromisse machen:

nginx + php-fpm (Sie können Apache auch mit fcgid und suexec verwenden (dies triggers auch die meisten Berechtigungsprobleme)

Installieren Sie den APC-Opcode-Cache

Verwenden Sie das apc-Cache-Backend: http://wordpress.org/extend/plugins/apc/

Installieren Sie batcache für einen Seiten-Cache und verwenden Sie das apc-Backend. . Konfigurieren Sie den MySQL-Query-Cache und schauen Sie sich den key_buffer-Wert an, wenn Sie MyISAM-Tabellen oder die innodb_buffer_pool_size verwenden. Wenn Sie viele Kommentare / Aktualisierungen zu Ihrem Blog haben, sollten Sie InnoDB als Speichermodul verwenden.

Auf einem stark genutzten VPS habe ich etwa 150ms Seitengenerierungszeit für dynamische Seiten (nicht im Cache) und wenn batcache die Seite liefert, sind es nur 1ms. So können Sie mit einem “normalen” VPS bis zu 200-300req / s bedienen.

Beim Versuch, Plugins zu installieren und zu aktualisieren, erhalte ich ständig Zugriffserrors.

Dies ist ein häufiges Problem, wenn PHP als DSO oder mod_php ausgeführt wird. Beim Ausführen dieses Setups müssen die WordPress-Dateien demselben Benutzer gehören, unter dem PHP läuft. Normalerweise wird es niemand oder für Debian / Ubuntu www-Daten sein.

Um das gesamte WordPress-Verzeichnis zu reparieren, führen Sie Folgendes über die Befehlszeile aus:

$ chown nobody:nobody blog/ -R

Wenn WordPress in Ihrem öffentlichen root-Verzeichnis installiert ist, wäre es:

$ chown nobody:nobody public_html/ -R

Sie können Ihre Dateiberechtigungen bei 644 und die Verzeichnisse bei 755 festlegen