Linux

Hoe installeer ik WordPress met HHVM en Nginx op CentOS 7

Hoe installeer ik WordPress met HHVM en Nginx op CentOS 7

HHVM (HipHop Virtual Machine) is een open source virtuele machine voor het uitvoeren van programma's geschreven in PHP en Hack-taal. HHVM is ontwikkeld door Facebook en biedt de meeste functies van de huidige PHP 7-versie. Als u HHVM op uw server wilt uitvoeren, kunt u een FastCGI gebruiken om HHVM te verbinden met een Nginx- of Apache-webserver, of u kunt de webserver gebruiken die is ingebouwd in HHVM genaamd "Proxygen".

In deze zelfstudie laat ik je zien hoe je WordPress met HHVM en Nginx als webserver installeert. Ik zal CentOS 7 gebruiken als besturingssysteem, dus basiskennis van CentOS is vereist.

Eerste vereiste

  • CentOS 7 - 64bit
  • Rootprivileges

Stap 1 - Configureer SELinux en voeg de Epel Repository toe

In deze zelfstudie gebruiken we SELinux in de handhavingsmodus, dus we hebben de SELinux-beheertools nodig die op het systeem zijn geïnstalleerd. We zullen setools en setrobleshoot gebruiken om het SELinux-beleid te beheren.

Standaard is SELinux ingeschakeld op CentOS 7. We kunnen dat controleren met onderstaande opdracht:

sestatus
getenforce

Controleer SELinux

Je ziet dat SELinux is ingeschakeld met de handhavingsmodus.

Installeer vervolgens setools en stel problemen met de yum-opdracht in.

yum - installeer setroubleshoot setools net-tools

Wanneer de installatie is voltooid, kunt u de EPEL-repository installeren.

yum - installeer epel-release

Stap 2 - Installeer Nginx

Nginx of engine-x is een lichtgewicht webserver met hoge prestaties en een laag geheugenverbruik. Op CentOS kunnen we yum gebruiken om de Nginx-pakketten te installeren. Zorg ervoor dat je bent ingelogd als root-gebruiker!

Installeer nginx met deze yum-opdracht uit de CentOS-repository:

yum -y installeer nginx

Start nu Nginx en schakel het in tijdens het opstarten met de opdracht systemctl:

systemctl start nginx
systemctl enable nginx

Om er zeker van te zijn dat Nginx op onze server draait, bezoekt u het IP-adres van de server met uw browser of gebruikt u de curl-opdracht zoals hieronder getoond om de resultaten te krijgen:

krul 192.168.1.110

Ik bekijk het hier met mijn webbrowser:

Nginx is actief

Stap 3 - Installeer en configureer MariaDB

MariaDB is een open source-database die is ontwikkeld door de originele MySQL-ontwikkelaar Monty Widenius, hij is gevorkt uit de MySQL-database maar blijft daarmee compatibel in zijn belangrijkste functies. In deze stap zullen we MariaDB installeren en het root-wachtwoord voor de MariaDB-database configureren. Vervolgens maken we een nieuwe database en nieuwe gebruiker die nodig zijn voor onze WordPress-installatie.

Installeer mariadb en mariadb-server:

yum -y installeer mariadb mariadb-server

Start MariaDB en voeg de service toe die automatisch moet worden gestart tijdens het opstarten:

systemctl start mariadb
systemctl enable mariadb

MariaDB is gestart en nu moeten we het root-wachtwoord configureren voor de mariadb / mysql-database. Typ de onderstaande opdracht om het MariaDB-rootwachtwoord in te stellen.

mysql_secure_installation

Voer uw nieuwe wachtwoord in voor de MariaDB-rootgebruiker wanneer daarom wordt gevraagd.

Stel root-wachtwoord in? [Y / n] Y
Nieuw paswoord:
Voer nieuw wachtwoord opnieuw in:
Anonieme gebruikers verwijderen? [Y / n] Y
... Succes!
Geen root login op afstand toestaan? [Y / n] Y
... Succes!
Testdatabase verwijderen en er toegang toe hebben? [Y / n] Y
Reload-tabellen opnieuw laden nu? [Y / n] Y
... Succes!

Het MariaDB-rootwachtwoord is geconfigureerd. Log nu in op de MariaDB / MySQL-shell en maak een nieuwe database aan “Wordpressdb” en een nieuwe gebruiker “Wpuser” met wachtwoord "[e-mail beveiligd]" voor onze WordPress-installatie. Kies een veilig wachtwoord voor uw installatie!

Inloggen op de shell MariaDB / MySQL:

mysql -u root -p
TYPE UW PASWOORD

Maak een nieuwe database en nieuwe gebruiker:

maak database wordpressdb aan;
gebruiker aanmaken [e-mail beschermd] geïdentificeerd door '[e-mail beveiligd]';
verleen alle rechten op wordpressdb. * aan [email protected] geïdentificeerd door '[e-mail beveiligd]';
flush privileges;
q

Database maken voor WordPress-installatie op MariaDB

MariaDB is geïnstalleerd en de nieuwe database voor onze WordPress-installatie is gemaakt.

Stap 4 - Installeer HHVM

Voor de HHVM-installatie moeten we veel afhankelijkheden installeren. We kunnen HHVM van de bron installeren door de bron te downloaden van github, of vooraf gebouwde pakketten te installeren die beschikbaar zijn op internet. In deze zelfstudie installeer ik HHVM van vooraf samengestelde pakketten.

Installeer de afhankelijkheden voor de HHVM-installatie

yum -y installeer 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 geval YAML, vpx, gif, pit, ICU, mcrypt, memcached, cap, dwerg} -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 maken

Installeer vervolgens de voorgebouwde HHVM-pakketten van deze site met de opdracht 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 is geïnstalleerd, controleer het met de onderstaande opdracht:

hhvm –versie

Om het php-commando te gebruiken, kunnen we het hhvm-commando instellen als php. Dus wanneer u 'php' in de shell typt, ziet u hetzelfde resultaat als bij de opdracht hhvm.

sudo update-alternative –install / usr / bin / php php / usr / bin / hhvm 60
php -versie

HHVM installeren op CentOS

Stap 5 - HHVM configureren

In deze stap configureren we HHVM. We zullen hhvm uitvoeren als een systematische service. In plaats van het op een systeempoort uit te voeren, zullen we hhvm uitvoeren op een unix socket-bestand dat sneller is.

Ga naar de map systemd en maak het bestand hhvm.service aan.

cd / etc / systemd / system /
vim hhvm.service

Plak de onderstaande serviceconfiguratie in dat bestand.

[Eenheid] Beschrijving = 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 [Installeren] WantedBy = multi-user.target

Sla het bestand op en sluit vim af.

Ga vervolgens naar de hhvm-directory en bewerk het bestand server.ini.

cd / etc / hhvm /
vim server.ini

Vervang de hhvm.server.port op regel 7 met onderstaande unix socket-configuratie:

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

Sla het bestand op en verlaat de editor.

In het hhvm-servicebestand hebben we gedefinieerd dat hhvm wordt uitgevoerd onder de 'nginx'-gebruiker, dus moeten we de eigenaar van de socketbestandsmap wijzigen in de' nginx'-gebruiker. Vervolgens moeten we de SELinux-context van de hhvm-map wijzigen om toegang tot het socketbestand mogelijk te maken.

chown -R nginx: nginx / var / run / hhvm /
semanage fcontext -a -t httpd_var_run_t “/var/run/hhvm(/.*)?”
restorecon -Rv / var / run / hhvm

Nadat de server opnieuw is opgestart, functioneert hhvm niet omdat er geen map is voor het socketbestand, dus we moeten het automatisch maken bij het opstarten.

Bewerk het bestand rc.local met vim.

vim /etc/rc.local

Plak de onderstaande configuratie tot het einde van de regel.

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

Sla het bestand op en sluit vim af. Maak het bestand uitvoerbaar.

chmod + x /etc/rc.local

Herlaad de systemd-service, start hhvm en voeg deze toe om te worden gestart tijdens het booten.

systemctl daemon-reload
systemctl start hhvm
systemctl enable hhvm

Zorg ervoor dat er geen fout is. Controleer of hhvm onder het socketbestand werkt met de opdracht netstat.

netstat -pl | grep hhvm

Controleer het HHVM-socketbestand

Stap 6 - Configureer HHVM en Nginx

In deze stap configureren we HHVM om met de Nginx-webserver te werken. We moeten een nieuw hhvm-configuratiebestand maken in de Nginx-directory.

Ga naar de map / etc / nginx en maak een hhvm.conf-bestand.

cd / etc / nginx /
vim hhvm.conf

Plak de onderstaande configuratie:

locatie ~. (hh | php) $ {root / usr / share / nginx / html; fastcgi_keep_conn aan; fastcgi_pass unix: /var/run/hhvm/hhvm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $ document_root $ fastcgi_script_name; omvatten fastcgi_params; }

Opslaan en afsluiten.

Bewerk vervolgens het bestand nginx.conf en voeg de regel hhvm configuration include toe.

vim nginx.conf

Voeg de configuratie toe aan de serverrichtlijn 57.

include /etc/nginx/hhvm.conf;

Opslaan en afsluiten.

Wijzig vervolgens de SELinux-context van het hhvm-configuratiebestand.

semanage fcontext -a -t httpd_config_t /etc/nginx/hhvm.conf
restorecon -v /etc/nginx/hhvm.conf

Test de Nginx-configuratie en start de service opnieuw.

nginx -t
systemctl herstart nginx

Controleer of er geen fout is.

Stap 7 - Maak een virtuele host met HHVM en Nginx

In deze stap zullen we een nieuwe virtuele hostconfiguratie maken met Nginx en hhvm. Ik zal de domeinnaam gebruiken “Natsume.co” voor dit voorbeeld. Gebruik alstublieft uw eigen domeinnaam en vervang deze in de configuratiebestanden en WordPress-installatie, waar deze ook verschijnt.

Ga naar de nginx conf.d-map waar we het virtuele hostbestand zullen opslaan:

cd /etc/nginx/conf.d/

Maak de nieuwe configuratie "natsume.conf" met vim:

vim natsume.conf

Plak hieronder de virtuele hostconfiguratie:

server {luister 80; servernaam natsume.co; # merk op dat deze lijnen oorspronkelijk afkomstig zijn van de "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; } locatie ~ .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; omvatten fastcgi_params; }}

Opslaan en afsluiten.

In onze virtuele hostconfiguratie hebben we de webhoofdmap voor de domeinnaam gedefinieerd als de map “/ var / www / hakase”. Die map bestaat nog niet, dus moeten we deze maken en het eigendom wijzigen in de nginx-gebruiker en -groep.

mkdir -p / var / www / hakase
chown -R nginx: nginx / var / www / hakase

Configureer vervolgens de SELinux-context voor het bestand en de map.

semanage fcontext -a -t httpd_config_t “/etc/nginx/conf.d(/.*)?”
restorecon -Rv /etc/nginx/conf.d

Test ten slotte de nginx-configuratie om er zeker van te zijn dat er geen fout is en start nginx opnieuw op:

nginx -t
systemctl herstart nginx

Stap 8 - Installeer WordPress

In stap 5 hebben we de virtuele hostconfiguratie voor onze WordPress-installatie gemaakt. Nu moeten we gewoon WordPress downloaden en de databaseconfiguratie bewerken met behulp van de database en gebruiker die we in stap 3 hebben gemaakt.

Ga naar de webhoofdmap “/ var / www / hakase” en download WordPress met de opdracht wget:

cd / var / www / hakase
wget wordpress.org/latest.tar.gz

Pak "nieuwste.tar.gz" uit en verplaats alle WordPress-bestanden en mappen naar de huidige map:

tar -xzvf latest.tar.gz
mv wordpress / *.

Kopieer vervolgens het bestand "wp-config-sample.php" naar "wp-config.php" en bewerk het met vim:

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

Stel DB_NAME in op “Wordpressdb”, DB_USER voor “Wpuser” en DB_PASSWORD naar "[e-mail beveiligd]".

define ('DB_NAME', 'wordpressdb'); define ('DB_USER', 'wpuser'); define ('DB_PASSWORD', '[e-mail beveiligd]'); define ('DB_HOST', 'localhost');

Opslaan en afsluiten.

WordPress-configuratie

Verander de SELinux-context voor de WordPress-map.

semanage fcontext -a -t httpd_sys_content_t “/var/www/hakase(/.*)?”
restorecon -Rv / var / www / hakase

Open nu een webbrowser en typ de domeinnaam van uw WordPress-domein in de adresbalk, de mijne is "natsume.co".

Kies de Engelse taal en klik op 'voortzetten'.

Wordpress installatie - Kies taal

Vul de titel en beschrijving van de site in met uw gegevens en klik op "Wordpress installeren".

Installatie Wordpress - Beheerder en sitetitel configureren

Wacht tot de installatie is voltooid. U ziet de onderstaande pagina, klik op "Inloggen" om in te loggen op het WordPress admin dashboard:

Wordpress installeren - installatieucces met HHVM Nginx op CentOS 7

Voer uw admin-gebruiker en wachtwoord in en klik vervolgens opnieuw op "Inloggen".

Login om WordPaper-dashboard dashboard te maken

Nu bevindt u zich op het WordPress-beheerdersdashboard.

Wordpress Admin Dashboard

Wordpress-startpagina.

Standaardpagina van WordPress

Wordpress met Nginx en HHVM op CentOS 7 is succesvol geïnstalleerd.

Referentienummer

bron