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
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:
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 “Wpuser @” 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 [email protected] geïdentificeerd door 'wpuser @';
verleen alle rechten op wordpressdb. * aan [email protected] geïdentificeerd door 'wpuser @';
flush privileges;
q
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
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
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 “Wpuser @”.
define ('DB_NAME', 'wordpressdb'); define ('DB_USER', 'wpuser'); define ('DB_PASSWORD', 'wpuser @'); define ('DB_HOST', 'localhost');
Opslaan en afsluiten.
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'.
Vul de titel en beschrijving van de site in met uw gegevens en klik op "Wordpress installeren".
Wacht tot de installatie is voltooid. U ziet de onderstaande pagina, klik op "Inloggen" om in te loggen op het WordPress admin dashboard:
Voer uw admin-gebruiker en wachtwoord in en klik vervolgens opnieuw op "Inloggen".
Nu bevindt u zich op het WordPress-beheerdersdashboard.
Wordpress-startpagina.
Wordpress met Nginx en HHVM op CentOS 7 is succesvol geïnstalleerd.
Referentie
- https://www.howtoforge.com/tutorial/how-to-install-wordpress-with-hhvm-and-nginx-on-opensuse-leap-42-1/
- https://www.nginx.com/blog/nginx-se-linux-changes-upgrading-rhel-6-6/