close
Kaspersky Endpoint Security

Welcome to

Kaspersky Endpoint Security


By Kaspersky Endpoint Security


Eine Produktion Qualität Wordpress Konfiguration Tutorial



Die Blogging-Software verwendet diese Website zu betreiben, hat seinen 10. Geburtstag gerade hatte. In den letzten zehn Jahren hat es unglaublich populär geworden, und liegt derzeit bei etwa 18% aller Websites. Durch meine Arbeit bei (mt) Media Temple, ich habe zu verschiedenen Zeiten im Laufe der Jahre zu Admin bekommen und damit eine ziemlich gute Vorstellung davon haben, wie alles, was für einen guten Wirkungsgrad zu optimieren. In diesem Wordpress-Konfiguration Tutorial, werde ich Sie durch die Produktionsqualität Setup zu gehen, dass ich für diesen Blog haben, die Verwendung macht, und.

UPDATE: Ich habe vor kurzem wechselte an das Plugin verwenden, das Plugin für das Caching über. Meine Gründe sind vielfältig. Während ich denke nicht, dass es ziemlich das gleiche Niveau der Bare-Metal-Performance für Seiten-Caching bietet die WP Super-Cache funktioniert, ich denke immer noch, gerade jetzt die bessere Wahl ist es. Es hat erhebliche zusätzliche Optionen, ist trivial, zu konfigurieren und macht große Einsatz des APC-Cache, falls verfügbar kennzeichnet. Wenn es genügend Interesse ist werde ich diesen Beitrag aktualisieren oder eine andere darüber reden machen.

Ich werde einige Annahmen in diesem Artikel machen werden. Speziell:

  • Sie verwenden Ubuntu Lucid (10.04) oder eine neuere unterstützte Version.
  • Sie sind mit einem "nackten" installieren von Ubuntu (keine Bedienfelder oder irgendetwas dieser Art).
  • Sie haben die Möglichkeit, alle Befehle ausführen ich als root mit sudo auflisten werde.
  • Sie gehen zu benutzen Sie einfach den Server, den Sie für ein Wordpress-Blog mit bist, oder Sie haben ein gut genug Verständnis für Benutzerberechtigungen keine Sicherheitsrisiken zu schaffen.
  • Sie werden ein Blog bei example.com serviert werden, und Sie werden verschiedene Dienste mit Benutzer- und Gruppenberechtigungen eines Benutzers namens Beispiel ausgeführt werden, die auf Ihrem System muss vorhanden sein.

Schritt 1: Installieren Sie benötigte Software

Es gibt eine Vielzahl von Sachen, die Sie auf Ihrem System installiert werden soll. Für den Anfang, lassen Sie uns Nginx und MariaDB installieren. Nginx ist sehr einfach, da ich mit all den Leckereien haben Sie gehen bereit zu müssen. Für den Fall, müssen Sie nicht bereits, installieren Python-Software-Eigenschaften mit:

1  sudo apt-get -y python-software-properties installieren

Nun, Sie können meine Nginx PPA hinzufügen und zu installieren:

1 2 3  sudo add-apt-repository ppa -y: chris-lea / nginx-devel sudo apt-get update sudo apt-get -y install nginx-full

MariaDB ist auch sehr einfach zu montieren. Sie werden ihre Signaturschlüssel zuerst mit dem Befehl importieren müssen:

1  sudo apt-key adv --recv-Tasten --keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db

Wenn Sie die Serversoftware installieren, Sie gehen zu haben, ein Passwort für den Root-MariaDB Benutzer eingeben (die mit dem System Root-Benutzer verwirrt werden soll, nicht wenn sie auf ähnliche Weise hier verwendet werden). Blick auf die Zukunft, lassen Sie uns ein starkes Passwort mit dem apg Passwort-Generator vorgewählt werden.

1 2  sudo apt-get -y installieren apg apg -x 10 -m 10

Dies wird ein halbes Dutzend einigermaßen starke 10 Zeichen Passwörter generieren zur Auswahl. Wählen Sie ein und halten es praktisch. Nun, um MariaDB installieren, verwenden Sie Ihren Lieblingseditor (ich nehme an, es ist, natürlich), und erstellen Sie die Datei:

/etc/apt/sources.list.d/mariadb.list

Legen Sie die folgenden * in die Datei:

1 2  deb http://mirror.jmu.edu/pub/mariadb/repo/5.5/ubuntu~~V luziden Haupt deb-src http://mirror.jmu.edu/pub/mariadb/repo/5.5/ubuntu luziden Haupt
* Wenn Sie eine Verteilung anders als Ubuntu Lucid (10.04) verwenden, klar in den beiden oben genannten Linien ersetzen Sie installiert haben, mit dem Distro Namen.

Installieren Sie jetzt MariaDB mit den Befehlen:

1 2  sudo apt-get update sudo apt-get -y MariaDB-Server installieren

Das Installationsprogramm fordert Sie auf, ein Passwort für den Benutzer root, so geben Sie das Passwort, das Sie aus dem apg früher ausgegeben habe. Für einen Profi Tipp, machen Sie eine Datei unter ~ / .my.cnf mit folgendem Inhalt:

1 2 3  [Client] user = root Kennwort = <YOURPASSFROMAPG>

und die Berechtigungen ändern, so dass nur Sie es lesen kann:

chmod 600 ~ / .my.cnf

Nun werden Sie nicht den Benutzernamen und das Passwort eingeben müssen, wenn Sie mysql geben Sie den MariaDB-Client zu verwenden.

Das letzte, was zu installieren, ist die benötigte PHP-Software. Wenn Sie Ubuntu Lucid ausführen, verwenden Sie den folgenden Befehl ein PHP5 PPA von Ondřej Surý beibehalten hinzuzufügen:

1  sudo add-apt-repository ppa -y: ondrej / php5

Wenn Sie eine Veröffentlichung neuer als Lucid verwenden, werden Sie diesen Schritt nicht tun müssen. Als nächstes installieren Sie die alle PHP Dinge, die wir mit brauchen werden:

1 2 3 4  sudo apt-get update sudo apt-get -y php-apc php-geshi php-Birne php5 php5-cli \ installieren php5-common php5-curl php5-fpm php5-gd php5-imagick php5-mysqlnd \ php5-pspell

Schritt 2: Konfigurieren der Software

Wir werden die Dinge so konfigurieren, müssen wir gerade für eine optimale Leistung installiert. Lassen Sie uns mit der Datenbank beginnen. eine Datenbank korrekt zu konfigurieren, ist eine Karrierestufe Menge an Wissen in diesen Tagen, so gibt es nichts, was ich wirklich Sie in einem Beitrag so sagen kann, dass jeder Fall abdecken wird. Aber es gibt ein paar Dinge, die wir auf die Standard-Setup zu tun, die im Allgemeinen immer in diesem speziellen Fall Wordpress helfen.

Zunächst öffnen Sie die Datei

/etc/mysql/my.cnf

in Ihrem Texteditor. Suchen Sie nach einer Zeile, die lautet:

1  tmpdir = / tmp

und fügen Sie die folgenden drei Zeilen darunter:

2 3 4  überspringen-external-locking überspringen-name-resolve Charakter-set-server = UTF8

Diese stellen sicher, dass die Standard-Zeichensatz UTF-8 ist, dass der Server nicht funktioniert versuchen und tun DNS-basierten Host-Name-Lookups (was es sollte nicht hier tun müssen), und dass die externe Sperrung nicht aktiviert ist. Beachten Sie, dass mit Sperren deaktiviert, werden Sie sicher, dass der Server zum Herunterfahren vornehmen müssen, wenn Sie jemals myisamchk ausführen müssen, etwas zu reparieren.

Als nächstes sollten Sie wahrscheinlich den Standardwert für die key_buffer zu erhöhen. Was Sie verwenden, hängt davon ab, wie viel freier Speicherplatz auf dem System haben, aber es von der Standard-16M-Wert zu erhöhen, ist eine gute Idee, wenn Sie können. Diese Seite nutzt derzeit die Einstellung:

key_buffer = 128M

Schließlich können Sie den Standardwert für die Datenbank-Abfrage-Cache zu ändern. Suchen Sie die Zeile, die lautet:

query_cache_size = 16M

Der Standardwert von 16 Millionen ist wahrscheinlich gut für die meisten Blogs. Wenn Sie eine Menge Verkehr zu erhalten können Sie möchten diesen Wert zu erhöhen, aber es nie mehr als 512m erheben, da sie mehr Schaden zu tun beginnt, als an diesem Punkt. Selbst für einen Blog mit viel Verkehr, 128M oder 256M ist in der Regel viel. Starten Sie den Server zu holen, diese Änderungen mit

1  sudo /etc/init.d/mysql Neustart

Natürlich sollten Sie eine Datenbank für einen Blog zu erstellen. Ich nehme an, es ist example_com_wordpress genannt. Sie wollen ein anderes Passwort zu erzeugen, wie wir zuvor das ist speziell für diese Datenbank. verwenden das gleiche Passwort nicht, wie Sie für den Benutzer root haben. Sobald Sie diese haben, geben Sie die Eingabeaufforderung MariaDB Befehl, indem Sie einfach

mysql

in der Befehlszeile. Dann verwenden Sie die folgenden Befehle aus Ihrer Datenbank zu erstellen und für den Einsatz bereit (beachten Sie, wie wir an der MariaDB Prompt sind):

MariaDB [(keines)]> DATENBANK example_com_wordpress CREATE; Abfrage OK, 1 row affected (0.00 sec) MariaDB [(keines)]> GRANT ALL PRIVILEGES ON example_com_wordpress * TO `example` @` localhost` identified by 'NEWPASSFROMAPG.'; Abfrage OK, 0 Zeilen betroffen (0,04 sec) MariaDB [(none)]> FLUSH PRIVILEGES; Abfrage OK, 0 Zeilen betroffen (0,04 sec)

Dann einfach exit eingeben aus MariaDB zu bekommen, und Ihre Datenbank ist bereit zu gehen.

Als nächstes wollen wir php5-fpm konfigurieren. Öffnen Sie die Datei auf

/etc/php5/fpm/pool.d/www.conf

und suchen Sie die Benutzer- und Gruppenrichtlinien. Ändern Sie diese so, dass PHP läuft als Beispiel Benutzer wie folgt aus:

user = Beispiel Gruppe = Beispiel

Dann suchen Sie nach der Richtlinie zu hören und zu lesen ändern:

listen = /var/run/php5-fpm.sock

so dass Nginx können kommunizieren über ein und damit umgehen den TCP-Stack an PHP, die nicht benötigt wird. Schließlich gibt es einige Richtlinien für den Prozess-Manager, der einige Änderungen nutzen könnten. Die ideale Konfiguration ist abhängig von Ihren Traffic und Hardware, aber diese Seite wird zur Zeit als:

pm = dynamische pm.max_children = 40 pm.start_servers = 4 pm.min_spare_servers = 4 pm.max_spare_servers = 5 pm.max_requests = 500

und das sollte ein guter Ausgangspunkt für die meisten Blogs sein.

Schließlich für PHP, sollten Sie eine schnelle Bearbeitung auf der Datei machen:

/etc/php5/fpm/php.ini

wo Sie die sicherstellen möchten, wird wie folgt festgelegt:

cgi.fix_pathinfo = 1

Sie sollten nun in der Lage sein, Ihre PHP-Prozesse mit dem Befehl zu feuern:

sudo /etc/init.d/php5-fpm Start

Die letzte und die meisten Beteiligten Sache, die Sie konfigurieren müssen, ist Nginx. Um zu beginnen, wir wollen es auch als Beispiel Benutzers ausführen. Öffnen Sie die Datei:

/etc/nginx/nginx.conf

und stellen Sie die Benutzerrichtlinie

Anwenderbeispiel;

Im Allgemeinen wollen Sie so viele Arbeitsprozesse haben, wie Sie physische CPU-Kerne zu tun. Wenn Sie unsicher sind, wie viele Kerne haben Sie den Befehl

grep -c 'Prozessor' / proc / cpuinfo

wird Ihnen sagen. Also, wenn Sie einen Vier-Core-Maschine haben, setzen Sie

worker_processes 4;

Als nächstes werden wir eine virtuelle Hostkonfiguration für unsere example.com Website tun. Wenn Sie vorhaben, eine Produktion Wordpress-Seite laufen zu lassen, ist es in der Regel empfohlen, eine Art von Caching-Plugin zu verwenden, wenn Sie einen wirklichen Verkehr erwarten. Unsere Konfiguration wird zugeschnitten sein Vorteil des Plugins zu nehmen, die sehr gut funktioniert und wird von einer der wichtigsten Wordpress-Ingenieure geschrieben.

Erstellen Sie eine neue Datei example.com hier genannt:

/etc/nginx/sites-available/example.com

Um damit zu beginnen, lassen Sie uns einen Nginx definieren Upstream für PHP auf die Unix-Socket hören wir vorhin angegeben haben. Legen Sie die folgenden in den Anfang unserer example.com Config-Datei:

1 2 3 4  # Upstream zu abstrakten Backend-Verbindung (en) für PHP Upstream php {     Server Unix: /var/run/php5-fpm.sock; }

Danach einige recht unkompliziert Nginx Richtlinien kommt es zu sagen, welche Ports zu lauschen, was der Name des Servers ist, wo man sich einzuloggen, und so weiter:

5 6 7 8 9 10 11 12 13 14 15  Server {     hören 80;     server_name example.com;     access_log /var/log/nginx/example.com-access.log;     error_log /var/log/nginx/example.com-error.log;     add_header X-Frame-Options DENY;     Wurzel /var/www/example.com;     Index index.php index.html;

Das einzige, was von möglichen Note ist hier die add_header Direktive in Zeile 12, die Ihre Website in einem <frame> eingebettet halten sollte verhindert werden, oder <iframe> überall. Wenn aus irgendeinem Grund wollen Sie, dass möglich sein, entfernen Sie diese Zeile. Danach haben wir einige Richtlinien schreiben die erzeugten Sitemap Arbeit richtig zu machen:

17 18      umschreiben ^ / sitemap_index \ .xml $ /index.php?sitemap=1 letzte;     umschreiben ^ / ([^ /] ?) - Sitemap ([0-9] ) \ xml $ /index.php?sitemap=$1&sitemap_n=$2 letzte?.

und dann einige spezifische Lage Richtlinien für das Favicon, robots.txt-Datei, und die Leute zu halten, aus einigen gemeinsamen Verzeichnisse und Dateien, die nicht öffentlich sein soll:

20 21 22 23 24 25 26 27 28 29 30 31 32 33      location = /favicon.ico {         log_not_found aus;         access_log aus;     }     location = /robots.txt {         alles erlauben;         log_not_found aus;         access_log aus;     }     Lage ~ /\.svn|/\.ht|/\.git {         leugnen alle;     }

Nun zum guten Teil, wo wir setzen Nginx auf WP Super-Cache zu verwenden. Es ist einfacher zu erklären, wie das funktioniert, wenn Sie bereits die Konfiguration sehen können, so ist es hier, und wir werden über sie gehen weiter:

$ Supercache_file /wp-content/cache/supercache/$http_host$1index-http.html;         }         if (-f $ document_root $ supercache_file) {             umschreiben ^ $ supercache_file break;         }         if (! $ -e REQUEST_FILENAME) {             umschreiben ^ /index.php zuletzt;         }     }

Zeilen 35 bis 46 sind ziemlich offensichtlich. Sie sagen Nginx, wo mit der try_files-Richtlinie für eine Index-Datei zu suchen und gzip-Komprimierung eingerichtet. Die gzip_static Richtlinie ist etwas interessant. Es sagt Nginx, dass, wenn es eine Datei sieht, die es zu gzipped soll, ist es für eine Datei im selben Verzeichnis mit dem gleichen Namen suchen soll, die in "gz" endet, und wenn es dort ist, dass direkt zu dienen. Dadurch wird die Server aus, die hält die Datei jedes Mal zu komprimieren, es serviert wird.

Das wirklich interessante Teil beginnt jedoch auf der Linie 48. Dies ist, wo wir Nginx bekommen schön mit WP Super-Cache zu spielen. Erstens, wenn die Anfrage auf dem Dateisystem zu einer tatsächlichen Datei entspricht, sagen wir Nginx es einfach bedienen und bewegen. Als nächstes setzen wir einige Variablen, die wir benötigen. Wenn die Anfrage-Typ ist ein POST, oder wenn es irgendeine Art von Query-String, deaktivieren wir das Caching von $ supercache_uri Einstellung leer zu sein. Wenn wir es bis hierher geschafft haben, und diese Variable nicht leer ist, dann suchen wir nach einer determinis benannte Datei bei

/ Wp-content / cache / supercache / <der Domainname> / <die Anfrage uri> /index-http.html

Zum Beispiel würde die Datei suchen, wenn Sie eine Standard-Seite "About" befindet sich auf Nginx hatte

/wp-content/cache/supercache/example.com/about/index-http.html Dies entspricht genau wie WP Super-Cache schreibt seine "supercached" Dateien in das Dateisystem. Die Schönheit dieser Einrichtung ist, dass, wenn eine Cache-Datei vorhanden ist, Nginx es dienen soll, ohne jemals überhaupt zu PHP zu reden haben. Das ist großartig, weil Nginx erstaunlich gut ist, statische Inhalte wie diese im Cache gespeicherten Dateien auf serviert, und es hält PHP aus, die Arbeit zu tun, wenn es tatsächlich benötigt. Wenn es in dieser Konfiguration Rezept für ein berechtigtes "Secret Sauce" ist, das ist es. Die letzten Strophen müssen wir Nginx sagen, wie man mit PHP FastCGI, zu sprechen und setzt dann nur einige Header für unsere statischen Inhaltstypen verfallen: 77 78 79 80 81 82 83 84 85 86 87 88 89      Lage ~ \ .php $ {         #HINWEIS: Sie sollten "cgi.fix_pathinfo = 0;" in der php.ini         umfassen fastcgi_params;         fastcgi_index index.php;         fastcgi_intercept_errors auf;         fastcgi_pass php;     }     Lage ~ *. \ (?: Js | css | png | jpe g |? Gif | ico | html | txt) $ {         gültig bis 7d;         log_not_found aus;     } } Wir sind nun bereit, auf Nginx einzuschalten. Wir brauchen die Standardkonfiguration zu entfernen, die Nginx Schiffe mit, unsere Konfiguration in die sites-enabled Verzeichnis Symlink und dann feuern. cd / etc / nginx / sites-enabled sudo rm -fv Standard sudo ln -s ../sites-available/example.com. sudo /etc/init.d/nginx Wenn beginnen, dass alle Arbeiten, wir auf den dritten und letzten Abschnitt sind. Schritt 3: Installieren und Einrichten von Wordpress Dies ist eine Anleitung zur Serverkonfiguration, so dass ich gehe davon aus, dass Sie die Grundlagen selbst behandeln können. Sie wollen alles in das Verzeichnis /var/www/example.com zu setzen, die Sie durch unser Beispiel Benutzer gehören erstellen und müssen zu werden: cd / var / www sudo mkdir example.com sudo chown -R Beispiel: Beispiel example.com sicher, wenn Sie die Wordpress-Dateien dort setzen, werden Sie sie als Beispiel Benutzer installieren. Bearbeiten Sie die Datei wp-config.php unsere example_com_wordpress Datenbank verwendenmit den Anmeldeinformationen setzen wir früher auf. Auch sicher sein, zufällige Werte für die eindeutige Schlüssel und Salze einzurichten. Automattic hat Sie dies tun, um zu helfen. Sobald Sie Wordpress und läuft, gibt es nur noch ein paar Schritte, bevor Sie bereit sind, Ihre Blog-Imperium zu starten. Zunächst einrichten ziemlich Permalinks für Ihr Blog. In der Admin Wordpress, gehen Sie einfach auf Einstellungen-> Permalinks, die "custom" Option wählen, und stellen Sie Folgendes in die Link-Struktur: /% year% /% monthnum% /% Tag% /% post% / Diese geben Sie die Standard-Datum-centric Link-Struktur, die viele populäre Blog-Beiträge. Der letzte Schritt ist WP Super-Cache einzurichten. Zum Plugins-> New und die Suche nach "WP Super-Cache". Seit PHP als der Benutzer ausgeführt wird, der die Wordpress-Dateien und Verzeichnisse besitzt, kann es das Plugin für Sie installieren (es kann auch leicht können Wordpress-Upgrade für Sie, als zusätzlichen Bonus). Sie werden dann zu konfigurieren. Navigieren Sie zu der Seite mit den Einstellungen für das Plugin, und klicken Sie auf die Registerkarte Erweitert. Markieren Sie das Kästchen auf "Cache HitsDiese Website ist für den schnellen Zugriff ", und klicken Sie auf das Optionsfeld für" Use mod_rewrite Cache-Dateien "zu dienen. Sie sollten die Warnungen am oberen Rand der Seite, die über mod_rewrite beschweren ignorieren nicht installiert. Das Plugin vorausgesetzt, dass Sie Apache verwenden, die Website zu dienen, aber du bist nicht, so dass diese Warnung ist überflüssig. Schließlich nach unten scrollen und klicken Sie auf den "Status aktualisieren", um Ihre Änderungen zu speichern. Danach, melden Sie sich von der Admin-out, zu Ihrer Homepage zu navigieren, und es ein paar Mal neu zu laden. Wenn Sie die Seite Quelle zu sehen, nach unten in der Nähe des unteren, sollten Sie einige Kommentare sehen, dass die Seite ist eine Cache-Seite anzuzeigen. Wenn ja, herzlichen Glückwunsch, du bist fertig! Im Ergebnis ist dies ein Setup ich über mehrere Jahre verfeinert haben, beim Start von halten Techcrunch und läuft war Teil meiner Arbeitsbeschreibung. Es ist gut für viele Wordpress-Seiten (einschließlich dieser) für mich gearbeitet, so dass ich hoffe, Sie finden es nützlich. Wenn es Fragen oder Probleme gibt, bitte lassen Sie mich nur in den Kommentaren wissen. Teilen: Wie folgt aus: WieLaden...

Endpoint-Security 2013     Endpoint-Security 2016

Categories and tags