Wie man LEMH (Linux, Nginx, MariaDB, HHVM) Stapel in Ubuntu Server einrichtet
Wenn Sie zuvor einen Linux-Server verwaltet haben, werden Sie mit dem häufig verwendeten LAMP-Stapel (Linux, Apache, MySQL, PHP) vertraut sein. Apache, MySQL und PHP können jedoch manchmal ressourcenintensiv sein und sind möglicherweise nicht optimal für Ihren Server. In diesem Tutorial werden wir jeden Teil des Stacks außer Linux mit einer besseren Alternative - Nginx, MariaDB und HHVM - ersetzen.
Annahme
1. Dieses Tutorial wird auf einem Ubuntu 14.04 Server durchgeführt, obwohl die Anweisungen auch für jede Debian-basierte Distribution funktionieren.
2. Dieses Tutorial konzentriert sich nur auf das Installieren und Einrichten des LEMH-Stacks. Es berührt nicht den Sicherheitsaspekt des Servers.
3. Sie müssen bereits SSH-Zugriff auf Ihren Server (oder physischen Zugriff auf Ihren Computer) haben, um dieses Tutorial ausführen zu können.
Installieren von Nginx
Nginx ist ein leichter, aber leistungsstarker Ersatz für Apache. Es ist ein Open-Source-Reverse-Proxy-Server sowie ein Webserver mit einem starken Fokus auf hoher Parallelität, hoher Performance und geringer Speicherauslastung. Beachten Sie, dass Nginx nicht mit Apache kompatibel ist, sodass die gesamte Apache-Konfiguration, insbesondere die von Ihnen erstellten .htaccess-Dateien, in Nginx nicht funktionieren. Es ist auch möglich, sowohl Apache als auch Nginx auf dem gleichen Server laufen zu lassen, aber das beinhaltet eine komplizierte Konfiguration, auf die wir hier nicht eingehen werden.
Nginx befindet sich im Ubuntu-Repository, ist aber oft veraltet. Um die neueste stabile Version zu erhalten, fügen Sie Ihrem System folgende PPA hinzu:
sudo add-apt-repository ppa: nginx / stable sudo Aktualisierung apt-get
Die neueste Version von Nginx ab diesem Post ist 1.6.2. Wenn Sie alternativ die neueste Entwicklungsversion ausprobieren möchten, können Sie stattdessen dieses PPA verwenden:
sudo add-apt-repository ppa: nginx / entwicklung sudo apt-get update
Die letzte Entwicklungsversion ab diesem Post ist 1.7.8.
Führen Sie den Befehl aus, um Nginx zu installieren:
sudo apt-get installieren nginx
Führen Sie nach der Installation den folgenden Befehl aus, um sicherzustellen, dass er gestartet wurde:
Sudo-Dienst nginx Start
Als nächstes gehen Sie in Ihrem Webbrowser zur URL "http://123.4.56.789" (Ersetzen Sie 123.4.56.789 durch die IP-Adresse Ihres Servers), und Sie sollten Folgendes sehen:
Installation von MariaDB
Seit vielen Jahren ist MySQL der Standard-Datenbankverwaltungsdienst für viele Anwendungen. Seit es von Oracle übernommen wurde, begannen viele Leute, ihre "Open-Source" -Neigung in Frage zu stellen, und die Community (zu der auch der Gründer von MySQL gehörte) entschied sich dafür, eine Abzweigung von MySQL zu erstellen und sie MariaDB zu nennen. MariaDB ist ein Ersatz für MySQL, was bedeutet, dass es vollständig mit MySQL-Datenbanken kompatibel ist und als vollständiger Ersatz für MySQL verwendet werden kann.
Interessante Tatsache : MySQL wurde von Michael Widenius gegründet und ist nach seiner ersten Tochter My benannt. MariaDBs Hauptentwickler ist auch Michael Widenius und ist nach seiner zweiten Tochter Maria benannt.
Wenn Sie auf Ihrem Server MySQL bereits installiert haben, ist es am besten, MySQL vor der Installation von MariaDB vollständig zu entfernen:
sudo apt-get remove --purge mysql-server mysql-client mysql-common sudo apt-get Autoremove sudo rm -rf / var / lib / mysql sudo apt-get autoclean
Als nächstes fügen Sie den PPA für MariaDB hinzu:
sudo apt-get installieren software-properties-common sudo apt-schlüssel adv --recv-keys --keyserver hkp: //keyserver.ubuntu.com: 80 0xcbcb082a1bb943db sudo add-apt-repository 'deb http: //sfo1.mirrors .digitocean.com / mariab / repo / 10.0 / ubuntu trusty main 'sudo apt-get Aktualisierung
Beachten Sie, dass Sie hier auch Ihre eigene PPA generieren und den Standort finden können, der Ihrem Server am nächsten liegt.
Installieren Sie MariaDB mit diesem Befehl:
sudo apt-get installieren mariadb-server
Während der Installation werden Sie aufgefordert, ein Kennwort für den Benutzer root festzulegen.
Nach der Installation können Sie MariaDB mit folgendem Befehl starten:
sudo-service mysql start
Installieren von PHP und HHVM
HHVM ist kein Ersatz für PHP. Es ist eine Open-Source-Maschine, die für die Ausführung von Programmen entwickelt wurde, die in Hack und PHP geschrieben wurden. HHVM verwendet einen Just-in-Time (JIT) -Kompilierungsansatz, um eine überlegene Leistung zu erzielen und gleichzeitig die von PHP gebotene Entwicklungsflexibilität beizubehalten.
Bevor wir HHVM installieren, ist es wichtig, zuerst PHP auf dem Server zu installieren. Anstatt das vollständige PHP5-Paket zu installieren, das eine Reihe von Apache-Dateien enthält, installieren wir nur php5-fpm
, das dann die notwendigen PHP-Abhängigkeiten installiert. Außerdem benötigen wir php5-fpm
als php5-fpm
für HHVM.
sudo apt-get installieren php5-fpm php5-mysql php5-curl
Danach installieren Sie HHVM mit den folgenden Befehlen:
wget -O - http://dl.hhvm.com/conf/hhvm.gpg.key | sudo apt-key hinzufügen - echo deb http://dl.hhvm.com/ubuntu trusty main | sudo tee /etc/apt/sources.list.d/hhvm.list sudo apt-get Aktualisierung sudo apt-get install hhvm
Nachdem HHVM installiert wurde, fahren Sie mit der Konfiguration von Nginx fort:
sudo /usr/share/hhvm/install_fastcgi.sh
Zuletzt, starte HHVM neu
sudo service hhvm neustart
Um zu testen, ob HHVM funktioniert, erstellen Sie eine "phpinfo.php" -Datei im Nginx-Stammverzeichnis.
sudo nano /var/www/html/phpinfo.php
und fügen Sie die folgende Zeile ein:
Drücken Sie "Strg + o" zum Speichern und "Strg + x" zum Beenden.
Lade in deinem Browser die URL http://123.4.56.789/phpinfo.php (ersetze 123.4.56.789 durch die IP-Adresse deines Servers). Sie sollten nur das Wort "HipHop" sehen, um zu zeigen, dass HHVM funktioniert.
Konfigurieren von Websites zum Ausführen in Nginx und HHVM (mit php5-fpm Fallback)
Jetzt, da Sie alles eingerichtet haben, ist es an der Zeit, einen virtuellen Host zu erstellen, auf dem Ihre Website läuft.
Erstellen Sie eine neue Konfigurationsdatei, die Ihre Website-Details enthält:
sudo nano / etc / nginx / sites-available / meine-site
und fügen Sie das folgende Snippet ein:
Server {höre 80 zu; höre [::]: 80; root / var / www / html; # Fügen Sie index.php zur Liste hinzu, wenn Sie den PHP-Index index.html index.htm verwenden. Servername mywebsite.com; Include hhvm-with-fallback.conf; location / {# Der erste Versuch, die Anfrage als Datei auszuführen, dann # als Verzeichnis und dann die Anzeige eines 404. try_files $ uri $ uri / = 404; } # übergeben Sie die PHP-Skripte an den FastCGI-Server, der auf 127.0.0.1:9000 # location @fallback wartet {# include snippets / fastcgi-php.conf; # # # Mit php5-fpm: fastcgi_pass unix: /var/run/php5-fpm.sock; fastcgi_index index.php; schließen fastcgi_params ein; } # den Zugriff auf .htaccess-Dateien verweigern, wenn das Apache-Dokument root # mit dem # Platz von nginx übereinstimmt ~ /\.ht {deny all; }}
Sie können den server_name
so ändern, dass er auf Ihre eigene Domäne und den Speicherort des Stammordners server_name
, in dem die Dateien bereitgestellt werden sollen.
HHVM hat diesen Fehler, gelegentlich abzustürzen, ohne sich selbst neu zu starten; Dies führt dazu, dass die Website mit einem Fehler von 500 fehlschlägt. In diesem Fall werden wir ein Fallback-System erstellen, bei dem PHP5-FPM die Aufgabe übernehmen wird, wenn HHVM ausfällt. Beachten Sie den location @fallback
Block im obigen Config-Snippet? Das ist der Rückruf, wenn HHVM fehlschlägt. Um die Gleichung zu vervollständigen, müssen wir noch die Datei "hhvm-with-fallback.conf" erstellen, die eine modifizierte Version der Datei "hhvm.conf" ist.
sudo nano /etc/nginx/hhvm-with-fallback.conf
Fügen Sie das folgende Snippet ein:
Ort ~ \. (hh | php) $ {proxy_intercept_errors on; error_page 500 501 502 503 = @fallback; fastcgi_keep_conn an; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $ Dokumentstammverzeichnis fastcgi_script_name; schließen fastcgi_params ein; }
Speichern und beenden Sie die Datei.
Zuletzt testen Sie die Nginx-Einstellungen mit
sudo nginx -t
und wenn alles in Ordnung ist, starte Nginx neu.
sudo-Dienst nginx Neustart
Das ist es. Sie haben das LEMH-Stack-Setup auf Ihrem Linux-Server abgeschlossen.