Wie man WordPress mit HHVM und Nginx auf CentOS 7 installiert
HHVM (HipHop Virtual Machine) ist eine Open-Source-Virtualmaschine zur Ausführung von Programmen, die in PHP und Hack-Sprache geschrieben sind. HHVM wurde von Facebook entwickelt und bietet die meisten Funktionen der aktuellen PHP 7 Version. Um HHVM auf Ihrem Server auszuführen, können Sie einen FastCGI verwenden, um HHVM mit einem Nginx- oder Apache-Webserver zu verbinden, oder Sie können den in HHVM integrierten Webserver namens „Proxygen“ verwenden.
In diesem Tutorial zeige ich Ihnen, wie Sie WordPress mit HHVM und Nginx als Webserver installieren. Ich werde CentOS 7 als Betriebssystem verwenden, so dass Grundkenntnisse in CentOS erforderlich sind.
Voraussetzung
- CentOS 7 – 64bit 64bit
- Root-Rechte
Schritt 1 – SELinux konfigurieren und das Epel Repository hinzufügen
In diesem Tutorial werden wir SELinux im Erzwingungsmodus verwenden, daher benötigen wir die auf dem System installierten SELinux-Verwaltungstools. Wir werden setools und setrobleshoot verwenden, um SELinux-Richtlinien zu verwalten.
Standardmäßig ist SELinux auf CentOS 7 aktiviert, das können wir mit dem folgenden Befehl überprüfen:
sestatus getenforce
Sie können sehen, dass SELinux im Erzwingungsmodus aktiviert ist.
Als nächstes installieren Sie setools und setroubleshoot mit dem Befehl yum.
yum -y install setroubleshoot setools net-tools
Nach Abschluss der Installation können Sie das EPEL-Repository installieren.
yum -y install epel-release
Schritt 2 – Nginx installieren
Nginx oder engine-x ist ein leichter Webserver mit hoher Leistung und geringem Speicherverbrauch. Auf CentOS können wir yum verwenden, um die Nginx-Pakete zu installieren. Stelle sicher, dass du als root-Benutzer angemeldet bist!
Installiere nginx mit diesem yum-Befehl aus dem CentOS-Repository:
yum -y install nginx
Starten Sie nun Nginx und lassen Sie es beim Booten mit dem Befehl systemctl starten:
systemctl start nginx systemctl enable nginx
Um sicherzustellen, dass Nginx auf unserem Server läuft, besuchen Sie die Server-IP-Adresse mit Ihrem Browser oder verwenden Sie den Befehl curl wie unten gezeigt, um die Ergebnisse zu erhalten:
curl 192.168.1.110
Ich werde es mit meinem Webbrowser hier überprüfen:
Schritt 3 – MariaDB installieren und konfigurieren
MariaDB ist eine Open-Source-Datenbank, die vom ursprünglichen MySQL-Entwickler Monty Widenius entwickelt wurde, sie wurde aus der MySQL-Datenbank abgeleitet, bleibt aber in ihren wichtigsten Funktionen kompatibel mit ihr. In diesem Schritt installieren wir MariaDB und konfigurieren das Root-Passwort für die MariaDB-Datenbank. Dann werden wir eine neue Datenbank und einen neuen Benutzer erstellen, die für unsere WordPress-Installation benötigt werden.
Installiere mariadb und mariadb-server:
yum -y install mariadb mariadb-server
Starten Sie MariaDB und fügen Sie den Dienst hinzu, der beim Booten automatisch gestartet werden soll:
systemctl start mariadb systemctl enable mariadb
MariaDB wurde gestartet, und jetzt müssen wir das Root-Passwort für die mariadb/mysql-Datenbank konfigurieren. Geben Sie den folgenden Befehl ein, um das MariaDB root-Passwort einzurichten.
mysql_secure_installation
Geben Sie bei Bedarf Ihr neues Passwort für den MariaDB root-Benutzer ein.
Set root password? [Y/n] Y New password: Re-enter new password: Remove anonymous users? [Y/n] Y ... Success! Disallow root login remotely? [Y/n] Y ... Success! Remove test database and access to it? [Y/n] Y Reload privilege tables now? [Y/n] Y ... Success!
Das MariaDB-Root-Passwort wurde konfiguriert. Melden Sie sich nun in der MariaDB/MySQL-Shell an und erstellen Sie eine neue Datenbank „wordpressdb“ und einen neuen Benutzer „wpuser“ mit dem Passwort „wpuser@“ für unsere WordPress-Installation. Wählen Sie ein sicheres Passwort für Ihre Installation!
Melden Sie sich in der MariaDB/MySQL-Shell an:
mysql -u root -p TYPE YOUR PASSWORD
Erstellen Sie eine neue Datenbank und einen neuen Benutzer:
create database wordpressdb; create user wpuser@localhost identified by 'wpuser@'; grant all privileges on wordpressdb.* to wpuser@localhost identified by 'wpuser@'; flush privileges; \q
MariaDB wurde installiert und die neue Datenbank für unsere WordPress-Installation erstellt.
Schritt 4 – HHVM installieren
Für die HHVM-Installation müssen wir viele Abhängigkeiten installieren. Wir können HHVM von der Quelle installieren, indem wir die Quelle von github herunterladen oder vorgefertigte Pakete installieren, die im Internet verfügbar sind. In diesem Tutorial werde ich HHVM aus vorgefertigten Paketen installieren.
Installieren Sie die Abhängigkeiten für die HHVM-Installation.
yum -y install cpp gcc-c++ cmake git psmisc {binutils,boost,jemalloc,numactl}-devel \ {ImageMagick,sqlite,tbb,bzip2,openldap,readline,elfutils-libelf,gmp,lz4,pcre}-devel \ lib{xslt,event,yaml,vpx,png,zip,icu,mcrypt,memcached,cap,dwarf}-devel \ {unixODBC,expat,mariadb}-devel lib{edit,curl,xml2,xslt}-devel \ glog-devel oniguruma-devel ocaml gperf enca libjpeg-turbo-devel openssl-devel \ mariadb mariadb-server libc-client make
Installieren Sie dann die vorkonfigurierten HHVM-Pakete von dieser Seite mit dem Befehl rpm.
rpm -Uvh http://mirrors.linuxeye.com/hhvm-repo/7/x86_64/hhvm-3.15.2-1.el7.centos.x86_64.rpm ln -s /usr/local/bin/hhvm /bin/hhvm
HHVM wurde installiert, überprüfen Sie es mit dem folgenden Befehl:
hhvm --version
Um den Befehl php zu verwenden, können wir den Befehl hhvm als php setzen. Wenn Sie also ‚php‘ auf der Shell eingeben, sehen Sie das gleiche Ergebnis wie beim Befehl hhvm.
sudo update-alternatives --install /usr/bin/php php /usr/bin/hhvm 60 php --version
Schritt 5 – HHVM konfigurieren
In diesem Schritt werden wir HHVM konfigurieren. Wir werden hhvm als systematischen Dienst ausführen. Anstatt es auf einem Systemport auszuführen, werden wir hhvm auf einer Unix-Socket-Datei ausführen, was schneller ist.
Gehen Sie in das Verzeichnis systemd und erstellen Sie die Datei hhvm.service.
cd /etc/systemd/system/ vim hhvm.service
Fügen Sie die untenstehende Dienstkonfiguration in diese Datei ein.
[Unit] Description=HHVM HipHop Virtual Machine (FCGI) After=network.target nginx.service mariadb.service
[Service]
ExecStart=/usr/local/bin/hhvm –config /etc/hhvm/server.ini –user nginx –mode daemon -vServer.Type=fastcgi -vServer.FileSocket=/var/run/hhvm/hhvm.sock
[Install]
WantedBy=multi-user.target
Speichern Sie die Datei und beenden Sie vim.
Gehen Sie anschließend in das Verzeichnis hhvm und bearbeiten Sie die Datei server.ini.
cd /etc/hhvm/ vim server.ini
Ersetzen Sie den Port hhvm.server.port auf Zeile 7 durch die folgende Unix-Sockelkonfiguration:
hhvm.server.file_socket = /var/run/hhvm/hhvm.sock
Speichern Sie die Datei und verlassen Sie den Editor.
In der hhvm-Servicedatei haben wir definiert, dass hhvm unter dem Benutzer’nginx‘ läuft, daher müssen wir den Besitzer des Verzeichnisses der Socket-Datei auf den Benutzer’nginx‘ ändern. Dann müssen wir den SELinux-Kontext des hhvm-Verzeichnisses ändern, um den Zugriff auf die Socket-Datei zu ermöglichen.
chown -R nginx:nginx /var/run/hhvm/ semanage fcontext -a -t httpd_var_run_t "/var/run/hhvm(/.*)?" restorecon -Rv /var/run/hhvm
Nach dem Neustart des Servers wird hhvm nicht ausgeführt, da es kein Verzeichnis für die Socket-Datei gibt, also müssen wir es automatisch zum Bootzeitpunkt erstellen.
Bearbeiten Sie die Datei rc.local mit vim.
vim /etc/rc.local
Fügen Sie die Konfiguration unten an das Ende der Zeile ein.
mkdir -p /var/run/hhvm/ chown -R nginx:nginx /var/run/hhvm/ semanage fcontext -a -t httpd_var_run_t "/var/run/hhvm(/.*)?" restorecon -Rv /var/run/hhvm
Speichern Sie die Datei und beenden Sie vim. Machen Sie die Datei ausführbar.
chmod +x /etc/rc.local
Laden Sie den Systemdienst neu, starten Sie hhvm und fügen Sie ihn hinzu, um ihn beim Booten zu starten.
systemctl daemon-reload systemctl start hhvm systemctl enable hhvm
Achten Sie darauf, dass kein Fehler vorliegt. Überprüfen Sie mit dem Befehl netstat, ob hhvm unter der Socket-Datei läuft.
netstat -pl | grep hhvm
Schritt 6 – Konfigurieren von HHVM und Nginx
In diesem Schritt werden wir HHVM so konfigurieren, dass es mit dem Nginx-Webserver läuft. Wir müssen eine neue hhvm-Konfigurationsdatei im Nginx-Verzeichnis erstellen.
Gehen Sie in das Verzeichnis /etc/nginx und erstellen Sie eine hhvm.conf-Datei.
cd /etc/nginx/ vim hhvm.conf
Fügen Sie die untenstehende Konfiguration ein:
location ~ \.(hh|php)$ { root /usr/share/nginx/html; fastcgi_keep_conn on; fastcgi_pass unix:/var/run/hhvm/hhvm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }
Speichern und beenden.
Als nächstes bearbeiten Sie die Datei nginx.conf und fügen die Zeile hhvm configuration include hinzu.
vim nginx.conf
Fügen Sie die Konfiguration zur Zeile 57 der Serveranweisung hinzu.
include /etc/nginx/hhvm.conf;
Speichern und beenden.
Ändern Sie dann den SELinux-Kontext der hhvm-Konfigurationsdatei.
semanage fcontext -a -t httpd_config_t /etc/nginx/hhvm.conf restorecon -v /etc/nginx/hhvm.conf
Testen Sie die Nginx-Konfiguration und starten Sie den Dienst neu.
nginx -t systemctl restart nginx
Stellen Sie sicher, dass kein Fehler vorliegt.
Schritt 7 – 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 „natsume.co“ verwenden. Bitte verwenden Sie Ihren eigenen Domainnamen und ersetzen Sie ihn in den Konfigurationsdateien und der WordPress-Installation, wo immer er erscheint.
Gehen Sie in das Verzeichnis nginx conf.d, in dem wir die virtuelle Hostdatei speichern werden:
cd /etc/nginx/conf.d/
Erstellen Sie die neue Konfiguration „natsume.conf“ mit vim:
vim natsume.conf
Fügen Sie die untenstehende Konfiguration des virtuellen Hosts ein:
server { listen 80; server_name natsume.co; # note that these lines are originally from the "location /" block root /var/www/hakase; index index.php index.html index.htm; location / { try_files $uri $uri/ =404; } error_page 404 /404.html; location = /50x.html { root /var/www/hakase; } location ~ \.php$ { try_files $uri =404; fastcgi_pass unix:/var/run/hhvm/hhvm.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 „/var/wwww/hakase„ definiert. Dieses Verzeichnis existiert noch nicht, also müssen wir es erstellen und den Besitzer auf den nginx-Benutzer und die Gruppe ändern.
mkdir -p /var/www/hakase chown -R nginx:nginx /var/www/hakase
Konfigurieren Sie anschließend den SELinux-Kontext für die Datei und das Verzeichnis.
semanage fcontext -a -t httpd_config_t "/etc/nginx/conf.d(/.*)?" restorecon -Rv /etc/nginx/conf.d
Testen Sie schließlich die nginx-Konfiguration, um sicherzustellen, dass kein Fehler vorliegt, und starten Sie dann nginx neu:
nginx -t systemctl restart nginx
Schritt 8 – WordPress installieren
In Schritt 5 haben wir die virtuelle Host-Konfiguration für unsere WordPress-Installation erstellt. Jetzt müssen wir nur noch WordPress herunterladen und die Datenbankkonfiguration mit der Datenbank und dem Benutzer bearbeiten, die wir in Schritt 3 erstellt haben.
Gehen Sie in das Web-Root-Verzeichnis „/var/wwww/hakase“ und laden Sie WordPress mit dem Befehl wget herunter:
cd /var/www/hakase
wget wordpress.org/latest.tar.gz
Entpacken Sie „latest.tar.gz“ und verschieben Sie alle WordPress-Dateien und -Verzeichnisse in das aktuelle Verzeichnis:
tar -xzvf latest.tar.gz mv wordpress/* .
Als nächstes kopieren Sie 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
Setzen Sie DB_NAME auf „wordpressdb„, DB_USER auf „wpuser“ und DB_PASSWORD auf „wpuser@“.
define('DB_NAME', 'wordpressdb'); define('DB_USER', 'wpuser'); define('DB_PASSWORD', 'wpuser@'); define('DB_HOST', 'localhost');
Speichern und beenden.
Ändern Sie den SELinux-Kontext für das WordPress-Verzeichnis.
semanage fcontext -a -t httpd_sys_content_t "/var/www/hakase(/.*)?" restorecon -Rv /var/www/hakase
Öffnen Sie nun einen Webbrowser und geben Sie den Domainnamen Ihrer WordPress-Domain in die Adressleiste ein, meine ist „natsume.co“.
Wählen Sie die englische Sprache und klicken Sie auf‘Weiter‚.
Geben Sie den Seitentitel und die Beschreibung mit Ihren Angaben ein und klicken Sie auf „WordPress installieren“.
Warten Sie, bis die Installation abgeschlossen ist. Sie werden die folgende Seite sehen, klicken Sie auf „Anmelden“, um sich in das WordPress Admin-Dashboard einzuloggen:
Geben Sie Ihren Admin-Benutzer und Ihr Passwort ein und klicken Sie dann erneut auf „Anmelden“.
Jetzt befinden Sie sich im WordPress Admin Dashboard.
WordPress Startseite.
WordPress mit Nginx und HHVM auf CentOS 7 wurde erfolgreich installiert.