{"id":43,"date":"2019-05-13T23:05:19","date_gmt":"2019-05-13T21:05:19","guid":{"rendered":"https:\/\/aietea.fr\/?p=43"},"modified":"2019-05-13T23:05:19","modified_gmt":"2019-05-13T21:05:19","slug":"parametrage-dapache-2-et-installation-dun-site-wordpress","status":"publish","type":"post","link":"https:\/\/aietea.fr\/index.php\/2019\/05\/13\/parametrage-dapache-2-et-installation-dun-site-wordpress\/","title":{"rendered":"PARAM\u00c9TRAGE D\u2019APACHE 2 ET INSTALLATION D\u2019UN SITE WORDPRESS"},"content":{"rendered":"\n<p><u>Configuration mat\u00e9rielle et logicielle utilis\u00e9e<\/u> :<br><\/p>\n\n\n\n<p>Raspberry Pi 3 Model B<br>Ubuntu Mate 16.04.2 pour Raspberry Pi<br>Apache 2<br>MySQL<br>PHP<br>WordPress 4.8<br><\/p>\n\n\n\n<p>Dans cet article nous verrons comment h\u00e9berger localement notre site web WordPress sur un syst\u00e8me Ubuntu. J\u2019ai choisi comme ordinateur un Raspberry Pi 3 Model B.<br><\/p>\n\n\n\n<p>La distribution Ubuntu Mate dispose d\u2019une image pr\u00eate pour ce type d\u2019architecture. Vous pouvez la t\u00e9l\u00e9charger via le lien en note 1 en bas de cet article.<br><\/p>\n\n\n\n<p><u>Premiers r\u00e9glages<\/u><br><\/p>\n\n\n\n<p>Pour installer cette image sur la carte Micro SD du Raspberry j\u2019utilise le logiciel Win32 Disk Imager (pour Windows) comme indiqu\u00e9 sur le site d\u2019Ubuntu Mate, note 2.<br><\/p>\n\n\n\n<p>Une fois l\u2019image install\u00e9e sur la carte vous pouvez alors d\u00e9marrer votre Raspberry et proc\u00e9der \u00e0 l\u2019installation d\u2019Ubuntu.<br><\/p>\n\n\n\n<p>Une fois install\u00e9 vous acc\u00e9dez au bureau d\u2019Ubuntu. Vous pouvez commencer par mettre \u00e0 jour la liste des paquets via la commande <strong>apt-get update<\/strong><br><\/p>\n\n\n\n<p>Et mettre \u00e0 jour les paquets avec <strong>apt-get dist-upgrade<\/strong><br><\/p>\n\n\n\n<p>Red\u00e9marrer votre ordinateur.<br><\/p>\n\n\n\n<p>Maintenant que notre syst\u00e8me est \u00e0 jour nous pouvons installer Apache 2, MySQL et PHP \u00e0 l\u2019aide d\u2019une seule commande :<br><\/p>\n\n\n\n<p><strong>apt-get install lamp-server^<\/strong><br><\/p>\n\n\n\n<p>Cette installation vous demandera de saisir un mot de passe pour le super utilisateur de MySQL.<br><\/p>\n\n\n\n<p>Maintenant que LAMP est install\u00e9 nous allons t\u00e9l\u00e9charger WordPress.<br><\/p>\n\n\n\n<p>Rendez-vous sur le site officiel de WordPress (note 3) afin d\u2019y t\u00e9l\u00e9charger l\u2019archive au format .tar.gz<br><\/p>\n\n\n\n<p>Extraire le contenu de cette archive avec <strong>tar -xzvf <\/strong>suivi par le nom de l\u2019archive.<br><\/p>\n\n\n\n<p>Cette archive contient un dossier wordpress. D\u00e9placer le contenu de celui-ci vers le r\u00e9pertoire qui constituera la racine de votre site web. Pour cet article nous travaillerons dans le r\u00e9pertoire \/home\/myuser\/www o\u00f9 myuser est le nom d\u2019utilisateur cr\u00e9\u00e9 \u00e0 l\u2019installation d\u2019Ubuntu.<br><\/p>\n\n\n\n<p><u>Param\u00e9trage d\u2019Apache 2<\/u><br><\/p>\n\n\n\n<p>Pour cette partie merci \u00e0 la vid\u00e9o de grafikart.fr (note 4)qui m\u2019a permis de mener \u00e0 bien cette configuration.<br><\/p>\n\n\n\n<p>Je commence tout d\u2019abord par cr\u00e9er un lien symbolique du dossier o\u00f9 se trouve mon site web vers le r\u00e9pertoire accessible par Apache2 :<br><\/p>\n\n\n\n<p><strong>ln -s \/home\/myuser\/www \/var\/www\/mywebsite.fr<\/strong> o\u00f9 mywebsite.fr est le nom de domaine.<br><\/p>\n\n\n\n<p>J\u2019\u00e9dite le fichier \/etc\/hosts et j\u2019y mets l\u2019adresse IP de l\u2019ordinateur qui r\u00e9pondra lorsqu\u2019un client demande l\u2019acc\u00e8s au site web :<br><\/p>\n\n\n\n<p><strong>192.168.1.2 mywebsite.fr<br>192.168.1.2 www.mywebsite.fr<\/strong><br><\/p>\n\n\n\n<p>Je cr\u00e9\u00e9 maintenant le Virtual Host dans le r\u00e9pertoire \/etc\/apache2\/sites-available que j\u2019appelle 001-mywebsite.conf<\/p>\n\n\n<p>&lt;VirtualHost *:80&gt;<br \/>\u00a0 ServerAdmin myaddressmail@free.fr<br \/>\u00a0 ServerName mywebsite.fr<br \/>\u00a0 ServerAlias *.mywebsite.fr<br \/>\u00a0 DocumentRoot \/var\/www\/mywebsite.fr<br \/>&lt;Directory \/var\/www\/mywebsite.fr&gt;<br \/>\u00a0 Options -Indexes +FollowSymLinks<br \/>\u00a0 AllowOverride All<br \/>&lt;\/Directory&gt;<br \/>ErrorLog \/home\/myuser\/logs\/error.log<br \/>&lt;\/VirtualHost&gt;<\/p>\n\n\n<p>La directive ErrorLog permet de rediriger les erreurs vers un fichier. Au pr\u00e9alable j\u2019ai donc cr\u00e9\u00e9 le dossiers logs dans lequel j\u2019ai plac\u00e9 le fichier le fichier error.log<br><\/p>\n\n\n\n<p>Pour activer notre site : <strong>a2ensite 001-mywebsite<\/strong><br><\/p>\n\n\n\n<p>Notre site sera alors pr\u00e9sent dans le r\u00e9pertoire sites-enabled de Apache 2.<br><\/p>\n\n\n\n<p>Je souhaite maintenant que la saisie de http:\/\/www.mywebsite.fr redirige vers http:\/\/mywebsite.fr<br><\/p>\n\n\n\n<p>Je cr\u00e9\u00e9 un fichier .htaccess que je place \u00e0 la racine de mon site web (r\u00e9pertoire www) :<\/p>\n\n\n<p><strong>RewriteEngine On<\/strong><br \/><strong>RewriteCond %{HTTP_POST} ^www.mywebsite.fr$ [NC]<\/strong><br \/><strong>RewriteRule ^(.*)$ http:\/\/mywebsite.fr\/$1 [R=301,L]<\/strong><\/p>\n\n\n<p>Comme on le voit cela fait appelle au module Rewrite, pour l\u2019activer : <strong>a2enmod rewrite<\/strong><br><\/p>\n\n\n\n<p>En annexe de cet article vous trouverez plusieurs commandes Apache 2 utiles ainsi que les explications qui vont avec.<br><\/p>\n\n\n\n<p><u>MySQL et param\u00e9trages pour le bon fonctionnement de WordPress<\/u><br><\/p>\n\n\n\n<p>Ici je me suis aid\u00e9 d\u2019un article du site digitalocean.com (note 5) qui explique clairement la mani\u00e8re de pr\u00e9parer son syst\u00e8me afin d\u2019y h\u00e9berger son site WordPress.<br><\/p>\n\n\n\n<p>Nous allons tout d\u2019abord nous connecter \u00e0 MySQL afin de cr\u00e9er notre base de donn\u00e9es :<br> <u>mysql -u root -p<\/u> Cette commande permet de se connecter en tant que root. Le mot de passe vous sera demand\u00e9.<br><\/p>\n\n\n\n<p>Cr\u00e9ons notre base de donn\u00e9es :<br> <u>CREATE DATABASE mydb DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;<\/u><br> o\u00f9 mydb correspond au nom que vous donnez \u00e0 la base de donn\u00e9es.<br> utf8 correspond au codage des caract\u00e8res.<br><\/p>\n\n\n\n<p>Nous cr\u00e9ons maintenant un nouvel utilisateur qui op\u00e9rera sur cette base de donn\u00e9es :<br> <strong>GRANT ALL ON mydb.* TO \u2018wpuser\u2019@\u2019localhost\u2019 IDENTIFIED BY \u2018123456789\u2019;<\/strong> o\u00f9 wpuser correspond \u00e0 l\u2019utilisateur qui op\u00e9rera sur cette base.<br><\/p>\n\n\n\n<p>Evidemment choisissez un mot de passe plus fort que celui ci-dessus!<br><\/p>\n\n\n\n<p>Puis <strong>FLUSH PRIVILEGES; <\/strong>pour prendre en compte imm\u00e9diatement les nouvelles informations.<br><\/p>\n\n\n\n<p>Et enfin nous quittons MySQL : <strong>EXIT;<\/strong><br><\/p>\n\n\n\n<p>Afin d\u2019agr\u00e9menter WordPress en fonctionnalit\u00e9s celui-ci utilise un syst\u00e8me de plugins qui n\u00e9cessitent l\u2019installation d\u2019extensions PHP. <\/p>\n\n\n\n<p>Pour installer ces extensions :<br> <strong>apt-get install php-curl php-gd php-mbstring php-mcrypt php-xml php-xmlrpc<\/strong><br><\/p>\n\n\n\n<p>Red\u00e9marrons Apache 2 : <strong>service apache2 restart<\/strong><br><\/p>\n\n\n\n<p><u>R\u00e9glages dans le dossier de notre site web<\/u><br><\/p>\n\n\n\n<p>Attribuons les droits d\u2019acc\u00e8s appropri\u00e9s au fichier .htaccess cr\u00e9\u00e9 pr\u00e9c\u00e9demment :<br> <strong>chmod 660 \/home\/myuser\/www\/.htaccess<\/strong> donne les droits d\u2019\u00e9criture et de lecture au propri\u00e9taire et au groupe du fichier.<br><\/p>\n\n\n\n<p>Le fichier wp-config-sample.php est le mod\u00e8le de fichier qui nous sert \u00e0 cr\u00e9er le fichier wp-config.php :<br> <strong>cp wp-config-sample.php wp-config.php<\/strong><br><\/p>\n\n\n\n<p>Cr\u00e9ons maintenant le dossier upgrade qui sera utilis\u00e9 par WordPress pour les mises \u00e0 jour :<br> <strong>mkdir \/home\/myuser\/www\/wp-content\/upgrade<\/strong><br><\/p>\n\n\n\n<p>Nous avons d\u00e9sormais besoin d\u2019ajuster les droits d\u2019acc\u00e8s ainsi que de d\u00e9finir les propri\u00e9taires des dossiers WordPress. En effet sans cela divers probl\u00e8mes peuvent se produire :<br> \u2013 Impossibilit\u00e9 d\u2019installer un nouveau th\u00e8me via l\u2019interface de WordPress,<br> \u2013 Impossibilit\u00e9 d\u2019ajouter des images,<br> \u2013 etc.<br><\/p>\n\n\n\n<p>Attribuons myuser comme utilisateur et www-data comme groupe sur l\u2019ensemble des dossiers :<br> <strong>sudo chown -R myuser:www-data \/home\/myuser\/www<\/strong><br> www-data est en fait le groupe du serveur web Apache 2.<br><\/p>\n\n\n\n<p>La commande suivante va nous permettre qu\u2019\u00e0 chaque fichier cr\u00e9\u00e9 dans www le fichier h\u00e9ritera du groupe du r\u00e9pertoire parent, autrement dit le groupe www-data :<br> <strong>sudo find \/home\/myuser\/www -type d -exec chmod g+s {} \\;<\/strong><br><\/p>\n\n\n\n<p>Donnons maintenant au groupe www-data les droits d\u2019\u00e9criture sur le r\u00e9pertoire wp-content utilis\u00e9 notamment pour les th\u00e8mes et plugins :<br> <strong>sudo chmod g+w \/home\/myuser\/www\/wp-content<\/strong><br><\/p>\n\n\n\n<p>Donnons au groupe www-data l\u2019acc\u00e8s en \u00e9criture aux deux dossiers suivants ainsi qu\u2019\u00e0 tous leurs sous-dossiers :<br> <strong>sudo chmod -R g+w \/home\/myuser\/www\/wp-content\/themes<br> sudo chmod -R g+w \/home\/myuser\/www\/wp-content\/plugins<\/strong><br><\/p>\n\n\n\n<p>Pour finir revenons au fichier wp-config.php :<br><\/p>\n\n\n\n<p>Les lignes <strong>define(\u2018AUTH_KEY\u2019,<\/strong> \u2026 \u00e0 <strong>define(\u2018NONCE_SALT\u2019, <\/strong>\u2026 servent \u00e0 s\u00e9curiser l\u2019installation de WordPress.<br><\/p>\n\n\n\n<p>WordPress fournit un g\u00e9n\u00e9rateur de mot de passe qui vous permettra de compl\u00e9ter cette partie du fichier :<br> <strong>curl -s https:\/\/api.wordpress.org\/secret-key\/1.1\/salt\/<\/strong><br><\/p>\n\n\n\n<p>Il ne reste plus qu\u2019\u00e0 copier-coller le r\u00e9sultat obtenu dans le fichier wp-config.php<br><\/p>\n\n\n\n<p>Toujours dans wp-config.php int\u00e9ressons nous maintenant \u00e0 la partie :<\/p>\n\n\n<p><strong>define(\u2018DB_NAME\u2019, \u2018mydb\u2019);<\/strong><br \/><strong>define(\u2018DB_USER\u2019, \u2018wpuser\u2019);<\/strong><br \/><strong>define(\u2018DB_PASSWORD\u2019, \u2018123456789\u2019);<\/strong><\/p>\n\n\n<p>Nous avons vu plus haut \u00e0 quoi correspond ces 3 valeurs.<br><\/p>\n\n\n\n<p>Enfin vous pouvez ajouter en dessous cette ligne :<br><strong> define(\u2018FS_METHOD\u2019, \u2018direct\u2019);<\/strong><br><\/p>\n\n\n\n<p>Cette directive permet \u00e0 WordPress de r\u00e9aliser certaines actions directement.<br><\/p>\n\n\n\n<p>Dans mon cas et sans cette ligne, alors que je voulais installer un nouveau th\u00e8me, WordPress m\u2019a demand\u00e9 de r\u00e9aliser cette op\u00e9ration via FTP.<br><\/p>\n\n\n\n<p>Gr\u00e2ce aux droits que nous avons d\u00e9fini pr\u00e9c\u00e9demment et \u00e0 l\u2019ajout de cette ligne cette question ne se posera plus.<br><\/p>\n\n\n\n<p><u>Premier d\u00e9marrage \u00e0 l\u2019aide du navigateur web<\/u><br><\/p>\n\n\n\n<p>Dans votre navigateur web favori entrer dans la barre d\u2019adresse : <strong>http:\/\/mywebsite.fr<\/strong><br> L\u2019installation de WordPress vous demandera :<br><\/p>\n\n\n\n<p>la langue souhait\u00e9e,<br><\/p>\n\n\n\n<p>un nom pour votre site web,<br><\/p>\n\n\n\n<p>un nom d\u2019utilisateur et un mot de passe (utilis\u00e9s pour acc\u00e9der \u00e0 l\u2019interface d\u2019administration de WordPress),<br><\/p>\n\n\n\n<p>votre adresse mail,<br><\/p>\n\n\n\n<p>si vous souhaitez que les moteurs de recherche indexent ou non votre site web.<br><\/p>\n\n\n\n<p>Et voil\u00e0 ! Votre site web est pr\u00eat.<br><\/p>\n\n\n\n<p>Si vous souhaitez mettre \u00e0 jour WordPress, le site digitalocean.com propose de mettre temporairement www-data comme propri\u00e9taire sur l\u2019ensemble du r\u00e9pertoire www le temps de l\u2019op\u00e9ration :<br><\/p>\n\n\n\n<p><strong>sudo chown -R www-data \/home\/myuser\/www<\/strong><br><\/p>\n\n\n\n<p>Cela afin d\u2019\u00e9viter des erreurs lors de la mise \u00e0 jour.<br><\/p>\n\n\n\n<p>Une fois la mise \u00e0 jour faite remettez myuser comme propri\u00e9taire de l\u2019ensemble du r\u00e9pertoire :<br><\/p>\n\n\n\n<p><strong>sudo chown -R myuser \/home\/myuser\/www<\/strong><\/p>\n\n\n\n<p><u>Liens<\/u><br> 1 \u2013 https:\/\/ubuntu-mate.org\/download\/<br> 2 \u2013 https:\/\/ubuntu-mate.org\/raspberry-pi\/<br> 3 \u2013 https:\/\/fr.wordpress.org<br> 4 \u2013 https:\/\/www.youtube.com\/watch?v=arVwa7jvp5M<br> 5 \u2013 www.digitalocean.com\/community\/tutorials\/how-to-install-wordpress-with-lamp-on-ubuntu-16-04<br><\/p>\n\n\n\n<p><u>Commandes utiles<\/u><br><\/p>\n\n\n\n<p><strong>service apache2 reload<\/strong> Pour recharger la configuration d\u2019Apache 2.<br><\/p>\n\n\n\n<p><strong>service apache2 restart<\/strong> Pour red\u00e9marrer le serveur web Apache 2.<br><\/p>\n\n\n\n<p><strong>\/var\/log\/apache2\/error.log<\/strong> O\u00f9 nous retrouvons les erreurs li\u00e9es \u00e0 Apache 2.<br><\/p>\n\n\n\n<p><strong>\/usr\/sbin\/apache2ctl configtest <\/strong>Commande qui v\u00e9rifie la bonne configuration d\u2019Apache 2.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Configuration mat\u00e9rielle et logicielle utilis\u00e9e : Raspberry Pi 3 Model BUbuntu Mate 16.04.2 pour Raspberry PiApache 2MySQLPHPWordPress 4.8 Dans cet article nous verrons comment h\u00e9berger localement notre site web WordPress sur un syst\u00e8me Ubuntu. J\u2019ai choisi comme ordinateur un Raspberry Pi 3 Model B. La distribution Ubuntu Mate dispose d\u2019une image pr\u00eate pour ce type &hellip; <a href=\"https:\/\/aietea.fr\/index.php\/2019\/05\/13\/parametrage-dapache-2-et-installation-dun-site-wordpress\/\" class=\"more-link\">Continuer la lecture de <span class=\"screen-reader-text\">PARAM\u00c9TRAGE D\u2019APACHE 2 ET INSTALLATION D\u2019UN SITE WORDPRESS<\/span>  <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[],"class_list":["post-43","post","type-post","status-publish","format-standard","hentry","category-systemes-reseaux"],"_links":{"self":[{"href":"https:\/\/aietea.fr\/index.php\/wp-json\/wp\/v2\/posts\/43","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/aietea.fr\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/aietea.fr\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/aietea.fr\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/aietea.fr\/index.php\/wp-json\/wp\/v2\/comments?post=43"}],"version-history":[{"count":2,"href":"https:\/\/aietea.fr\/index.php\/wp-json\/wp\/v2\/posts\/43\/revisions"}],"predecessor-version":[{"id":45,"href":"https:\/\/aietea.fr\/index.php\/wp-json\/wp\/v2\/posts\/43\/revisions\/45"}],"wp:attachment":[{"href":"https:\/\/aietea.fr\/index.php\/wp-json\/wp\/v2\/media?parent=43"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/aietea.fr\/index.php\/wp-json\/wp\/v2\/categories?post=43"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/aietea.fr\/index.php\/wp-json\/wp\/v2\/tags?post=43"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}