HHVM (HipHop Virtual Machine) je open source virtuální stroj vyvinutý společností Facebook, je to JIT (just-in-time) kompilátor pro spouštění programů napsaných v PHP 5 (a některých funkcích PHP 7) a jazyce Hack. Pokud chcete na svém serveru spustit HHVM, můžete použít webový server založený na FastCGI nad webovým serverem Nginx nebo Apache, nebo můžete použít vestavěný webový server s názvem „Proxygen“.
V tomto tutoriálu vám ukážu, jak nainstalovat WordPress (dobře známý CMS založený na PHP) s HHVM a Nginx jako naším webovým serverem. Jako operační systém budu používat OpenSUSE Leap 42.1, takže jsou vyžadovány základní znalosti OpenSUSE.
Předpoklad
- OpenSUSE Leap 42.1 – 64bit.
- Oprávnění uživatele root.
- Základní znalosti OpenSUSE jako Zypper, SuSE-firewall.
Krok 1 – Instalace Nginx
Nginx nebo engine-x je lehký webový server s vysokým výkonem a nízkou spotřebou paměti. Na našem serveru OpenSUSE můžeme k instalaci balíčku použít příkaz zypper.
Pomocí "sudo su" se staňte uživatelem root a nainstalujte Nginx pomocí příkazu zypper na openSUSE Leap 42.1:
sudo su
zypper in nginx
Poté přejděte do webového adresáře „/srv/www/htdocs“ a vytvořte nový soubor index.html.
cd /srv/www/htdocs/
echo "<h1>Nginx OpenSUSE Leap 42.1</h1>" > index.html
Přidejte Nginx ke spuštění při spouštění a spusťte Nginx příkazem systemctl:
systemctl enable nginx
systemctl start nginx
Abychom zajistili, že Nginx běží na našem serveru, můžeme navštívit IP adresu serveru pomocí prohlížeče nebo použít příkaz curl níže a zobrazit výsledky:
curl 192.168.43.29
Krok 2 – Instalace a konfigurace MariaDB
MariaDB je open source databáze vyvinutá původním vývojářem MySQL Monty Widenius, MariaDB je kompatibilní s MySQL. V tomto kroku nainstalujeme MariaDB a nakonfigurujeme heslo root pro databázi MariaDB. Poté vytvoříme novou databázi a uživatele, které potřebujeme pro naši instalaci WordPressu.
Nainstalujte MariaDB pomocí Zypper:
zypper in mariadb mariadb-client
Přidejte MariaDB do spouštěcí sekvence a poté ji spusťte:
systemctl enable mysql
systemctl start mysql
MariaDB byla spuštěna, nyní musíme nakonfigurovat heslo root pro databázi MariaDB/mysql. Spusťte níže uvedený příkaz a nastavte heslo root MariaDB.
/usr/bin/mysqladmin -u root password 'toor123'
Poznámka:
Heslo MariaDB je "toor123" , použijte na svém serveru jiné a bezpečnější heslo.
Kořenové heslo MariaDB bylo nakonfigurováno. Nyní se přihlaste do prostředí MariaDB/MySQL a vytvořte novou databázi "wpdb" a nový uživatel "wpuser" s heslem "[e-mail chráněn]" pro naši instalaci WordPressu. Zde si také ve svém systému vyberte bezpečné heslo.
Přihlaste se do prostředí MariaDB/MySQL:
mysql -u root -p
TYPE PASSWORD toor123
Vytvořte novou databázi a nového uživatele:
create database wpdb;
create user [email protected] identified by '[email protected]';
grant all privileges on wpdb.* to [email protected] identified by '[email protected]';
flush privileges;
MariaDB je nainstalována a byla vytvořena nová databáze pro naši instalaci WordPress.
Krok 3 – Instalace HHVM
Pro instalaci HHVM musíme přidat nové úložiště hhvm. K přidání nového úložiště hhvm na server můžeme použít příkaz zypper. Poté musíme obnovit repozitáře openSUSE:
zypper addrepo http://download.opensuse.org/repositories/home:munix9/openSUSE_Leap_42.1/home:munix9.repo
zypper refresh
Chcete-li klíči vždy důvěřovat, zadejte „a“.
Nyní nainstalujte balíčky hhvm:
zypper in hhvm hhvm-nginx hhvm-fastcgi
hhvm-nginx poskytuje ukázku konfigurace Nginx.
hhvm-fastcgi poskytuje meta soubory FastCGI.
Krok 4 – Konfigurace HHVM a Nginx
V tomto kroku nakonfigurujeme HHVM tak, aby běžel s webovým serverem Nginx. Nakonfigurujeme HHVM tak, aby používal Unix-socket a spouštěl HHVM jako uživatel Nginx. Přejděte do konfiguračního adresáře HHVM a upravte konfigurační soubor 'server.ini' pomocí editoru vim:
cd /etc/hhvm/
vim server.ini
Odkomentujte řádek 3, abyste povolili Unix-Sockets pro HHVM.
hhvm.server.file_socket = /var/run/hhvm/server.sock
Uložte a ukončete.
Dále musíme upravit skript služby HHVM tak, aby HHVM mohl spouštět uživatele Nginxginx. Je důležité nakonfigurovat HHVM tak, aby běžel jako stejný uživatel než webový server. Přejděte do adresáře systemd a upravte soubor 'hhvm.service' pomocí vim:
cd /usr/lib/systemd/system
vim hhvm.service
Změňte volbu --user hhvm na řádku 11 na uživatele nginx.
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
Uložte a ukončete.
Nyní změňte vlastníka adresáře "/var/run/hhvm" na uživatele nginx.
chown -R nginx:nginx /var/run/hhvm/
Poznámka:
Po restartování serveru se někdy výchozí vlastník adresáře vrátí k výchozímu uživateli. Abychom tento problém vyřešili, můžeme definovat linuxový příkaz, který se má provést po provedení všech skriptů aktuální úrovně běhu.
Upravte soubor after.local v adresáři „/etc/rc.d/“ a na konec souboru přidejte nový příkaz linux:
vim /etc/rc.d/after.local
Vložte příkaz níže:
chown -R nginx:nginx /var/run/hhvm/
Uložte a ukončete.
Dále musíme nakonfigurovat HHVM pro práci s Nginx. Nainstalovali jsme nový balíček "hhvm-nginx", který obsahuje příklad konfigurace HHVM pro webový server Nginx.
Přejděte do konfiguračního adresáře Nginx a zkopírujte konfiguraci HHVM:
cd /etc/nginx/
cp hhvm.conf.example hhvm.conf
Upravte hhvm.conf pomocí vim:
vim hhvm.conf
Na druhém řádku přidejte novou konfiguraci pro definování webového kořenového adresáře:
root /srv/www/htdocs;
Uložte a ukončete.
Poté musíme upravit konfiguraci Nginx tak, aby zahrnovala konfiguraci HHVM.
vim nginx.conf
Na řádku 59 – přidejte nový řádek konfigurace níže:
include /etc/nginx/hhvm.conf;
Uložte a ukončete.
Povolte a spusťte HHVM pomocí příkazu systemctl níže:
systemctl enable hhvm
systemctl start hhvm
Poté restartujte Nginx:
systemctl restart nginx
Nginx a HHVM byly nainstalovány a nakonfigurovány. Abychom otestovali, zda konfigurace funguje, vytvoříme nový php soubor, který obsahuje phpinfo kód a uložíme jej do kořenového adresáře webu "/srv/www/htdocs", poté k němu přistoupíme přes webový prohlížeč.
cd /srv/www/htdocs/
echo "<?php phpinfo(); ?>" > info.php
Otevřete prohlížeč a zadejte IP adresu serveru:
192.168.43.29/info.php
Nginx a HHVM fungují bez chyb.
Krok 5 – Vytvoření virtuálního hostitele pomocí HHVM a Nginx
V tomto kroku vytvoříme novou konfiguraci virtuálního hostitele s Nginx a HHVM. Budu používat název domény "hakasenano.co" pro tento příklad a použijte jej také jako doménu pro naši instalaci WordPressu. Nahraďte prosím název domény svým vlastním názvem domény ve všech konfiguračních souborech a příkazech.
Přejděte do adresáře Nginx a vytvořte nový adresář pro uložení souboru virtuálního hostitele:
cd /etc/nginx/
mkdir vhosts.d/
cd vhosts.d/
Vytvořte nový konfigurační soubor „nano.conf“ pomocí vim:
vim nano.conf
A vložte novou konfiguraci virtuálního hostitele níže:
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; } }
Uložte a ukončete.
V naší konfiguraci virtuálního hostitele jsme definovali webový kořenový adresář pro název domény jako adresář „/srv/www/nano“. Tento adresář prozatím neexistuje, takže musíme tento adresář nyní vytvořit.
mkdir -p /srv/www/nano/
Nakonec otestujte konfiguraci Nginx a restartujte ji:
nginx -t
systemctl restart nginx
Ujistěte se, že příkaz nginx -t nezobrazuje chybovou zprávu.
Krok 6 – Nainstalujte WordPress
V kroku 5 jsme vytvořili konfiguraci virtuálního hostitele pro naši instalaci WordPress. Stačí si tedy nyní stáhnout WordPress a poté upravit konfiguraci databáze, kterou jsme vytvořili v kroku 2.
Přejděte do kořenového adresáře webu „/srv/www/nano“ a stáhněte si archiv ZIP WordPress pomocí příkazu wget:
cd /srv/www/nano
wget wordpress.org/latest.zip
Extrahujte „latest.zip“ a přesuňte všechny soubory a adresáře WordPress do adresáře nano:
unzip latest.zip
mv wordpress/* .
Dále zkopírujte soubor „wp-config-sample.php“ do „wp-config.php“ a upravte pomocí vim:
cp wp-config-sample.php wp-config.php
vim wp-config.php
Změňte DB_NAME na naši databázi "wpdb" , DB_USER na "wpuser" a DB_PASSWORD na „[e-mail chráněn]“ .
define('DB_NAME', 'wpdb'); define('DB_USER', 'wpuser'); define('DB_PASSWORD', '[email protected]'); define('DB_HOST', 'localhost');
Uložte a ukončete.
Nyní otevřete webový prohlížeč a do adresního řádku zadejte název domény.
Budete přesměrováni na www.hakasenano.co a uvidíte stránku instalace.
A můžete vyplnit název a popis webu svými informacemi a kliknout na "Instalovat Wordpress".
Počkejte na dokončení instalace a zobrazí se přihlašovací stránka níže. Kliknutím na „Přihlásit se“ se přihlaste do administračního panelu WordPress:
Zadejte své administrátorské uživatelské jméno a heslo a poté znovu klikněte na „Přihlásit se“.
Nyní jste v administračním panelu WordPress.
Nyní je nainstalován Wordpress s Nginx a HHVM na OpenSUSE Leap 42.1.