HHVM (HipHop Virtual Machine) è una macchina virtuale open source sviluppata da Facebook, è un compilatore JIT (just-in-time) per eseguire programmi scritti in PHP 5 (e alcune funzionalità di PHP 7) e linguaggio Hack. Se desideri eseguire HHVM sul tuo server, puoi utilizzare il server Web basato su FastCGI su Nginx o il server Web Apache, oppure puoi utilizzare il server Web integrato chiamato "Proxygen".
In questo tutorial, ti mostrerò come installare WordPress (un noto CMS basato su PHP) con HHVM e Nginx come nostro server web. Userò OpenSUSE Leap 42.1 come sistema operativo, quindi è richiesta una conoscenza di base di OpenSUSE.
Prerequisito
- OpenSUSE Leap 42.1 - 64 bit.
- Privilegi di root.
- Conoscenze di base di OpenSUSE come Zypper, SuSE-firewall.
Passaggio 1:installa Nginx
Nginx o engine-x è un server Web leggero con prestazioni elevate e basso consumo di memoria. Sul nostro server OpenSUSE, possiamo utilizzare il comando zypper per installare il pacchetto.
Usa "sudo su" per diventare l'utente root e installa Nginx con il comando zypper su openSUSE Leap 42.1:
sudo su
zypper in nginx
Quindi vai alla directory web "/srv/www/htdocs" e crea un nuovo file index.html.
cd /srv/www/htdocs/
echo "<h1>Nginx OpenSUSE Leap 42.1</h1>" > index.html
Aggiungi Nginx per iniziare all'avvio e avvia Nginx con il comando systemctl:
systemctl enable nginx
systemctl start nginx
Per assicurarci che Nginx sia in esecuzione sul nostro server, possiamo visitare l'indirizzo IP del server con un browser o utilizzare il comando curl di seguito per vedere i risultati:
curl 192.168.43.29
Fase 2 - Installa e configura MariaDB
MariaDB è un database open source sviluppato dallo sviluppatore MySQL originale Monty Widenius, MariaDB è compatibile con MySQL. In questo passaggio installeremo MariaDB e configureremo la password di root per il database MariaDB. Quindi creeremo un nuovo database e un nuovo utente di cui abbiamo bisogno per la nostra installazione di WordPress.
Installa MariaDB con zypper:
zypper in mariadb mariadb-client
Aggiungi MariaDB alla sequenza di avvio e quindi avviala:
systemctl enable mysql
systemctl start mysql
MariaDB è stato avviato, ora dobbiamo configurare la password di root per il database MariaDB/mysql. Esegui il comando seguente per impostare una password di root MariaDB.
/usr/bin/mysqladmin -u root password 'toor123'
Nota:
La password di MariaDB è "toor123" , utilizza una password diversa e più sicura sul tuo server.
La password di root di MariaDB è stata configurata. Ora accedi alla shell MariaDB/MySQL e crea un nuovo database "wpdb" e il nuovo utente "wpuser" con password "[email protetta]" per la nostra installazione di WordPress. Scegli qui una password sicura anche sul tuo sistema.
Accedi alla shell MariaDB/MySQL:
mysql -u root -p
TYPE PASSWORD toor123
Crea un nuovo database e un nuovo utente:
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 è installata ed è stato creato il nuovo database per la nostra installazione di WordPress.
Passaggio 3 - Installa HHVM
Per l'installazione di HHVM, è necessario aggiungere un nuovo repository hhvm. Possiamo usare il comando zypper per aggiungere il nuovo repository hhvm al server. Quindi dobbiamo aggiornare i repository di openSUSE:
zypper addrepo http://download.opensuse.org/repositories/home:munix9/openSUSE_Leap_42.1/home:munix9.repo
zypper refresh
Digita 'a' per considerare sempre attendibile la chiave.
Ora installa i pacchetti hhvm:
zypper in hhvm hhvm-nginx hhvm-fastcgi
hhvm-nginx fornisce un esempio della configurazione di Nginx.
hhvm-fastcgi fornisce i meta file FastCGI.
Fase 4 - Configura HHVM e Nginx
In questo passaggio, configureremo HHVM per l'esecuzione con il server web Nginx. Configurare HHVM per utilizzare Unix-socket ed eseguire HHVM come utente Nginx. Vai alla directory di configurazione di HHVM e modifica il file di configurazione 'server.ini' con l'editor vim:
cd /etc/hhvm/
vim server.ini
Decommentare la riga 3 per abilitare i socket Unix per HHVM.
hhvm.server.file_socket = /var/run/hhvm/server.sock
Salva ed esci.
Successivamente, dobbiamo modificare lo script del servizio HHVM in modo che HHVM possa eseguire l'utente Nginxginx. È importante configurare HHVM per l'esecuzione come lo stesso utente del server Web. Vai alla directory systemd e modifica il file 'hhvm.service' con vim:
cd /usr/lib/systemd/system
vim hhvm.service
Modifica l'opzione --user hhvm sulla riga 11 con l'utente 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
Salva ed esci.
Ora cambia il proprietario della directory "/var/run/hhvm" con l'utente nginx.
chown -R nginx:nginx /var/run/hhvm/
Nota:
Dopo il riavvio del server, a volte il proprietario predefinito della directory torna all'utente predefinito. Per risolvere questo problema, possiamo definire il comando linux da eseguire dopo che tutti gli script del runlevel corrente sono stati eseguiti.
Modifica il file after.local nella directory "/etc/rc.d/" e aggiungi un nuovo comando linux alla fine del file:
vim /etc/rc.d/after.local
Incolla il comando seguente:
chown -R nginx:nginx /var/run/hhvm/
Salva ed esci.
Successivamente, dobbiamo configurare HHVM per funzionare con Nginx. Abbiamo installato il nuovo pacchetto "hhvm-nginx", contiene un esempio di configurazione HHVM per il server web Nginx.
Vai alla directory di configurazione di Nginx e copia la configurazione HHVM:
cd /etc/nginx/
cp hhvm.conf.example hhvm.conf
Modifica hhvm.conf con vim:
vim hhvm.conf
Nella seconda riga, aggiungi una nuova configurazione per definire la directory principale web:
root /srv/www/htdocs;
Salva ed esci.
Quindi dobbiamo modificare la configurazione di Nginx per includere la configurazione HHVM.
vim nginx.conf
Alla riga 59 - aggiungi la nuova riga di configurazione di seguito:
include /etc/nginx/hhvm.conf;
Salva ed esci.
Abilita e avvia HHVM con il comando systemctl di seguito:
systemctl enable hhvm
systemctl start hhvm
Quindi riavvia Nginx:
systemctl restart nginx
Nginx e HHVM sono stati installati e configurati. Per verificare se la configurazione funziona, creeremo un nuovo file php che contiene il codice phpinfo e lo salveremo nella directory principale web "/srv/www/htdocs", quindi accederemo tramite il browser web.
cd /srv/www/htdocs/
echo "<?php phpinfo(); ?>" > info.php
Apri il browser e digita l'indirizzo IP del server:
192.168.43.29/info.php
Nginx e HHVM funzionano senza errori.
Passaggio 5:crea un host virtuale con HHVM e Nginx
In questo passaggio creeremo una nuova configurazione di host virtuale con Nginx e HHVM. Userò il nome di dominio "hakasenano.co" per questo esempio e usalo come dominio anche per la nostra installazione di WordPress. Sostituisci il nome di dominio con il tuo nome di dominio in tutti i file e i comandi di configurazione.
Vai alla directory Nginx e crea una nuova directory per archiviare il file host virtuale:
cd /etc/nginx/
mkdir vhosts.d/
cd vhosts.d/
Crea un nuovo file di configurazione "nano.conf" con vim:
vim nano.conf
E incolla la nuova configurazione dell'host virtuale di seguito:
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; } }
Salva ed esci.
Nella nostra configurazione dell'host virtuale, abbiamo definito la directory principale web per il nome di dominio come la directory "/srv/www/nano". Questa directory non esiste per ora, quindi dobbiamo creare quella directory ora.
mkdir -p /srv/www/nano/
Infine, prova la configurazione di Nginx e riavviala:
nginx -t
systemctl restart nginx
Assicurati che il comando nginx -t non visualizzi un messaggio di errore.
Passaggio 6 - Installa WordPress
Al passaggio 5, abbiamo creato la configurazione dell'host virtuale per la nostra installazione di WordPress. Quindi dobbiamo solo scaricare WordPress ora e quindi modificare la configurazione del database che abbiamo creato nel passaggio 2.
Vai alla directory principale web "/srv/www/nano" e scarica l'archivio zip di WordPress con il comando wget:
cd /srv/www/nano
wget wordpress.org/latest.zip
Estrai "latest.zip" e sposta tutti i file e le directory di WordPress nella directory nano:
unzip latest.zip
mv wordpress/* .
Quindi, copia il file "wp-config-sample.php" in "wp-config.php" e modifica con vim:
cp wp-config-sample.php wp-config.php
vim wp-config.php
Cambia DB_NAME nel nostro database "wpdb" , DB_USER a "wpuser" e DB_PASSWORD a "[email protetta]" .
define('DB_NAME', 'wpdb'); define('DB_USER', 'wpuser'); define('DB_PASSWORD', '[email protected]'); define('DB_HOST', 'localhost');
Salva ed esci.
Ora apri il browser web e digita il nome del dominio nella barra degli indirizzi.
Verrai reindirizzato a www.hakasenano.co e vedrai la pagina dell'installazione.
E puoi riempire il titolo e la descrizione del sito con le tue informazioni e fare clic su "Installa Wordpress".
Attendi fino al termine dell'installazione e vedrai la pagina di accesso qui sotto. Fai clic su "Accedi" per accedere alla dashboard di amministrazione di WordPress:
Digita l'utente e la password di amministratore, quindi fai di nuovo clic su "Accedi".
Ora sei nella dashboard di amministrazione di WordPress.
Wordpress con Nginx e HHVM su OpenSUSE Leap 42.1 è ora installato.