Teil 1 | Teil 3 | Teil 4
Übersicht:
- Vorbereiten des Servers
- Repositories hinzufügen
- Pakete installieren
- PHP konfigurieren
- MariaDB konfigurieren
- NGINX konfigurieren
- Abschluss
1. Vorbereiten des Servers
Zuerst sollte [DIESEM] Guide gefolgt werden, um nicht benötigte Pakete zu deinstallieren, um ggf. Komplikationen zu vermeiden (z.B. wenn Apache schon vorinstalliert ist), um Pakete auf den neuesten Stand zu bringen und um das System etwas mehr abzusichern.
Anschließend sollte die „Swappiness“ gesetzt werden. Diese definiert, wie das System mit Arbeitsspeicher umgehen soll. Die vm.swappiness ist ein Wert zwischen 0 und 100. Ist der Wert <50 wird Linux versuchen, Daten größtenteils in den RAM auszulagern und nicht mehr benötigte Daten daraus zu entfernen. Ist der Wert >50 werden Daten eher in den Swap ausgelagert, daher auf die Festplatte / SSD. Aber auch eine High End SSD ist „langsamer“ als DDR3 RAM und da wir einen High Performance Server aufsetzen möchte, kommt Swap nicht in Frage, weshalb die vm.swappiness auf 0 gesetzt wird, wodurch der Swap i.d.R. gar nicht mehr genutzt werden wird.
nano /etc/sysctl.conf
Am Ende der Datei folgende Zeile anhängen:
vm.swappiness=0
Die Datei speichern und nano schließen. Dass die Änderung übernommen wird, muss das System neugestartet werden:
reboot
Danach sollte kein Swap mehr genutzt werden, stattdessen der RAM umso mehr:
2. Repositories hinzufügen
Da natürlich die möglichst neueste, stabile Version der einzelnen Pakete genutzt werden sollte, müssen hierfür noch ein paar Quellen hinzugefügt werden:
NGINX
wget http://nginx.org/keys/nginx_signing.key
apt-key add nginx_signing.key
rm nginx_signing.key
nano /etc/apt/sources.list
Folgende Zeilen anhängen:
deb http://nginx.org/packages/mainline/[Debian / Dbuntu]/ [codename] nginx deb-src http://nginx.org/packages/mainline/[Debian / Ubuntu]/ [codename] nginx
Für Debian 7 (Wheezy) müsste also Folgendes angehängt werden:
deb http://nginx.org/packages/mainline/debian/ wheezy nginx deb-src http://nginx.org/packages/mainline/debian/ wheezy nginx
MariaDB
Auf [DIESER] Seite die Distribution, deren Version, die gewünschte MariaDB Version (10.0) und den Mirror wählen. Anschließend werden die auszuführenden Befehle angezeigt.
PHP (nur für Debian!)
Ubuntu Nutzer überspringen diesen Schritt, da in den Ubuntu Repositories bereits recht neue PHP Pakete vorhanden sind.
wget http://www.dotdeb.org/dotdeb.gpg
apt-key add dotdeb.gpg
rm dotdeb.gpg
nano /etc/apt/sources.list
Folgende Zeile anhängen:
deb http://packages.dotdeb.org wheezy-php56 all deb-src http://packages.dotdeb.org wheezy-php56 all
Weitere Infos siehe [HIER].
3. Pakete installieren
apt-get update
apt-get install nginx php5-fpm php5-mysql mariadb-server
Beim Prompt ein sicheres Passwort für den MariaDB Root User festlegen.
4. PHP konfigurieren
nano /etc/php5/fpm/pool.d/www.conf
Hier
listen = /var/run/php5-fpm.sock
durch
listen = localhost:9000
ersetzen, speichern und schließen.
5. MariaDB konfigurieren
mysql_install_db
mysql_secure_installation
Das MariaDB Root Passwort eingeben, den ersten Prompt verneinen, alle Weiteren per Enter bejahen.
mysql -u root -p[MDB Root Passwort]
create database [Name für neue WordPress Datenbank];
create user [Name für neuen Nutzer]@localhost identified by ‚[Passwort für neuen Nutzer]‘;
grant all privileges on [Name der neuen Datenbank].* to [Name des neuen Nutzers]@localhost;
flush privileges;
exit
Wer einen WordPress Datenbank-Dump hat, kann diesen nun in die neue WP Datenbank per
mysql -u root -p[MDB Root Passwort] [Name der neuen Datenbank] < [Name des SQL Dumps]
einlesen lassen.
6. NGINX konfigurieren
nproc
ulimit -n
nano /etc/nginx/nginx.conf
Hier den Output von „nproc“ in der nginx.conf hinter „worker_processes“ packen. Den Output von „ulimit -n“ hinter „worker_connections“.
Desweiteren den Inhalt des folgenden Spoilers in die Datei einfügen:
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 10s;
types_hash_max_size 2048;
server_names_hash_bucket_size 64;
gzip on;
gzip_vary on;
gzip_proxied any;
gzip_comp_level 9;
gzip_buffers 16 8k;
gzip_http_version 1.1;
gzip_types text/plain text/css application/json
applicationx-javascript text/xml application/xml
application/xml+rss text/javascript;
Hierbei darauf achten, das bereits vorhandene „keepalive_timeout“ zu entfernen, da es ansonsten 2 mal definiert wird.
7. Abschluss
service nginx restart
service mariadb-server restart
service php5-fpm restart
Pingback:[HowTo] High Performance WordPress Server aufsetzen | Teil 1 | BitForce.IO