Installation de WordPress
Version de l’OS: Centos 6.8 (minimal version)
Version d’Openvpn: 4.7.3
Pré-requis
Voir l’article Préparation d’une machine Centos 6.x
Installer Apache/Mysql/Php + extension phpmysql
1 |
$ sudo yum install httpd mysql-server php php-mysqli -y |
1 |
$ sudo yum install mod_ssl |
Une fois installé, faire un vhost du fqdn
1 |
$ sudo vim /etc/httpd/conf.d/monsite.domaine.local |
1 2 3 4 |
<VirtualHost *:80> DocumentRoot /opt/wordpress <span style="color: #ff0000;"><-- par défaut /var/www</span> ServerName monsite.domaine.local <span style="color: #ff0000;"><-- nom du site</span> </VirtualHost> |
Installer phpmyadmin, pas obligatoire mais ça reste une interface graphique agréable pour gérer les tables de mysql, disponible dans le repo epel
1 2 3 |
$ wget http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm $ sudo rpm -ivh epel-release* $ sudo yum install phpmyadmin |
Éditer le fichier de conf phpMyAdmin et ajouter l’ip ou le réseau.
1 |
$ sudo vim /etc/httpd/conf.d/phpMyAdmin.conf |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
<Directory /usr/share/phpMyAdmin/> AddDefaultCharset UTF-8 <IfModule mod_authz_core.c> # Apache 2.4 <RequireAny> Require ip 127.0.0.1 Require ip ::1 Require ip 192.168.3.0/24 <span style="color: #ff0000;"><-- pour autoriser le réseau local</span> </RequireAny> </IfModule> <IfModule !mod_authz_core.c> # Apache 2.2 Order Deny,Allow Deny from All Allow from 127.0.0.1 Allow from 192.168.3.0/24 <span style="color: #ff0000;"><-- pour autoriser le réseau local</span> Allow from ::1 </IfModule> </Directory> |
Télécharger la source WordPress, dézipper, déplacer
1 |
$ wget https://fr.wordpress.org/wordpress-4.6.1-fr_FR.tar.gz |
1 |
$ tar zxvf wordpress-4.6.1-fr_FR.tar.gz |
1 |
$ sudo mv wordpress /opt/wordpress |
Mettre les bons droits sur le repertoire wordpress et son contenu
1 2 3 4 5 |
$ cd /opt $ sudo chown apache:apache wordpress/ -R $ sudo find /var/www -type d -exec chmod 755 {} \; $ sudo find /var/www -type f -exec chmod 644 {} \; |
Démarrer les services Apache et Mysql et les mettre en auto
1 2 |
$ sudo service httpd start $ sudo chkconfig httpd on |
1 2 |
$ sudo service mysqld start $ sudo chkconfig mysqld on |
Configuration de Mysql, il est vivement recommandé de lancer le script secure installation, cela permet de définir un mot de passe root, de supprimer les utilisateurs anonymes et la base de test.
1 |
$ sudo mysql_secure_installation |
1 2 3 4 5 6 7 8 |
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MySQL SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY! In order to log into MySQL to secure it, we'll need the current password for the root user. If you've just installed MySQL, and you haven't set the root password yet, the password will be blank, so you should just press enter here. Enter current password for root (enter for none): <span style="color: #ff0000;">par défaut il n'y a pas de mdp</span> |
1 2 3 4 5 6 |
Setting the root password ensures that nobody can log into the MySQL root user without the proper authorisation. You already have a root password set, so you can safely answer 'n'. Change the root password? [Y/n] <span style="color: #ff0000;">répondre Y et créer un mdp</span> |
1 2 3 4 5 6 7 |
By default, a MySQL installation has an anonymous user, allowing anyone to log into MySQL without having to have a user account created for them. This is intended only for testing, and to make the installation go a bit smoother. You should remove them before moving into a production environment. Remove anonymous users? [Y/n] <span style="color: #ff0000;">Répondre Y pour supprimer les utilisateurs anonymes</span> |
1 2 3 4 |
Normally, root should only be allowed to connect from 'localhost'. This ensures that someone cannot guess at the root password from the network. Disallow root login remotely? [Y/n] <span style="color: #ff0000;">Répondre Y pour désactiver la connexion root a distance</span> |
1 2 3 4 5 |
By default, MySQL comes with a database named 'test' that anyone can access. This is also intended only for testing, and should be removed before moving into a production environment. Remove test database and access to it? [Y/n] <span style="color: #ff0000;">Répondre Y pour supprimer la base de test</span> |
1 2 3 4 |
Reloading the privilege tables will ensure that all changes made so far will take effect immediately. Reload privilege tables now? [Y/n] <span style="color: #ff0000;">Rependre Y pour recharger les privilèges</span> |
1 2 3 4 5 |
Cleaning up... All done! If you've completed all of the above steps, your MySQL installation should now be secure. Thanks for using MySQL! |
Ensuite il faut créer un utilisateur et une db pour WordPress
1 |
$ sudo mysql -u root -p <span style="color: #ff0000;"> <-- -u pour user et -p pour password</span> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 24 Server version: 5.1.73 Source distribution Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> <span style="color: #ff0000;"><-- le prompt de mysql</span> |
Créer la base de donnée
1 2 |
mysql> CREATE DATABASE <span style="color: #ff0000;">nomdeladb</span> COLLATE UTF8_general_ci; Query OK, 1 row affected (0.00 sec) |
Créer l’utilisateur et le mot de passe
1 2 |
mysql> CREATE USER '<span style="color: #ff0000;">nomdelutilisateur</span>' identified by '<span style="color: #ff0000;">motdepassedelutilisateur</span>'; Query OK, 0 rows affected (0.01 sec) |
donner les droits a l’utilisateur sur la base de donnees
1 2 |
mysql> GRANT ALL PRIVILEGES ON <span style="color: #ff0000;">nomdeladb</span>.* to '<span style="color: #ff0000;">nomdelutilisateur</span>'@localhost identified by '<span style="color: #ff0000;">motdepassedelutilisateur</span>'; Query OK, 0 rows affected (0.00 sec) |
Faire CTRL+C pour quitter
1 |
mysql> Bye |
Aller dans le répertoire de WordPress, renommer le fichier wp-config-sample.php en wp-config.php
Éditer le et modifier les valeurs suivantes
1 |
$ sudo vim wp-config.php |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
<?php /** * La configuration de base de votre installation WordPress. * * Ce fichier contient les réglages de configuration suivants : réglages MySQL, * préfixe de table, clés secrètes, langue utilisée, et ABSPATH. * Vous pouvez en savoir plus à leur sujet en allant sur * {@link http://codex.wordpress.org/fr:Modifier_wp-config.php Modifier * wp-config.php}. C’est votre hébergeur qui doit vous donner vos * codes MySQL. * * Ce fichier est utilisé par le script de création de wp-config.php pendant * le processus d’installation. Vous n’avez pas à utiliser le site web, vous * pouvez simplement renommer ce fichier en "wp-config.php" et remplir les * valeurs. * * @package WordPress */ // ** Réglages MySQL - Votre hébergeur doit vous fournir ces informations. ** // /** Nom de la base de données de WordPress. */ define('DB_NAME', '<span style="color: #ff0000;">votre_nom_de_bdd</span>'); <span style="color: #ff0000;"><-- le nom de la db préalablement crée</span> /** Utilisateur de la base de données MySQL. */ define('DB_USER', '<span style="color: #ff0000;">votre_utilisateur_de_bdd</span>'); <span style="color: #ff0000;"><-- le nom du user préalablement crée</span> /** Mot de passe de la base de données MySQL. */ define('DB_PASSWORD', '<span style="color: #ff0000;">votre_mdp_de_bdd</span>'); <span style="color: #ff0000;"><-- le mot de passe préalablement crée</span> /** Adresse de l’hébergement MySQL. */ define('DB_HOST', '<span style="color: #ff0000;">localhost</span>'); <span style="color: #ff0000;"><-- la base de données, localhost pour du local, sql.free.fr chez le le FAI Free par exemple</span> /** Jeu de caractères à utiliser par la base de données lors de la création des tables. */ define('DB_CHARSET', 'utf8'); /** Type de collation de la base de données. * N’y touchez que si vous savez ce que vous faites. */ define('DB_COLLATE', ''); |
On restart le demon httpd et mysqld et on se connecte
1 2 |
$ sudo service httpd restart $ sudo service mysqld restart |
Puis on se connecte sur l’interface web http://fqdn
——————
En cas de migration vers un autre FAI, en local ou en ligne
Faire une sauvegarde de la db et du repertoire WordPress
Pour la restauration du dossier WordPress il suffit de renommer l’actuel et de remplacer le dossier par celui sauvegarder.
la restauration de la db peux se faire en ligne de commande ou par phpmyadmin
penser a supprimer les anciennes tables sinon il apparaitra l’erreur
1 |
"#1062 - Duplicate entry '1' for key 'PRIMARY'" |
En ligne de commande
pour la sauvegarde
1 |
$ sudo mysqldump --user=<span style="color: #ff0000;">nomdelutilisateur</span> --password=<span style="color: #ff0000;">motdepassedelutilisateur</span> --databases <span style="color: #ff0000;">nomdeladb</span> > <span style="color: #ff0000;">fichierdestination.sql</span> |
restauration de Mysql
1 |
$ sudo mysql --user=<span style="color: #ff0000;">nomdelutilisateur</span> --password=<span style="color: #ff0000;">motdepassedelutilisateur</span> <span style="color: #ff0000;">nomdeladb</span> < <span style="color: #ff0000;">fichiersource.sql</span> |
Suite a la migration de mon WordPress chez un autre FAI, j’ai edité sous vi la sauvegarde .sql et remplacé toutes les entrées de mon ndd par le nouveau. pour cela j’utilise les arguments ci dessous
1 |
:%s/adresseanciensite/adressenouveausite/g |
pour rappel
1 2 3 4 5 6 7 8 9 |
: <span style="color: #ff0000;"><-- passer en mode fonction</span> % <span style="color: #ff0000;"><-- la variable correspond a tous les mots trouvés</span> s <span style="color: #ff0000;"><-- la commande</span> / <span style="color: #ff0000;"><-- sont des délimiteurs de texte. Si votre texte contient des /, il faudra les échapper avec un \</span> adressenouveausite <span style="color: #ff0000;"><-- texte a chercher et a remplacer</span> adressenouveauite <span style="color: #ff0000;"><-- texte de substitution</span> g <span style="color: #ff0000;"><-- permet de faire une recherche globale et donc de remplacer toutes les occurrences </span> |