Comment installer WordPress avec Nginx sur un serveur FreeBSD 10.1

introduction

WordPress est le système de gestion de contenu (CMS) et la plateforme de blogs le plus populaire au monde. En utilisant WordPress, vous pouvez rapidement configurer et personnaliser votre site Web, vous permettant d’ajouter du contenu et d’ajuster facilement les éléments visuels.

Dans ce guide, nous installerons WordPress sur une machine FreeBSD 10.1 utilisant Nginx pour diffuser notre contenu. Nginx est un serveur Web puissant, capable de gérer un grand nombre de connexions simultanées. Nous allons en tirer parti pour l’installation de WordPress que nous allons installer dans ce guide.

Prérequis et objectifs

Afin de compléter ce guide, vous devez suivre certaines étapes préliminaires afin de préparer votre serveur.

Nous allons ajouter les composants de ce guide à une pile FEMP (FreeBSD, Nginx, MySQL et PHP) configurée. Vous pouvez apprendre à configurer Nginx, MySQL et PHP sur votre serveur FreeBSD 10.1 avec notre guide: https://www.digitalocean.com/community/tutorials/how-to-install-an-nginx-mysql-and-php -femp-stack-on-freebsd-10-1 [ici] ici.

Une fois que Nginx, MySQL et PHP sont installés et configurés sur votre serveur, vous pouvez continuer avec ce guide. Notre objectif dans ce guide est d’installer la dernière version de WordPress sur notre serveur FreeBSD.

Un paquet WordPress existant peut être installé avec la commande + pkg + de FreeBSD, mais il repose actuellement sur PHP version 5.4, qui ne recevra plus que les mises à jour de sécurité. Sa fin de vie sera en septembre 2015.

Pour nous assurer que notre site est construit sur une base qui recevra une assistance pendant longtemps, nous allons télécharger et installer la dernière version de WordPress à partir du site du projet et utiliser PHP version 5.6 pour traiter le contenu dynamique.

Installer des extensions PHP supplémentaires requises par WordPress

Lors de la configuration de PHP sur notre serveur FreeBSD dans le guide FEMP, nous avons installé les paquetages + php56 + et + php56-mysql + afin que notre instance PHP puisse interroger les données d’une base de données MySQL si nécessaire.

Cela représente la configuration minimale requise permettant à PHP d’être utilisé comme base pour diverses applications. WordPress utilisera le paquetage + php56-mysql +, mais il nécessitera également des extensions supplémentaires afin de mettre en œuvre plusieurs de ses fonctionnalités essentielles.

Heureusement, ceux-ci peuvent être facilement installés en utilisant la commande + pkg +. Téléchargez et installez les extensions requises en tapant:

sudo pkg install php56-xml php56-hash php56-gd php56-curl php56-tokenizer php56-zlib php56-zip

Une fois l’installation terminée, si vous utilisez le shell + tcsh + par défaut, lancez un rehash afin que le shell puisse trouver vos nouveaux fichiers:

rehash

Tous les packages que nous avons installés sont des extensions PHP. Pour que notre instance PHP-FPM utilise ces nouvelles extensions, nous devons redémarrer le processus:

sudo service php-fpm restart

Une fois cette opération terminée, nous pouvons commencer à configurer notre base de données.

Créer et configurer une base de données MySQL

WordPress nécessite une base de données de type SQL afin de stocker le contenu du site et les données de l’utilisateur. Nous avons installé MySQL dans notre guide précédent, nous avons donc les outils nécessaires pour créer et fournir un accès à une telle base de données.

Pour commencer, vous devrez utiliser la commande + mysql pour vous authentifier auprès de votre système de base de données en tant qu’utilisateur administratif:

mysql -u root -p

Le mot de passe de l’utilisateur racine MySQL que vous avez configuré dans le guide précédent vous sera demandé (lors de l’exécution du script + mysql_secure_installation +). Une fois que vous avez entré le bon mot de passe, vous serez déplacé dans une invite MySQL.

La première chose à faire est de créer une base de données pour votre instance WordPress. Vous pouvez appeler cela comme vous le souhaitez, mais nous utiliserons le nom de base de données + wordpress + pour ce guide car il est sémantique et facile à retenir:

CREATE DATABASE wordpress;

Si vous rencontrez des problèmes avec la commande ci-dessus, assurez-vous que vous avez un point-virgule (;) à la fin de votre déclaration. Le langage de requête SQL requiert que toutes les instructions se terminent par un point-virgule.

Une fois notre base de données créée, l’étape suivante consiste à créer un utilisateur dédié que nous utiliserons pour accéder à la base de données. Il est recommandé de créer et d’utiliser un utilisateur MySQL distinct pour chaque application stockant des données dans MySQL. Cela aide à minimiser l’étendue des problèmes de sécurité.

Pour ce guide, nous allons appeler notre nouvel utilisateur + wordpressuser + et configurer les restrictions d’accès afin qu’il ne soit valide que pour les connexions provenant du serveur lui-même. Nous allons également définir un mot de passe pour l’utilisateur:

CREATE USER wordpressuser@localhost IDENTIFIED BY '';

N’oubliez pas de changer le composant ++ de la commande ci-dessus en un mot de passe sécurisé. Vous devrez vous souvenir de cette valeur ultérieurement.

Nous avons maintenant créé les deux composants MySQL nécessaires à votre installation WordPress. Cependant, ils ne sont pas encore connectés. Nous devons donner à notre nouvel utilisateur un accès à la base de données WordPress afin qu’il puisse configurer et gérer les données de notre site. Pour ce faire, tapez:

GRANT ALL PRIVILEGES ON wordpress.* TO wordpressuser@localhost;

Notre nouvel utilisateur a maintenant accès à la base de données que nous avons configurée. Pour informer l’instance de MySQL en cours d’exécution de ces nouvelles modifications, nous devons vider la table de privilèges:

FLUSH PRIVILEGES;

Enfin, nous pouvons quitter l’invite MySQL pour revenir à notre environnement shell habituel en tapant:

exit

Maintenant que nous avons une base de données et que l’utilisateur est prêt, nous pouvons télécharger et configurer les fichiers WordPress réels.

Téléchargez et configurez WordPress

Nous téléchargerons la dernière version de WordPress à partir du site Web du projet pour l’utiliser lors de notre installation. En raison des éventuelles mises à jour de sécurité, il est très important de toujours utiliser la version la plus récente de WordPress.

L’équipe WordPress facilite cette tâche en regroupant systématiquement la dernière version dans une archive située sur + / latest.tar.gz + sur leur site. Nous pouvons le télécharger dans notre répertoire personnel en utilisant l’utilitaire FreeBSD + fetch +:

cd ~
fetch http://wordpress.org/latest.tar.gz

Une fois le fichier téléchargé, nous pouvons extraire les fichiers WordPress et la structure de répertoires à l’aide de la commande + tar +:

tar xzvf latest.tar.gz

Le répertoire qui sera créé s’appellera + wordpress. Supprimez l’archive + .tar.gz + puis déplacez-vous dans ce répertoire pour pouvoir commencer la configuration:

rm latest.tar.gz
cd wordpress

À l’intérieur, vous trouverez un exemple de fichier de configuration que nous pouvons utiliser comme modèle pour notre installation. Copiez le fichier dans le fichier + wp-config.php + qui sera lu par WordPress:

cp wp-config-sample.php wp-config.php

Maintenant, nous pouvons ouvrir le fichier pour le modifier afin de pouvoir configurer les informations d’accès pour la base de données MySQL et l’utilisateur que nous avons configurés dans la dernière section:

vi wp-config.php

À l’intérieur, vous devez modifier trois valeurs pour que WordPress puisse se connecter correctement à votre système MySQL et l’utiliser. La variable + DB_NAME + définit le nom de la base de données MySQL que vous avez créée, le + DB_USER + doit être défini sur l’utilisateur que vous avez créé et le + DB_PASSWORD + doit être modifié pour contenir le mot de passe que vous avez sélectionné pour cet utilisateur:

. . .

/** The name of the database for WordPress */
define('DB_NAME', '');

/** MySQL database username */
define('DB_USER', '');

/** MySQL database password */
define('DB_PASSWORD', '');

. . .

Lorsque vous avez fini de modifier ces valeurs, enregistrez et fermez le fichier.

Ensuite, nous pouvons copier l’installation de WordPress dans le répertoire + / usr / local / www + où nous conservons nos divers fichiers de site. Nous allons utiliser l’utilitaire + rsync +, car il nous permet de conserver certains attributs de fichier pendant le déplacement:

sudo rsync -avP ~/wordpress /usr/local/www

Ensuite, nous devons ajuster le propriétaire de nos fichiers WordPress afin que notre serveur Web puisse apporter des modifications, le cas échéant. Notre utilisateur et notre groupe Web sont tous deux appelés + www +:

sudo chown -R www:www /usr/local/www/wordpress

Maintenant que vos fichiers WordPress sont en place avec la configuration correcte, nous pouvons modifier notre configuration Nginx.

Configurez Nginx

Dans notre dernier guide, nous avons configuré Nginx pour servir la page Web par défaut de Nginx et l’avons configuré pour transmettre les requêtes PHP à notre instance PHP-FPM. Cela nous amène à la configuration dont nous avons besoin pour WordPress.

Ouvrez le fichier de configuration Nginx avec les privilèges + sudo pour apporter vos modifications:

sudo vi /usr/local/etc/nginx/nginx.conf

Si vous avez suivi les instructions du dernier guide, votre fichier devrait ressembler à celui-ci (les commentaires ci-dessous ont été supprimés pour plus de clarté):

user  www;
worker_processes  2;
error_log /var/log/nginx/error.log info;

events {
   worker_connections  1024;
}

http {
   include       mime.types;
   default_type  application/octet-stream;

   access_log /var/log/nginx/access.log;

   sendfile        on;
   keepalive_timeout  65;

   server {
       listen       80;
       server_name   www.;
       root /usr/local/www/nginx;
       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 /usr/local/www/nginx-dist;
       }

       location ~ \.php$ {
               try_files $uri =404;
               fastcgi_split_path_info ^(.+\.php)(/.+)$;
               fastcgi_pass unix:/var/run/php-fpm.sock;
               fastcgi_index index.php;
               fastcgi_param SCRIPT_FILENAME $request_filename;
               include fastcgi_params;
       }
   }
}

Nous devrons faire deux ajustements pour nous assurer que votre WordPress fonctionnera correctement.

Premièrement, nous devons ajuster la racine du document car nos fichiers WordPress sont situés dans le répertoire + / usr / local / www / wordpress +:

server {

   . . .

   root ;

   . . .

}

L’autre changement que nous devons faire concerne la directive + try_files + dans le bloc + location / +. Actuellement, la configuration demande à Nginx d’essayer de trouver d’abord la demande sous forme de fichier. S’il ne parvient pas à trouver un fichier correspondant, il tente de trouver un répertoire correspondant à la demande. Si cela ne donne aucun résultat, Nginx génère une erreur 404 indiquant que la ressource est introuvable.

Nous devons modifier cela afin qu’au lieu de se terminer par une erreur 404, la demande soit réécrite dans un fichier + index.php +. La requête et les arguments d’origine seront transmis en tant que paramètres de requête. Nous pouvons le configurer en modifiant la directive + try_files + de la manière suivante:

server {

   . . .

   location / {
       try_files $uri $uri/ ;
   }

   . . .

}

Lorsque vous avez terminé, le fichier de configuration devrait ressembler à ceci:

user  www;
worker_processes  2;
error_log /var/log/nginx/error.log info;

events {
   worker_connections  1024;
}

http {
   include       mime.types;
   default_type  application/octet-stream;

   access_log /var/log/nginx/access.log;

   sendfile        on;
   keepalive_timeout  65;

   server {
       listen       80;
       server_name   www.;
       root ;
       index index.php index.html index.htm;

       location / {
           try_files $uri $uri/ ;
       }

       error_page      500 502 503 504  /50x.html;
       location = /50x.html {
           root /usr/local/www/nginx-dist;
       }

       location ~ \.php$ {
               try_files $uri =404;
               fastcgi_split_path_info ^(.+\.php)(/.+)$;
               fastcgi_pass unix:/var/run/php-fpm.sock;
               fastcgi_index index.php;
               fastcgi_param SCRIPT_FILENAME $request_filename;
               include fastcgi_params;
       }
   }
}

Lorsque vous avez terminé les modifications ci-dessus, enregistrez et fermez le fichier.

Nous pouvons maintenant redémarrer Nginx afin de mettre en œuvre nos nouvelles modifications. Commencez par vérifier que notre syntaxe est correcte:

sudo nginx -t

Si aucune erreur n’est trouvée, redémarrez le service:

sudo service nginx restart

Fin de l’installation via l’interface Web

Notre installation WordPress est maintenant complètement configurée sur le serveur. Nous pouvons compléter le reste du processus en utilisant un navigateur Web.

Dans votre navigateur Web, visitez le nom de domaine ou l’adresse IP de votre serveur:

http://

WordPress va d’abord vous demander quelle langue vous souhaitez utiliser:

image: https: //assets.digitalocean.com/articles/freebsd_lemp_wp/choose_language.png [Choisissez une langue pour WordPress]

Après avoir fait votre choix, vous serez redirigé vers la page de configuration initiale pour configurer votre installation WordPress:

image: https: //assets.digitalocean.com/articles/freebsd_lemp_wp/main_install.png [installation de WordPress]

Remplissez le nom de votre site et sélectionnez le nom d’utilisateur que vous souhaitez utiliser pour administrer le site. Vous devrez sélectionner et confirmer un mot de passe pour votre site et entrer une adresse e-mail à laquelle vous pouvez être joint. La dernière option est un choix d’autoriser ou non les moteurs de recherche à indexer le site.

Une fois vos sélections effectuées, cliquez sur le bouton «Installer WordPress» en bas de la page. Il vous sera demandé de vous connecter au site à l’aide des informations d’identification que vous venez de sélectionner.

Une fois connecté, le panneau d’administration de votre nouvelle installation WordPress vous sera présenté:

image: https: //assets.digitalocean.com/articles/freebsd_lemp_wp/admin_interface.png [interface d’administration WordPress]

Vous pouvez utiliser cette interface pour publier du nouveau contenu, modifier l’apparence de votre site et installer et configurer des plug-ins afin de tirer parti de fonctionnalités supplémentaires.

Conclusion

Vous avez maintenant une nouvelle installation de WordPress en cours d’exécution, soutenue par Nginx, MySQL et PHP. WordPress est incroyablement puissant et vous permet d’afficher de nombreux types de contenu stylés selon vos préférences. Si vous êtes nouveau dans WordPress, vous voudrez peut-être commencer par examiner les thèmes et les plug-ins facultatifs.