Comment installer WordPress avec LEMP sur Ubuntu 16.04

introduction

WordPress est le plus populaire des CMS (systèmes de gestion de contenu) sur Internet. Il vous permet de configurer facilement des blogs et des sites Web flexibles sur un serveur MySQL avec un traitement PHP. WordPress a connu une adoption incroyable et constitue un excellent choix pour la mise en place rapide d’un site Web. Après l’installation, presque toute l’administration peut être effectuée via l’interface Web.

Dans ce guide, nous allons nous concentrer sur la configuration d’une instance WordPress sur une pile LEMP (Linux, Nginx, MySQL et PHP) sur un serveur Ubuntu 16.04.

Conditions préalables

Pour compléter ce didacticiel, vous devez avoir accès à un serveur Ubuntu 16.04.

Avant de pouvoir commencer ce guide, vous devez effectuer les tâches suivantes:

  • * Créer un utilisateur + sudo + sur votre serveur *: Nous allons suivre les étapes de ce guide en utilisant un utilisateur non root avec les privilèges + sudo +. Vous pouvez créer un utilisateur avec les privilèges + sudo + en suivant notre https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-16-04 de Ubuntu 16.04 Guide de configuration du serveur initial].

  • * Installer une pile LEMP *: WordPress aura besoin d’un serveur Web, d’une base de données et de PHP pour fonctionner correctement. La configuration d’une pile LEMP (Linux, Nginx, MySQL et PHP) répond à toutes ces exigences. Suivez https://www.digitalocean.com/community/tutorials/how-to-install-linux-nginx-mysql-php-lemp-stack-in-ubuntu-16-04 (guide) pour installer et configurer ce logiciel. .

  • * Sécurisez votre site avec SSL *: WordPress fournit un contenu dynamique et gère l’authentification et l’autorisation des utilisateurs. TLS / SSL est la technologie qui vous permet de chiffrer le trafic de votre site afin que votre connexion soit sécurisée. La manière dont vous configurez SSL dépend de la présence ou non d’un nom de domaine pour votre site.

  • * Si vous avez un nom de domaine… * le moyen le plus simple de sécuriser votre site est avec Let’s Encrypt, qui fournit des certificats gratuits et sécurisés. Suivez notre Guide de cryptage pour Nginx pour le configurer .

  • * Si vous n’avez pas de domaine… * et que vous utilisez simplement cette configuration à des fins de test ou pour un usage personnel, vous pouvez utiliser un certificat auto-signé. Ceci fournit le même type de cryptage, mais sans la validation du domaine. Suivez notre https://www.digitalocean.com/community/tutorials/how-to-create-a-self-signed-ssl-certificate-for-nginx-in-ubuntu-16-04 de votre propre guide SSL pour Nginx] à mettre en place.

Lorsque vous avez terminé les étapes de configuration, connectez-vous à votre serveur en tant qu’utilisateur + sudo + et continuez ci-dessous.

Étape 1: Créer une base de données MySQL et un utilisateur pour WordPress

La première étape que nous allons franchir est une étape préparatoire. WordPress utilise MySQL pour gérer et stocker les informations relatives au site et aux utilisateurs. MySQL est déjà installé, mais nous devons créer une base de données et un utilisateur pour WordPress.

Pour commencer, connectez-vous au compte racine (administratif) de MySQL en exécutant la commande suivante:

mysql -u root -p

Vous serez invité à entrer le mot de passe que vous avez défini pour le compte racine MySQL lors de l’installation du logiciel.

Premièrement, nous pouvons créer une base de données distincte que WordPress peut contrôler. Vous pouvez appeler cela comme vous voulez, mais nous allons utiliser + wordpress + dans ce guide pour que ce soit simple. Vous pouvez créer la base de données pour WordPress en tapant:

CREATE DATABASE  DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

Note

Ensuite, nous allons créer un compte utilisateur MySQL distinct que nous utiliserons exclusivement pour fonctionner sur notre nouvelle base de données. La création de bases de données et de comptes à fonction unique est une bonne idée du point de vue de la gestion et de la sécurité. Nous utiliserons le nom + wordpressuser + dans ce guide. N’hésitez pas à changer cela si vous le souhaitez.

Nous allons créer ce compte, définir un mot de passe et accorder l’accès à la base de données que nous avons créée. Nous pouvons le faire en tapant la commande suivante. N’oubliez pas de choisir un mot de passe fort ici pour votre utilisateur de base de données:

GRANT ALL ON .* TO ''@'localhost' IDENTIFIED BY '';

Vous avez maintenant une base de données et un compte utilisateur, chacun spécialement créé pour WordPress. Nous devons supprimer les privilèges pour que l’instance actuelle de MySQL connaisse les modifications récentes que nous avons apportées:

FLUSH PRIVILEGES;

Quittez MySQL en tapant:

EXIT;

Étape 2: Ajustez la configuration de Nginx pour gérer correctement WordPress

Nous allons ensuite apporter quelques modifications mineures aux fichiers de blocage de notre serveur Nginx.

Ouvrez le fichier de blocage du serveur par défaut avec les privilèges + sudo + pour commencer:

sudo nano /etc/nginx/sites-available/default

Dans le bloc principal + serveur +, nous devons ajouter quelques blocs + emplacement +.

Commencez par créer des blocs d’emplacement correspondant exactement aux requêtes ` / / favicon.ico et + / robots.txt, pour lesquels nous ne souhaitons pas enregistrer les requêtes.

Nous utiliserons un emplacement d’expression régulière pour répondre à toutes les demandes de fichiers statiques. Nous allons à nouveau désactiver la journalisation pour ces demandes et les marquer comme hautement cachables car ce sont des ressources coûteuses à servir. Vous pouvez ajuster cette liste de fichiers statiques pour qu’elle contienne toute autre extension de fichier que votre site pourrait utiliser:

/ etc / nginx / sites-available / default

server {
   . . .







   . . .
}

À l’intérieur du bloc + location / + existant, nous devons ajuster la liste + try_files + afin qu’au lieu de renvoyer une erreur 404 comme option par défaut, le contrôle soit passé au fichier + index.php + avec la requête arguments.

Cela devrait ressembler à ceci:

/ etc / nginx / sites-available / default

server {
   . . .
   location / {
       try_files $uri $uri/ =404;

   }
   . . .
}

Lorsque vous avez terminé, enregistrez et fermez le fichier.

Maintenant, nous pouvons vérifier les erreurs de syntaxe dans notre configuration en tapant:

sudo nginx -t

Si aucune erreur n’a été signalée, rechargez Nginx en tapant:

sudo systemctl reload nginx

Étape 3: Installer des extensions PHP supplémentaires

Lors de la configuration de notre pile LEMP, nous n’avions besoin que d’un ensemble très minimal d’extensions afin de permettre à PHP de communiquer avec MySQL. WordPress et nombre de ses plugins exploitent des extensions PHP supplémentaires.

Nous pouvons télécharger et installer certaines des extensions PHP les plus populaires à utiliser avec WordPress en tapant:

sudo apt-get update
sudo apt-get install php-curl php-gd php-mbstring php-mcrypt php-xml php-xmlrpc

Note

Lorsque vous avez terminé d’installer les extensions, redémarrez le processus PHP-FPM afin que le processeur PHP en cours d’exécution puisse exploiter les fonctionnalités nouvellement installées:

sudo systemctl restart php7.0-fpm

Étape 4: Télécharger WordPress

Maintenant que notre logiciel serveur est configuré, nous pouvons télécharger et configurer WordPress. Pour des raisons de sécurité notamment, il est toujours recommandé de se procurer la dernière version de WordPress sur leur site.

Basculez dans un répertoire accessible en écriture, puis téléchargez la version compressée en tapant:

cd /tmp
curl -O https://wordpress.org/latest.tar.gz

Extrayez le fichier compressé pour créer la structure de répertoires WordPress:

tar xzvf latest.tar.gz

Nous allons transférer ces fichiers dans notre racine de document dans un instant. Avant de faire cela, nous pouvons copier le fichier de configuration exemple dans le nom de fichier que WordPress lit réellement:

cp /tmp/wordpress/wp-config-sample.php /tmp/wordpress/wp-config.php

Nous pouvons également créer le répertoire + upgrade of, afin que WordPress ne soit pas confronté à des problèmes d’autorisations lorsqu’il tente de le faire lui-même après une mise à jour de son logiciel:

mkdir /tmp/wordpress/wp-content/upgrade

Maintenant, nous pouvons copier tout le contenu du répertoire dans notre racine de document. Nous utilisons l’indicateur + -a + pour nous assurer que nos autorisations sont maintenues. Nous utilisons un point à la fin de notre répertoire source pour indiquer que tout ce qui se trouve dans le répertoire doit être copié, y compris tous les fichiers cachés:

sudo cp -a /tmp/wordpress/. /var/www/html

Étape 5: Configurez le répertoire WordPress

Avant de procéder à la configuration Web de WordPress, nous devons ajuster certains éléments de notre répertoire WordPress.

Réglage de la propriété et des autorisations

L’une des tâches essentielles que nous devons accomplir est la configuration d’autorisations de fichiers raisonnables et de la propriété. Nous devons être en mesure d’écrire dans ces fichiers en tant qu’utilisateur régulier. Le serveur Web doit également pouvoir accéder à certains fichiers et répertoires et les ajuster afin de fonctionner correctement.

Nous allons commencer par attribuer la propriété de tous les fichiers de la racine de notre document à notre nom d’utilisateur. Nous utiliserons + sammy + comme nom d’utilisateur dans ce guide, mais vous devriez le modifier pour qu’il corresponde quel que soit le nom de votre utilisateur + sudo. Nous allons assigner la propriété de groupe au groupe + www-data:

sudo chown -R :www-data /var/www/html

Ensuite, nous allons définir le bit + setgid + sur chacun des répertoires de la racine du document. Ainsi, les nouveaux fichiers créés dans ces répertoires hériteront du groupe du répertoire parent (que nous venons de définir comme suit: + www-data +) au lieu du groupe principal de l’utilisateur qui crée. Cela garantit simplement que chaque fois que nous créons un fichier dans le répertoire de la ligne de commande, le serveur Web aura toujours la propriété du groupe sur celui-ci.

Nous pouvons définir le bit + setuid sur chaque répertoire de votre installation WordPress en tapant:

sudo find /var/www/html -type d -exec chmod g+s {} \;

Nous allons ajuster quelques autres autorisations détaillées. Premièrement, nous allons donner aux groupes un accès en écriture au répertoire + wp-content + afin que l’interface Web puisse modifier le thème et le plug-in:

sudo chmod g+w /var/www/html/wp-content

Dans le cadre de ce processus, nous allons donner au serveur Web un accès en écriture à tout le contenu de ces deux répertoires:

sudo chmod -R g+w /var/www/html/wp-content/themes
sudo chmod -R g+w /var/www/html/wp-content/plugins

Cela devrait être un ensemble d’autorisations raisonnables pour commencer. Certains plugins et procédures peuvent nécessiter des ajustements supplémentaires.

Configuration du fichier de configuration WordPress

Nous devons maintenant apporter quelques modifications au fichier de configuration principal de WordPress.

Lorsque nous ouvrirons le fichier, notre premier travail consistera à ajuster certaines clés secrètes afin de sécuriser notre installation. WordPress fournit un générateur sécurisé pour ces valeurs afin que vous n’ayez pas à essayer de créer vous-même de bonnes valeurs. Celles-ci sont uniquement utilisées en interne, il n’est donc pas gênant d’avoir des valeurs complexes et sûres.

Pour récupérer les valeurs sécurisées du générateur de clé secrète WordPress, tapez:

curl -s https://api.wordpress.org/secret-key/1.1/salt/

Vous obtiendrez des valeurs uniques ressemblant à ceci:

Attention

Outputdefine('AUTH_KEY',         '1jl/vqfs<XhdXoAPz9  c_j{iwqD^<+c9.k<J@4H');
define('SECURE_AUTH_KEY',  'E2N-h2]Dcvp+aS/p7X  {Ka(f;rv?Pxf})CgLi-3');
define('LOGGED_IN_KEY',    'W(50,{W^,OPB%PB<JF  2;y&,2m%3]R6DUth[;88');
define('NONCE_KEY',        'll,4UC)7ua+8<!4VM+  #`DXF+[$atzM7 o^-C7g');
define('AUTH_SALT',        'koMrurzOA+|L_lG}kf   07VC*Lj*lD&?3w!BT#-');
define('SECURE_AUTH_SALT', 'p32*p,]z%LZ+pAu:VY  C-?y+K0DK_+F|0h{!_xY');
define('LOGGED_IN_SALT',   'i^/G2W7!-1H2OQ+t$3  t6**bRVFSD[Hi])-qS`|');
define('NONCE_SALT',       'Q6]U:K?j4L%Z]}h^q7  1% ^qUswWgn+6&xqHN&%');

Ce sont des lignes de configuration que nous pouvons coller directement dans notre fichier de configuration pour définir des clés sécurisées. Copiez le résultat que vous avez reçu maintenant.

Maintenant, ouvrez le fichier de configuration WordPress:

nano /var/www/html/wp-config.php

Recherchez la section contenant les valeurs factices pour ces paramètres. Cela ressemblera à ceci:

/var/www/html/wp-config.php

. . .

define('AUTH_KEY',         'put your unique phrase here');
define('SECURE_AUTH_KEY',  'put your unique phrase here');
define('LOGGED_IN_KEY',    'put your unique phrase here');
define('NONCE_KEY',        'put your unique phrase here');
define('AUTH_SALT',        'put your unique phrase here');
define('SECURE_AUTH_SALT', 'put your unique phrase here');
define('LOGGED_IN_SALT',   'put your unique phrase here');
define('NONCE_SALT',       'put your unique phrase here');

. . .

Supprimez ces lignes et collez les valeurs que vous avez copiées à partir de la ligne de commande:

/var/www/html/wp-config.php

. . .

define('AUTH_KEY',         '');
define('SECURE_AUTH_KEY',  '');
define('LOGGED_IN_KEY',    '');
define('NONCE_KEY',        '');
define('AUTH_SALT',        '');
define('SECURE_AUTH_SALT', '');
define('LOGGED_IN_SALT',   '');
define('NONCE_SALT',       '');

. . .

Ensuite, nous devons modifier certains paramètres de connexion à la base de données au début du fichier. Vous devez ajuster le nom de la base de données, l’utilisateur de la base de données et le mot de passe associé que nous avons configuré dans MySQL.

L’autre modification à apporter consiste à définir la méthode que WordPress doit utiliser pour écrire dans le système de fichiers. Étant donné que nous avons donné au serveur Web le droit d’écrire à l’endroit voulu, nous pouvons explicitement définir la méthode du système de fichiers sur «direct». Si nous ne définissons pas cela avec nos paramètres actuels, WordPress demanderait les informations d’identification FTP lorsque nous effectuons certaines actions.

Ce paramètre peut être ajouté sous les paramètres de connexion à la base de données ou n’importe où dans le fichier:

/var/www/html/wp-config.php

. . .

define('DB_NAME', '');

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

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

. . .

Enregistrez et fermez le fichier lorsque vous avez terminé.

Étape 6: Terminez l’installation via l’interface Web

Maintenant que la configuration du serveur est terminée, nous pouvons terminer l’installation via l’interface Web.

Dans votre navigateur Web, accédez au nom de domaine ou à l’adresse IP publique de votre serveur:

http://

Sélectionnez la langue que vous souhaitez utiliser:

image: https: //assets.digitalocean.com/articles/wordpress_lemp_1604/language_selection.png [sélection de la langue WordPress]

Ensuite, vous arriverez à la page de configuration principale.

Sélectionnez un nom pour votre site WordPress et choisissez un nom d’utilisateur (il est recommandé de ne pas choisir quelque chose comme «admin» pour des raisons de sécurité). Un mot de passe fort est généré automatiquement. Enregistrez ce mot de passe ou sélectionnez un autre mot de passe fort.

Entrez votre adresse électronique et indiquez si vous souhaitez dissuader les moteurs de recherche d’indexer votre site:

image: https: //assets.digitalocean.com/articles/wordpress_lemp_1604/setup_installation.png [Installation de l’installation WordPress]

Lorsque vous cliquez en avant, vous accédez à une page qui vous invite à vous connecter:

image: https: //assets.digitalocean.com/articles/wordpress_lemp_1604/login_prompt.png [invite de connexion WordPress]

Une fois connecté, vous serez dirigé vers le tableau de bord d’administration WordPress:

image: https: //assets.digitalocean.com/articles/wordpress_lemp_1604/admin_screen.png [invite de connexion WordPress]

Mise à niveau de WordPress

À mesure que les mises à niveau de WordPress deviennent disponibles, vous ne pourrez pas les installer via l’interface avec les autorisations actuelles.

Les autorisations que nous avons sélectionnées ici sont conçues pour fournir un bon équilibre entre sécurité et convivialité pendant 99% des temps de mise à niveau. Cependant, ils sont un peu trop restrictifs pour que le logiciel applique automatiquement les mises à jour.

Lorsqu’une mise à jour devient disponible, reconnectez-vous à votre serveur en tant qu’utilisateur + sudo +. Donnez temporairement au processus de serveur Web l’accès à la racine de document complète:

sudo chown -R www-data /var/www/html

Maintenant, revenez sur le panneau d’administration de WordPress et appliquez la mise à jour.

Lorsque vous avez terminé, verrouillez à nouveau les autorisations pour des raisons de sécurité:

sudo chown -R  /var/www/html

Cela ne devrait être nécessaire que lorsque vous appliquez des mises à niveau à WordPress lui-même.

Conclusion

WordPress doit être installé et prêt à être utilisé! La prochaine étape courante consiste à choisir le paramètre de permalien pour vos publications (se trouvant dans + Paramètres> Permaliens +) ou à sélectionner un nouveau thème (dans + Apparence> Thèmes +). Si vous utilisez WordPress pour la première fois, explorez un peu l’interface pour vous familiariser avec votre nouveau CMS.