Recherche de site Web

Configuration de HHVM hautes performances et Nginx/Apache avec MariaDB sur Debian/Ubuntu


HHVM signifie HipHop Virtual Machine. Il s'agit d'une machine virtuelle open source créée pour exécuter Hack (c'est un langage de programmation pour HHVM) et Applications écrites PHP. HHVM utilise un chemin de compilation de dernière minute pour obtenir des performances remarquables tout en conservant la flexibilité dont les programmeurs PHP sont accros. Jusqu'à présent, HHVM a obtenu une multiplication par 9 du débit des requêtes http et une réduction de plus de 5 fois de l'utilisation de la mémoire (lors de l'exécution sur une mémoire système faible) pour Facebook par rapport au moteur PHP + APC (Alternative PHP Cache). ).

HHVM peut également être utilisé avec un serveur Web basé sur FastCGI comme Nginx ou Apache.

Dans ce didacticiel, nous examinerons les étapes de configuration du serveur Web Nginx/Apache, du serveur de base de données MariaDB et de HHVM. . Pour cette configuration, nous utiliserons Ubuntu 15.04 (64 bits) car HHVM fonctionne uniquement sur un système 64 bits, bien que les distributions Debian et Linux Mint soient également prises en charge.

Étape 1 : Installation de Nginx et du serveur Web Apache

1. Effectuez d’abord une mise à niveau du système pour mettre à jour la liste des référentiels à l’aide des commandes suivantes.


apt-get update && apt-get upgrade

2. Comme je l'ai dit, HHVM peut être utilisé avec les serveurs Web Nginx et Apache. C'est donc à vous de choisir le serveur Web que vous allez utiliser, mais ici nous allons vous montrer l'installation des serveurs Web et comment les utiliser avec HHVM.

Installation de Nginx

Dans cette étape, nous allons installer le serveur Web Nginx/Apache à partir du référentiel de packages à l'aide de la commande suivante.


apt-get install nginx

Installation d'Apache


apt-get install apache2

À ce stade, vous devriez pouvoir accéder à l'URL suivante et voir la page par défaut de Nginx ou Apache.


http://localhost
OR
http://IP-Address
Page par défaut de Nginx

Page par défaut d'Apache

Étape 2 : installer et configurer MariaDB

3. Dans cette étape, nous installerons MariaDB, car il offre de meilleures performances par rapport à MySQL.


apt-get install mariadb-client mariadb-server

4. Une fois l'installation réussie de MariaDB, vous pouvez démarrer MariaDB et définir un mot de passe root pour sécuriser la base de données :


systemctl start mysql
mysql_secure_installation

Répondez aux questions suivantes en tapant y ou n et appuyez sur Entrée. Assurez-vous de lire attentivement les instructions avant de répondre aux questions.


Enter current password for root (enter for none) = press enter
Set root password? [Y/n] = y
Remove anonymous users[y/n] = y
Disallow root login remotely[y/n] = y
Remove test database and access to it [y/n] = y
Reload privileges tables now[y/n] = y 

5. Après avoir défini le mot de passe root pour MariaDB, vous pouvez vous connecter à l'invite MariaDB avec le nouveau mot de passe root.


mysql -u root -p

Étape 3 : Installation de HHVM

6. À ce stade, nous allons installer et configurer HHVM. Vous devez ajouter le référentiel HHVM à votre fichier sources.list, puis mettre à jour votre liste de référentiels à l'aide de la série de commandes suivante.


wget -O - http://dl.hhvm.com/conf/hhvm.gpg.key | apt-key add -
echo deb http://dl.hhvm.com/ubuntu DISTRIBUTION_VERSION main | sudo tee /etc/apt/sources.list.d/hhvm.list
apt-get update

Important : N'oubliez pas de remplacer DISTRIBUTION_VERSION par votre version de distribution Ubuntu (c'est-à-dire lucide, précise ou fiable). .) et aussi sur Debian remplacer par jessie ou wheezy. Sous Linux Mint, les instructions d'installation sont les mêmes, mais Petra est la seule distribution actuellement prise en charge.

Après avoir ajouté le référentiel HHVM, vous pouvez facilement l'installer comme indiqué.


apt-get install -y hhvm

L'installation de HHVM le démarrera maintenant, mais il n'est pas configuré pour démarrer automatiquement au prochain démarrage du système. Pour définir le démarrage automatique au prochain démarrage, utilisez la commande suivante.


update-rc.d hhvm defaults

Étape 4 : configurer Nginx/Apache pour parler à HHVM

7. Désormais, nginx/apache et HHVM sont installés et fonctionnent de manière indépendante, nous devons donc configurer les deux serveurs Web pour qu'ils communiquent entre eux. La partie cruciale est que nous devons dire à nginx/apache de transmettre tous les fichiers PHP à HHVM pour qu'ils soient exécutés.

Si vous utilisez Nginx, suivez ces instructions comme expliqué.

Par défaut, la configuration nginx se trouve sous /etc/nginx/sites-available/default et cette configuration recherche dans /usr/share/nginx/html les fichiers à exécuter, mais il ne sait pas quoi faire avec PHP.

Pour que Nginx communique avec HHVM, nous devons exécuter le script d'inclusion suivant qui configurera nginx correctement en plaçant un hhvm.conf au début de la configuration de nginx comme mentionné ci-dessus.

Ce script permet au nginx de communiquer avec n'importe quel fichier se terminant par .hh ou .php et de l'envoyer à HHVM via fastcgi.


/usr/share/hhvm/install_fastcgi.sh

Important : Si vous utilisez Apache, aucune configuration n'est nécessaire pour le moment.

8. Ensuite, vous devez utiliser /usr/bin/hhvm pour fournir /usr/bin/php (php) en exécutant cette commande ci-dessous.


/usr/bin/update-alternatives --install /usr/bin/php php /usr/bin/hhvm 60

Une fois toutes les étapes ci-dessus effectuées, vous pouvez maintenant démarrer HHVM et le tester.


systemctl start hhvm

Étape 5 : tester HHVM avec Nginx/Apache

9. Pour vérifier que hhvm fonctionne, vous devez créer un fichier hello.php dans le répertoire racine du document nginx/apache.


nano /usr/share/nginx/html/hello.php       [For Nginx]
OR
nano /var/www/html/hello.php               [For Nginx and Apache]

Ajoutez l'extrait suivant à ce fichier.


<?php
if (defined('HHVM_VERSION')) {
echo 'HHVM is working';
 phpinfo();
}
else {
echo 'HHVM is not working';
}
?>

puis accédez à l'URL suivante et vérifiez que « hello world ».


http://localhost/info.php
OR
http://IP-Address/info.php

Si la page « HHVM » apparaît, cela signifie que vous êtes prêt !

Conclusion

Ces étapes sont très faciles à suivre et j'espère que vous trouverez ce tutoriel utile. Si vous rencontrez une erreur lors de l'installation d'un package, postez un commentaire et nous trouverons des solutions ensemble. Et toutes les idées supplémentaires sont les bienvenues.