[CMS] Installation d’un WordPress

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

$ sudo yum install httpd mysql-server php php-mysqli -y
$ sudo yum install mod_ssl

install-lamp

Une fois installé, faire un vhost du fqdn

$ sudo vim /etc/httpd/conf.d/monsite.domaine.local
<VirtualHost *:80>
DocumentRoot /opt/wordpress <-- par défaut /var/www
ServerName monsite.domaine.local <-- nom du site
</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

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

$ sudo vim /etc/httpd/conf.d/phpMyAdmin.conf
<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 <-- pour autoriser le réseau local
</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 <-- pour autoriser le réseau local
Allow from ::1
</IfModule>
</Directory>

Télécharger la source WordPress, dézipper, déplacer

$ wget https://fr.wordpress.org/wordpress-4.6.1-fr_FR.tar.gz
$ tar zxvf wordpress-4.6.1-fr_FR.tar.gz
$ sudo mv wordpress /opt/wordpress

Mettre les bons droits sur le repertoire wordpress et son contenu

$ 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

$ sudo service httpd start
$ sudo chkconfig httpd on
$ 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.

$ sudo mysql_secure_installation
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): par défaut il n'y a pas de mdp
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] répondre Y et créer un mdp
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] Répondre Y pour supprimer les utilisateurs anonymes
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] Répondre Y pour désactiver la connexion root a distance
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] Répondre Y pour supprimer la base de test
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] Rependre Y pour recharger les privilèges
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

$ sudo mysql -u root -p  <-- -u pour user et -p pour password
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> <-- le prompt de mysql

Créer la base de donnée

mysql> CREATE DATABASE nomdeladb COLLATE UTF8_general_ci;
Query OK, 1 row affected (0.00 sec)

Créer l’utilisateur et le mot de passe

mysql> CREATE USER 'nomdelutilisateur' identified by 'motdepassedelutilisateur';
Query OK, 0 rows affected (0.01 sec)

donner les droits a l’utilisateur sur la base de donnees

mysql> GRANT ALL PRIVILEGES ON nomdeladb.* to 'nomdelutilisateur'@localhost identified by 'motdepassedelutilisateur';
Query OK, 0 rows affected (0.00 sec)

Faire CTRL+C pour quitter

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

$ sudo vim wp-config.php
<?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', 'votre_nom_de_bdd');  <-- le nom de la db préalablement crée

/** Utilisateur de la base de données MySQL. */
define('DB_USER', 'votre_utilisateur_de_bdd');  <-- le nom du user préalablement crée

/** Mot de passe de la base de données MySQL. */
define('DB_PASSWORD', 'votre_mdp_de_bdd');  <-- le mot de passe préalablement crée

/** Adresse de l’hébergement MySQL. */
define('DB_HOST', 'localhost');  <-- la base de données, localhost pour du local, sql.free.fr chez le le FAI Free par exemple

/** 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

$ sudo service httpd restart
$ sudo service mysqld restart

Puis on se connecte sur l’interface web http://fqdn

wordpress1

wordpress2

——————

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

phpmyadmin-2 phpmyadmin
penser a supprimer les anciennes tables sinon il apparaitra l’erreur

"#1062 - Duplicate entry '1' for key 'PRIMARY'"


En ligne de commande
pour la sauvegarde

$ sudo mysqldump --user=nomdelutilisateur --password=motdepassedelutilisateur --databases nomdeladb > fichierdestination.sql

restauration de Mysql

$ sudo mysql --user=nomdelutilisateur --password=motdepassedelutilisateur nomdeladb < fichiersource.sql

 

 

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

:%s/adresseanciensite/adressenouveausite/g

 

pour rappel

:  <-- passer en mode fonction
%  <-- la variable correspond a tous les mots trouvés
s  <-- la commande
/  <-- sont des délimiteurs de texte. Si votre texte contient des /, il faudra les échapper avec un \
adressenouveausite  <-- texte a chercher et a remplacer
adressenouveauite  <-- texte de substitution
g  <-- permet de faire une recherche globale et donc de remplacer toutes les occurrences
No votes yet.
Please wait...

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.