GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Configuration de base de PHP 7 et Nginx sur Ubuntu 16.04 Linux

Nginx dépasse rapidement Apache en tant que serveur Web préféré. Pour les applications Web construites dans des langages comme Rails et Python, c'est pratiquement omniprésent, mais c'est un peu plus lent à comprendre dans le monde PHP. Cela s'explique en partie par la facilité avec laquelle PHP et Apache vont ensemble. Cependant, PHP et Nginx peuvent coopérer presque aussi facilement, et avec la sortie de PHP 7, combiner les deux peut être une option assez rapide.

Les forfaits

Tout d'abord. Mettez à jour Ubuntu et obtenez les packages Nginx et PHP.

# sudo apt-get update && sudo apt-get -y upgrade
# sudo apt-get -y install nginx php7.0 php7.0-fpm

Lorsque l'installation est terminée, les packages doivent tous être en place et en cours d'exécution. Pour vous assurer que c'est le cas, vous pouvez vérifier que Nginx et les services PHP-FPM fonctionnent dans Systemd.

# sudo systemctl status nginx
# sudo systemctl status php7.0-fpm

Si Systemd confirme que les deux services sont en cours d'exécution, le serveur devrait être opérationnel et vous devriez pouvoir voir la page d'accueil par défaut de Nginx en naviguant vers localhost dans le navigateur.

Configuration

Bien sûr, ce n'est pas du tout prêt à héberger quoi que ce soit. Une configuration est nécessaire pour pointer Nginx vers un contenu réel et améliorer la sécurité. Le répertoire racine des fichiers de configuration Nginx se trouve dans /etc/nginx . Heureusement, il existe déjà des valeurs par défaut d'Ubuntu qui facilitent grandement le processus de configuration.

Nginx.conf

Le fichier de configuration principal pour Nginx est nginx.conf . Ouvrez-le dans l'éditeur de texte de votre choix. Il nécessitera des autorisations root, donc un éditeur de texte comme Vim sera probablement le meilleur. La configuration par défaut est généralement correcte. Il y a évidemment des choses qui peuvent être faites pour améliorer la vitesse et la sécurité du système, mais la plupart de cela dépasse le cadre de ce didacticiel de base. Si vous souhaitez améliorer les performances, les options Gzip commentées aideront à la compression et peuvent accélérer les choses. Du côté de la sécurité, l'ajout des trois lignes suivantes aidera à prévenir les activités malveillantes.

add_header X-Frame-Options SAMEORIGIN;
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block";

Configuration du site

Une fois les lignes ajoutées, enregistrez et quittez. Il y a deux dossiers dans la racine Nginx, sites-available et sites-enabled . sites-available stocke les configurations du site. sites-enabled contient des liens symboliques vers les fichiers de configuration dans sites-available . De cette façon, activer et désactiver des sites est aussi simple que créer et supprimer des liens symboliques.

À l'aide de votre éditeur de texte, créez un fichier dans /etc/nginx/sites-available/yoursite . Ce fichier contiendra toute configuration spécifique au site pour votre nouveau site Web PHP 7. L'exemple suivant contient une répartition dans les commentaires de ce que fait chaque ligne. C'est une configuration assez basique, mais elle fera le travail.


server { 
	
	#Nginx should listen on port 80 for requests to yoursite.com
	listen 80; 
	server_name yoursite.com; 

	#Create access and error logs in /var/log/nginx
	access_log /var/log/nginx/yoursite.access_log main; 
	error_log /var/log/nginx/yoursite.error_log info; 

	#Nginx should look in /var/www/yoursite for your website
	root /var/www/yoursite/;
	#The homepage of your website is a file called index.php 
	index index.php; 

	#Specifies that Nginx is looking for .php files
	location ~ \.php$ { 
		#If a file isn’t found, 404
		try_files $uri =404; 
		#Include Nginx’s fastcgi configuration
		include /etc/nginx/fastcgi.conf;
		#Look for the FastCGI Process Manager at this location 
		fastcgi_pass unix:/run/php/php7.0-fpm.sock; 
	} 
}

Lorsque vous avez créé ce fichier, enregistrez-le et déplacez-vous dans le sites-enabled annuaire. À partir de là, créez le lien symbolique vers le fichier que vous venez de créer.

# cd /etc/nginx/sites-enabled
# sudo ln -s /etc/nginx/sites-available/yoursite

Sécurité PHP.ini

La sécurité est une cible mouvante et il est impossible de garder une longueur d'avance sur toutes les menaces possibles, mais c'est toujours une bonne idée de verrouiller autant que possible toute nouvelle installation de serveur. Il y a quelques ajustements simples qui peuvent être apportés au php.ini fichier de configuration qui aidera à sécuriser PHP. Avec votre éditeur de texte, ouvrez /etc/php/7.0/fpm/php.ini . C'est un énorme dossier. Encore une fois, Vim ou quelque chose avec une fonction de recherche est probablement le meilleur.

Trouvez d'abord disable_functions et ajoutez phpinfo,system,mail,exec à la fin de la chaîne de fonctions qui sont déjà là. Ensuite, recherchez file_uploads et réglez-le sur Off . Ensuite, recherchez sql.safe_mode et activez-le On . Enfin, trouvez allow_url_fopen et réglez-le sur Off . Avant de fermer le fichier, ajoutez une ligne supplémentaire à la fin.

register_globals = Off

Lorsque tout est fait, enregistrez et fermez. Redémarrez le serveur et il devrait être prêt à fonctionner.

# sudo systemctl restart php7.0-fpm
# sudo systemctl restart nginx

Où aller ensuite

En l'état, le serveur Ubuntu devrait pouvoir exécuter la plupart des sites Web PHP. Tous les fichiers PHP placés dans /var/www/yoursite sera géré par le serveur. Il cherchera le index.php déposer d'abord et le site Web peut se ramifier à partir de là. Bien sûr, il y a beaucoup plus à faire pour configurer PHP et Nginx pour la vitesse, la sécurité et à peu près n'importe quelle situation particulière, mais vous avez maintenant un bon point de départ.


Ubuntu
  1. Comment installer PHP 7.4 et 8.0 sur Ubuntu 18.04 ou 20.04

  2. Installer et configurer PHP OPcache sur Ubuntu 20.04

  3. Comment installer OpenLiteSpeed ​​et PHP sur Ubuntu

  4. Installation et configuration de Php et Nginx sur Ubuntu 20.04

  5. Comment installer et configurer PHP et Nginx (LEMP) sur Ubuntu 20.04

Comment installer Linux, Lighttpd, MySQL et PHP (pile LLMP) dans Ubuntu 18.04

Comment installer Linux, Nginx, MySQL, PHP (pile LEMP) dans Ubuntu 18.04

Double démarrage Ubuntu et Arch Linux

Comment installer et configurer Yii PHP Framework sur Ubuntu Linux

Comment installer le framework PHP Laravel avec Nginx sur Ubuntu Linux

Chargeur de démarrage Linux Ubuntu GRUB et configuration