WordPress mit HHVM und Nginx auf OpenSUSE Leap 42.1

HHVM (HipHop Virtual Machine) ist eine von Facebook entwickelte Open-Source-Virtualmaschine, ein JIT-Compiler (Just-in-time) zur Ausführung von Programmen, die in PHP 5 (und einigen Funktionen von PHP 7) und Hack-Sprache geschrieben wurden. Wenn Sie HHVM auf Ihrem Server ausführen möchten, können Sie den FastCGI-basierten Webserver auf einem Nginx- oder Apache-Webserver verwenden, oder Sie können den eingebauten Webserver namens „Proxygen“ verwenden.

In diesem Tutorial zeige ich Ihnen, wie Sie WordPress (ein bekanntes CMS auf PHP-Basis) mit HHVM und Nginx als unserem Webserver installieren. Ich werde OpenSUSE Leap 42.1 als Betriebssystem verwenden, so dass Grundkenntnisse in OpenSUSE erforderlich sind.

Voraussetzung

  • OpenSUSE Sprung 42.1 – 64bit.
  • Root-Privilegien.
  • Grundlegende OpenSUSE-Kenntnisse wie Zypper, SuSE-Firewall.

Schritt 1 – Nginx installieren

Nginx oder engine-x ist ein leichter Webserver mit hoher Leistung und geringem Speicherverbrauch. Auf unserem OpenSUSE-Server können wir das Paket mit dem Befehl zypper installieren.

Benutzen Sie „sudo su“, um der Root-Benutzer zu werden, und installieren Sie Nginx mit dem Zypper-Befehl auf openSUSE Leap 42.1:

sudo su
zypper in nginx

Gehen Sie dann in das Webverzeichnis „/srv/wwww/htdocs“ und erstellen Sie eine neue index.html-Datei.

cd /srv/www/htdocs/
echo "<h1>Nginx OpenSUSE Leap 42.1</h1>" > index.html

Fügen Sie Nginx hinzu, um beim Booten zu starten, und starten Sie Nginx mit dem Befehl systemctl:

systemctl enable nginx
systemctl start nginx

Um sicherzustellen, dass Nginx auf unserem Server läuft, können wir die IP-Adresse des Servers mit einem Browser besuchen oder den Befehl curl unten verwenden, um die Ergebnisse anzuzeigen:

curl 192.168.43.29

Schritt 2 – MariaDB installieren und konfigurieren

MariaDB ist eine Open-Source-Datenbank, die vom ursprünglichen MySQL-Entwickler Monty Widenius entwickelt wurde. MariaDB ist mit MySQL kompatibel. In diesem Schritt installieren wir MariaDB und konfigurieren das Root-Passwort für die MariaDB-Datenbank. Dann erstellen wir eine neue Datenbank und einen neuen Benutzer, die wir für unsere WordPress-Installation benötigen.

MariaDB mit Zypper installieren:

zypper in mariadb mariadb-client

Fügen Sie MariaDB zur Boot-Sequenz hinzu und starten Sie sie dann:

systemctl enable mysql
systemctl start mysql

MariaDB wurde gestartet, jetzt müssen wir das Root-Passwort für die MariaDB/mysql-Datenbank konfigurieren. Führen Sie den folgenden Befehl aus, um ein MariaDB-Root-Passwort einzurichten.

/usr/bin/mysqladmin -u root password 'toor123'

Hinweis:

Das MariaDB-Passwort lautet „toor123“, bitte verwenden Sie ein anderes und sichereres Passwort auf Ihrem Server.

Das MariaDB-Root-Passwort wurde konfiguriert. Melden Sie sich nun an der MariaDB/MySQL-Shell an und erstellen Sie eine neue Datenbank „wpdb“ und einen neuen Benutzer „wpuser“ mit Passwort „wpuser@“ für unsere WordPress-Installation. Wählen Sie auch hier auf Ihrem System ein sicheres Passwort.

Melden Sie sich in der MariaDB/MySQL-Shell an:

mysql -u root -p
TYPE PASSWORD toor123

Erstellen Sie eine neue Datenbank und einen neuen Benutzer:

create database wpdb;
create user wpuser@localhost identified by 'wpuser@';
grant all privileges on wpdb.* to wpuser@localhost identified by 'wpuser@';
flush privileges;

Erstellen Sie die Datenbank.

MariaDB ist installiert, und die neue Datenbank für unsere WordPress-Installation wurde erstellt.

Schritt 3 – HHVM installieren

Für die HHVM-Installation müssen wir ein neues hhvm-Repository hinzufügen. Wir können den Befehl zypper verwenden, um das neue hhvm-Repository zum Server hinzuzufügen. Dann müssen wir die openSUSE-Repositorys aktualisieren:

zypper addrepo http://download.opensuse.org/repositories/home:munix9/openSUSE_Leap_42.1/home:munix9.repo
zypper refresh

Gib ‚a‘ ein, um dem Schlüssel immer zu vertrauen.

Zypper-Auffrischung

Installieren Sie nun die hhvm-Pakete:

zypper in hhvm hhvm-nginx hhvm-fastcgi

hhvm-nginx stellt ein Beispiel für die Nginx-Konfiguration zur Verfügung.

hhvm-fastcgi stellt die FastCGI-Metadateien zur Verfügung.

Schritt 4 – Konfigurieren von HHVM und Nginx

In diesem Schritt werden wir HHVM so konfigurieren, dass es mit dem Nginx-Webserver läuft. Wir werden HHVM so konfigurieren, dass es den Unix-Socket verwendet und HHVM als Nginx-Benutzer ausführt. Gehen Sie in das HHVM-Konfigurationsverzeichnis und bearbeiten Sie die Konfigurationsdatei‘server.ini‘ mit dem vim-Editor:

cd /etc/hhvm/
vim server.ini

Entkommentieren Sie Zeile 3, um Unix-Sockets für HHVM zu aktivieren.

hhvm.server.file_socket = /var/run/hhvm/server.sock

Speichern und beenden.

Als nächstes müssen wir das HHVM-Service-Skript so bearbeiten, dass HHVM den BenutzerNginxginxginx ausführen kann. Es ist wichtig, HHVM so zu konfigurieren, dass es unter dem gleichen Benutzer wie der Webserver läuft. Gehen Sie in das Verzeichnis systemd und bearbeiten Sie die Datei‘hhvm.service‘ mit vim:

cd /usr/lib/systemd/system
vim hhvm.service

Ändern Sie die Option –user hhvm auf Zeile 11 auf den nginx-Benutzer.

ExecStart=/usr/bin/hhvm --config /etc/hhvm/php.ini --config /etc/hhvm/server.ini --user nginx --mode daemon -vServer.Type=fastcgi -vServer.FileSocket=/var/run/hhvm/server.sock -    vPidFile=/var/run/hhvm/server.pid

Speichern und beenden.

Nginx System-Skript

Ändere nun den Besitzer des Verzeichnisses „/var/run/hhvm“ auf den nginx-Benutzer.

chown -R nginx:nginx /var/run/hhvm/

Hinweis:

Nach dem Neustart des Servers ist manchmal der Standardbesitzer des Verzeichnisses wieder auf den Standardbenutzer zurückgesetzt. Um dieses Problem zu lösen, können wir den Linux-Befehl definieren, der ausgeführt werden soll, nachdem alle Skripte des aktuellen Runlevels ausgeführt wurden.

Bearbeiten Sie die Datei after.local im Verzeichnis „/etc/rc.d/“ und fügen Sie am Ende der Datei einen neuen Linux-Befehl hinzu:

vim /etc/rc.d/after.local

Fügen Sie den folgenden Befehl ein:

chown -R nginx:nginx /var/run/hhvm/

Speichern und beenden.

Als nächstes müssen wir HHVM für die Arbeit mit Nginx konfigurieren. Wir haben das neue Paket „hhvm-nginx“ installiert, es enthält ein Beispiel für die HHVM-Konfiguration für den Nginx-Webserver.

Gehen Sie in das Nginx-Konfigurationsverzeichnis und kopieren Sie die HHVM-Konfiguration:

cd /etc/nginx/
cp hhvm.conf.example hhvm.conf

Bearbeiten Sie hhvm.conf mit vim:

vim hhvm.conf

Fügen Sie in der zweiten Zeile eine neue Konfiguration hinzu, um das Web-Root-Verzeichnis zu definieren:

root   /srv/www/htdocs;

Speichern und beenden.

Nginx-Konfiguration.

Dann müssen wir die Nginx-Konfiguration bearbeiten, um die HHVM-Konfiguration aufzunehmen.

vim nginx.conf

Auf Zeile 59 – fügen Sie die neue Konfigurationszeile unten hinzu:

include /etc/nginx/hhvm.conf;

Speichern und beenden.

Aktivieren und starten Sie HHVM mit dem Befehl systemctl unten:

systemctl enable hhvm
systemctl start hhvm

Starten Sie dann Nginx neu:

systemctl restart nginx

Nginx und HHVM wurden installiert und konfiguriert. Um zu testen, ob die Konfiguration funktioniert, erstellen wir eine neue php-Datei mit phpinfo-Code und speichern sie im Web-Root-Verzeichnis „/srv/wwww/htdocs“, dann greifen wir über den Webbrowser darauf zu.

cd /srv/www/htdocs/
echo "<?php phpinfo(); ?>" > info.php

Öffnen Sie Ihren Browser und geben Sie die IP-Adresse des Servers ein:

192.168.43.29/info.php

HHVM phpInfo.

Nginx und HHVM arbeiten fehlerfrei.

Schritt 5 – Erstellen eines virtuellen Hosts mit HHVM und Nginx

In diesem Schritt erstellen wir eine neue virtuelle Host-Konfiguration mit Nginx und HHVM. Ich werde für dieses Beispiel den Domainnamen „hakasenano.co“ verwenden und ihn auch als Domain für unsere WordPress-Installation verwenden. Bitte ersetzen Sie den Domainnamen durch Ihren eigenen Domainnamen in allen Konfigurationsdateien und Befehlen.

Gehen Sie in das Nginx-Verzeichnis und erstellen Sie ein neues Verzeichnis, um die virtuelle Hostdatei zu speichern:

cd /etc/nginx/
mkdir vhosts.d/
cd vhosts.d/

Erstellen Sie eine neue Konfigurationsdatei „nano.conf“ mit vim:

vim nano.conf

Und fügen Sie die neue virtuelle Host-Konfiguration unten ein:

server {
	# This line for redirect non-www to www
	server_name  hakasenano.co;
	rewrite ^(.*) http://www.hakasenano.co$1 permanent;
}

server {

        listen   80;
        server_name www.hakasenano.co;
        root /srv/www/nano; 
        index index.php index.html index.htm;

        location / {
                try_files $uri $uri/ =404;
        }

        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
              root /srv/www/htdocs;
        }

        # HHVM running throught Unix-Socket
	location ~ \.(hh|php)$ {
    		root   /srv/www/nano;
    		fastcgi_keep_conn on;
    		#fastcgi_pass   127.0.0.1:9000;
    		fastcgi_pass   unix:/var/run/hhvm/server.sock;
    		fastcgi_index  index.php;
    		fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
   		include        fastcgi_params;
	}

}

Speichern und beenden.

In unserer Konfiguration des virtuellen Hosts haben wir das Web-Root-Verzeichnis für den Domänennamen als das Verzeichnis „/srv/wwww/nano definiert. Dieses Verzeichnis existiert vorerst nicht, also müssen wir dieses Verzeichnis jetzt erstellen.

mkdir -p /srv/www/nano/

Testen Sie abschließend die Nginx-Konfiguration und starten Sie sie neu:

nginx -t
systemctl restart nginx

Stellen Sie sicher, dass der Befehl nginx -t keine Fehlermeldung anzeigt.

Schritt 6 – WordPress installieren

In Schritt 5 haben wir die Konfiguration des virtuellen Hosts für unsere WordPress-Installation erstellt. Also müssen wir nur WordPress jetzt herunterladen und dann die Datenbankkonfiguration bearbeiten, die wir in Schritt 2 erstellt haben.

Gehen Sie in das Web-Root-Verzeichnis „/srv/wwww/nano“ und laden Sie das WordPress-Zip-Archiv mit dem Befehl wget herunter:

cd /srv/www/nano
wget wordpress.org/latest.zip

Entpacken Sie „latest.zip“ und verschieben Sie alle WordPress-Dateien und -Verzeichnisse in das Nano-Verzeichnis:

unzip latest.zip
mv wordpress/* .

Kopieren Sie anschließend die Datei „wp-config-sample.php“ nach „wp-config.php“ und bearbeiten Sie sie mit vim:

cp wp-config-sample.php wp-config.php
vim wp-config.php

Ändern Sie DB_NAME in unsere Datenbank „wpdb“, DB_USER in „wpuser“ und DB_PASSWORD in „wpuser@“.

define('DB_NAME', 'wpdb');
define('DB_USER', 'wpuser');
define('DB_PASSWORD', 'wpuser@');
define('DB_HOST', 'localhost');

Speichern und beenden.

Setzt die Datenbankdetails.

Öffnen Sie nun den Webbrowser und geben Sie den Domainnamen in die Adressleiste ein.

Sie werden auf die Website www.hakasenano.co weitergeleitet und sehen die Seite der Installation.

Und du kannst den Seitentitel und die Beschreibung mit deinen Informationen füllen und auf „WordPress installieren“ klicken.

Geben Sie die Blog-Details ein.

Warten Sie, bis die Installation abgeschlossen ist und Sie die untenstehende Login-Seite sehen. Klicken Sie auf „Anmelden“, um sich in das WordPress Admin Dashboard einzuloggen:

WP-Installation erfolgreich.

Geben Sie Ihren Admin-Benutzer und Ihr Passwort ein und klicken Sie dann erneut auf „Anmelden“.

WordPress Login.

Jetzt befinden Sie sich im WordPress Admin Dashboard.

WordPress Dashboard

WordPress mit Nginx und HHVM unter OpenSUSE Leap 42.1 ist nun installiert.

Referenz

Das könnte Dich auch interessieren …