Comment installer WordPress avec LAMP 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 LAMP (Linux, Apache, 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 LAMP *: WordPress aura besoin d’un serveur Web, d’une base de données et de PHP pour fonctionner correctement. La configuration d’une pile LAMP (Linux, Apache, MySQL et PHP) répond à toutes ces exigences. Suivez https://www.digitalocean.com/community/tutorials/how-to-install-linux-apache-mysql-php-lamp-stack-on-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 Apache 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-apache-in-ubuntu-16-04 Un guide SSL auto-signé pour Apache] pour se 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;

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: Installer des extensions PHP supplémentaires

Lors de la configuration de notre pile LAMP, nous n’avions besoin que d’un minimum d’extensions pour que PHP puisse 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

Nous allons redémarrer Apache pour tirer parti de ces nouvelles extensions dans la section suivante. Si vous revenez ici pour installer des plugins supplémentaires, vous pouvez maintenant redémarrer Apache en tapant:

sudo systemctl restart apache2

Étape 3: Ajustez la configuration d’Apache pour autoriser les remplacements et les réécritures .htaccess

Nous allons ensuite apporter quelques modifications mineures à notre configuration Apache. Actuellement, l’utilisation des fichiers + .htaccess + est désactivée. WordPress et de nombreux plugins WordPress utilisent ces fichiers de manière intensive pour modifier le comportement du serveur Web dans l’annuaire.

De plus, nous activerons + mod_rewrite +, ce qui sera nécessaire pour que les permaliens de WordPress fonctionnent correctement.

Activer les substitutions .htaccess

Ouvrez le fichier de configuration Apache principal pour effectuer notre première modification:

sudo nano /etc/apache2/apache2.conf

Pour autoriser les fichiers + .htaccess +, nous devons définir la directive + AllowOverride + dans un bloc + Directory + pointant vers la racine de notre document. Vers le bas du fichier, ajoutez le bloc suivant:

/etc/apache2/apache2.conf

. . .





. . .

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

Activer le module de réécriture

Ensuite, nous pouvons activer + mod_rewrite + afin de pouvoir utiliser la fonctionnalité de permalien de WordPress:

sudo a2enmod rewrite

Activer les modifications

Avant de mettre en œuvre les modifications que nous avons apportées, vérifiez que nous n’avons commis aucune erreur de syntaxe:

sudo apache2ctl configtest

La sortie peut avoir un message qui ressemble à ceci:

OutputAH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
Syntax OK

Si vous souhaitez supprimer la ligne du haut, ajoutez simplement une directive + NomServeur + au fichier + / etc / apache2 / apache2.conf + pointant vers le domaine ou l’adresse IP de votre serveur. Ceci n’est cependant qu’un message et n’affecte pas les fonctionnalités de notre site. Tant que la sortie contient + Syntax OK +, vous êtes prêt à continuer.

Redémarrez Apache pour implémenter les modifications:

sudo systemctl restart apache2

É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 cela, nous pouvons ajouter un fichier factice + .htaccess + et définir ses autorisations pour qu’il soit disponible pour une utilisation ultérieure par WordPress.

Créez le fichier et définissez les autorisations en tapant:

touch /tmp/wordpress/.htaccess
chmod 660 /tmp/wordpress/.htaccess

Nous copierons également 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 les fichiers cachés (comme le fichier + .htaccess + que nous avons créé):

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 conserve la propriété du groupe.

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:

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_lamp_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_lamp_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_lamp_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_lamp_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.