#1 Le 12/07/2022, à 00:24
- kholo
[tuto]Installation Apache MariaDB PHP => LAMPP (+ vidéo) - 2022 07
Comme, je le fais chaque fois, commencer par le début : la doc de LAMP
mais j'ai aussi regardé de ce côté là
d'ailleurs, j'ai plus suivi le second, sans doute plus directif...
mais, du coup, j'ai conservé dans la vidéo de mes tests les paquets avec le numéro de version ainsi que le nombre de plugins plus important que la doc.
j'en ai donc fait une vidéo
et une seconde plus propre tel qu'est ce tuto à ce jour
L'installation complète me prend une demi heure...
NB : à faire et refaire des installations en faisant évoluer ce tutoriel, je vois encore plus à quel point il est simple de trop en mettre ou de ne pas assez en mettre car certaines dépendances peuvent s'ajouter seules au détour d'un ajout apt... et rien ne dit qu'une mise à jour future de Ubuntu ne rendra pas ma procédure incomplète... donc, je laisse le maximum d'informations en espérant que cela serve si il devait manquer une dépendance. Il va de soi qu'on cherchera toujours à mettre le minimum de dépendances et d'éviter d'en mettre des inutiles de façon à réduire les angles d'attaques si on ouvre le serveur à internet.
Pour faire complet, j'ai laisser le plus d'infos possible ; tout ce qui est dans les cadres blancs n'est pas à faire mais sert juste d'information
IP fixe pour plus tard
Il serait bon de commencer par mettre une IP fixe, mais j'ai décidé de faire simple et ouvert...
ça pourra être fait plus tard...Choix du dossier
NB : par défaut je reste dans /var/www/html/. Rien n’empêchera plus tard, de remplacer ce dossier par un lien vers un autre endroit ; que ce soit un dossier ou un point de montage vers une autre partition.
la doc fait un tire groupé de l'installation
sudo apt install apache2 php libapache2-mod-php mariadb-server php-mysql
puis
sudo apt install php-curl php-gd php-intl php-json php-mbstring php-xml php-zip
mais je préfère une installation point par point et bien montrer les étapes...
installation d'apache2
sudo apt install -y apache2 apache2-utils
et on peut tout de suite vérifier que Apache2 fonctionne dans Firefox
http://localhost/
ou
http://127.0.0.1/
installation de php
je parlais avant de mettre le minimum, voilà qui doit suffire
sudo apt install php libapache2-mod-php
je met la version que j'ai suivi dans la vidéo avec les fichiers versionnés
avec Ubuntu, il y a des méta paquets ou des génériques
suite à rectification de Bruno,
pour la démonstration, je me contenterais du minimum requis
mais on peut mettre tout ou partie de cette lignesudo apt install php libapache2-mod-php php-mysql php-common php-cli php-common php-json php-opcache php-readline
pour ajouter à php
sudo apt install php-curl php-gd php-intl php-json php-mbstring php-xml php-zip
NB : je me rend compte que j'ai pu faire fonctionner DokuWiki sans php-mysql, mais on peut éventuellement l'installer
sudo apt install php-mysql
installation de mariadb
sudo apt install mariadb-server mariadb-client
puis, à refaire souvent... donner www-data propriétaire et groupe de tout ce qui se trouve dans /var/www/htlm
sudo chown www-data:www-data /var/www/html/ -R
on peut changer la configuration de mariadb avec
NON, je l'ai mis dans la vidéo, mais c'est mieux sans
explications icisudo mysql_secure_installation
et mettre des mots de passe celui de root n'est pas obligatoire...
en vérification, je me connecte :
sudo mariadb -u root voir ce post un peu plus loin
comme l'explique Bruno, si je me connecte sans avoir touché à la configuration de mariadb
kholo@SRV-HTML:~$ mariadb -u root ERROR 1698 (28000): Access denied for user 'root'@'localhost' kholo@SRV-HTML:~$ mysql -u root ERROR 1698 (28000): Access denied for user 'root'@'localhost' kholo@SRV-HTML:~$
... et donc :
sudo mysql
on arrive alors sur le prompt de Mariadb (sql)
kholo@SRV-HTML:~$ sudo mysql
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 38
Server version: 10.3.34-MariaDB-0ubuntu0.20.04.1 Ubuntu 20.04
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]>
et je sort avec
exit ;
ce qui donne ça :
MariaDB [(none)]> exit;
Bye
On va tester que php fonctionne
depuis le dossier html
cd /var/www/html
on se crée une page en php
echo "<?php phpinfo(); ?>" | sudo tee phpinfo.php
et on lui change de propriétaire et groupe
sudo chown www-data:www-data phpinfo.php
elle pourra éventuellement être déplacée avec d'autres pages dans un dossier à part avec un vhost spécifique plus tard
on pourra ajouter un index.html personnalisé, alors on garde ailleurs celui par défaut.
sudo mv index.html apache2_index.html
il pourra justement aller avec le phpinfo
on redémarre apache2
sudo systemctl restart apache2
ensuite, pour vérifier que tout va bien, j'ouvre avec Firefox
http://localhost/
http://localhost/apache2_index.html
http://localhost/phpinfo.php
Dernière modification par kholo (Le 12/07/2022, à 19:25)
Hors ligne
#2 Le 12/07/2022, à 00:29
- kholo
Re : [tuto]Installation Apache MariaDB PHP => LAMPP (+ vidéo) - 2022 07
installation de dokuwiki
https://www.dokuwiki.org/install
https://www.dokuwiki.org/install:ubuntu
pas pour être suivi mais pour en garder une trace
allez directement en dessous à "OPTION POUR PLUSIEURS SITES"
juste pour n'avoir qu'un site à la racine : /var/www/dokuwiki
en croisement avec l'autre option on peut mieux comprendre comment fonctionne les vhosts
mais je préfère l'option 2 même pour un seul sitecd /var/www
on télécharge la dernière version de docuwiki
sudo wget https://download.dokuwiki.org/src/dokuwiki/dokuwiki-stable.tgz
on décompresse sur place
sudo tar xvf dokuwiki-stable.tgz
le dossier porte le numéro de la version alors on simplifie
sudo mv dokuwiki-*/ dokuwiki
on supprime le fichier compressé
sudo rm dokuwiki-stable.tgz
on donne les bons droits au dossier où se trouve docuwiki
sudo chown -R www-data:www-data /var/www/dokuwikiajouter dokuwiki aux sites reconnus
cd /etc/apache2/sites-available
on crée un nouveau fichier pour la déclaration de notre site docuwiki
sudo touch apache2-dokuwiki.conf
on l'édite
sudo nano apache2-dokuwiki.conf
pour y mettre
<VirtualHost 127.0.0.1> DocumentRoot /var/www/dokuwiki ServerName localhost </VirtualHost>
on l'autorise
sudo a2ensite apache2-dokuwiki
puis le fichier config de apache2
sudo nano /etc/apache2/apache2.conf
dans le dossier /var/www/ remplacer
AllowOverride None
par
AllowOverride All
puis on redémarre le service apache2
sudo systemctl reload apache2
vérification dans Firefox
127.0.0.1/install.phpParamétrer le site puis supprimer le fichier de configuration... ou le déplacer
sudo rm /var/www/dokuwiki/install.php
OPTION POUR PLUSIEURS SITES
on va dans le dossier ou mettre un nouveau site...
pour l'instant on va rester générique et garder html
cd /var/www/html/
on y télécharge la dernière version de docuwiki
sudo wget https://download.dokuwiki.org/src/dokuwiki/dokuwiki-stable.tgz
on décompresse sur place
sudo tar xvf dokuwiki-stable.tgz
le dossier porte le numéro de la version alors on change pour le reconnaître plus tard
sudo mv dokuwiki-*/ site001
j'ai pris site001 pour cet exemple
on change les droits pour www-data
sudo chown -R www-data:www-data /var/www/html/site001
ajouter site001 aux sites reconnus
en créant un fichier spécifique à ce site
cd /etc/apache2/sites-available
sudo touch site001-dokuwiki.conf
on édite le nouveau fichier pour la déclaration de notre site docuwiki site001
sudo nano site001-dokuwiki.conf
ce site pourra être appelé depuis LOCAL/site001
<VirtualHost 127.0.0.1/site001>
DocumentRoot /var/www/html/site001
ServerName localhost/site001
</VirtualHost>
on l'autorise
sudo a2ensite site001-dokuwiki
faire des essaies sans cette partie pour le moment mais je pourrait peut être y revenir plus tard
et je le met puisque je l'ai fait dans la vidéo mais j'ai refait une installation sans et tout fonctionne bien
modifier le fichier config de apache2sudo nano /etc/apache2/apache2.conf
à ajouter
<Directory /var/www/html/site001> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory>
puis on redémarre le service apache2
sudo systemctl reload apache2
on va sur le fichier d'installation du wiki depuis Firefox
127.0.0.1/site001/install.php
Il faudra paramétrer le site, commencer par mettre cette page en français (c'est mieux) => l'option est en haut à droite
puis
créer un super utilisateur
lui mettre un mot de passe fort de préférence
limiter ou non l'accès aux utilisateurs (wiki publique ou privé)
et le type de licence par défaut des documents que l'on compte y mettre
on retourne ensuite dans le terminal pour supprimer le fichier de configuration... ou le déplacer
sudo rm /var/www/html/site001/install.php
et on aura accès à notre site depuis sa racine
127.0.0.1/site001/
il faudra ensuite voir les droits de certains dossiers du site pour le sécuriser un peu plus.
un peu de lecture voir "Web Access Security"
Dernière modification par kholo (Le 12/07/2022, à 17:25)
Hors ligne
#3 Le 12/07/2022, à 01:21
- krodelabestiole
Re : [tuto]Installation Apache MariaDB PHP => LAMPP (+ vidéo) - 2022 07
ou alors on peut lancer un container dokuwiki en une ligne de commande
docker run -d \
--name=dokuwiki \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=Europe/Paris \
-p 80:80 \
-v ./config:/config \
--restart unless-stopped \
lscr.io/linuxserver/dokuwiki:latest
nouveau forum ubuntu-fr on en parle là : refonte du site / nouveau design
profil - sujets récurrents - sources du site
Hors ligne
#4 Le 12/07/2022, à 06:20
- bruno
Re : [tuto]Installation Apache MariaDB PHP => LAMPP (+ vidéo) - 2022 07
Nous avons déjà expliqué pourquoi il ne fallait pas installer les paquets PHP avec leur numéro de version.
Ceci est suffisant (les dépendances suivront) :
sudo apt install php libapache2-mod-php
@krodelabestiole : oui cela vaut le coup d'apprendre à utiliser docker pour déployer rapidement des applications mais je ne conseille pas aux débutants. Surtout que tonb exemple ne va pas fonctionner sur une machine ou lamp est déjà installé
Dernière modification par bruno (Le 12/07/2022, à 06:46)
#5 Le 12/07/2022, à 11:23
- kholo
Re : [tuto]Installation Apache MariaDB PHP => LAMPP (+ vidéo) - 2022 07
Nous avons déjà expliqué pourquoi il ne fallait pas installer les paquets PHP avec leur numéro de version.
Ceci est suffisant (les dépendances suivront) :sudo apt install php libapache2-mod-php
@krodelabestiole : oui cela vaut le coup d'apprendre à utiliser docker pour déployer rapidement des applications mais je ne conseille pas aux débutants. Surtout que tonb exemple ne va pas fonctionner sur une machine ou lamp est déjà installé
oui, merci de ton suivi Bruno, c'est corrigé... ainsi que des ajouts et quelques corrections de coquilles...
en parlant de cela, j'ai laissé :
sudo a2enmod php7.4
mais je vois que c'est fait par défaut :
kholo@SRV-HTML:~$ sudo a2enmod php
ERROR: Module php does not exist!
kholo@SRV-HTML:~$ sudo a2enmod php7.4
Considering dependency mpm_prefork for php7.4:
Considering conflict mpm_event for mpm_prefork:
Considering conflict mpm_worker for mpm_prefork:
Module mpm_prefork already enabled
Considering conflict php5 for php7.4:
Module php7.4 already enabled
Hors ligne
#6 Le 12/07/2022, à 13:37
- bruno
Re : [tuto]Installation Apache MariaDB PHP => LAMPP (+ vidéo) - 2022 07
L'activation du module php est inutile sur une nouvelle installation si on a explicitement installé libapache2-mod-php.
De même, et surtout avec mariadb, cette commande :
sudo mysql_secure_installation
est inutile et risque de provoquer plus d'erreurs de la part d'un débutant qu'autre chose. Et je déconseille fortement d'attribuer un mot de passe à l'utilisateur root de mysql (cf la doc mysql. On accède à l’administration des bases de données (shell mysql) avec juste :
sudo mysql
ou si l'on a quand me mis un mot de passe au compte root de mysql :
mysql -u root
mais pas avec sudo devant.
#7 Le 12/07/2022, à 13:45
- kholo
Re : [tuto]Installation Apache MariaDB PHP => LAMPP (+ vidéo) - 2022 07
L'activation du module php est inutile sur une nouvelle installation si on a explicitement installé libapache2-mod-php.
ok...
pas de méta paquet qui fait la totale alors !?
De même, et surtout avec mariadb, cette commande :
sudo mysql_secure_installation
est inutile et risque de provoquer plus d'erreurs de la part d'un débutant qu'autre chose. Et je déconseille fortement d'attribuer un mot de passe à l'utilisateur root de mysql (cf la doc mysql. On accède à l’administration des bases de données (shell mysql) avec juste :
sudo mysql
d'accord... et, je suppose qu'il faut garder dans un coin
sudo mysql_secure_installation
en cas de perte ou pour le renouvellement du mot de passe de mariadb
ou si l'on a quand me mis un mot de passe au compte root de mysql :
mysql -u root
mais pas avec sudo devant.
ah ! fromage ou dessert alors !
je vais reprendre ces points et améliorer mon Fécomsa
hum... pas évident, quand on manque de connaissances ou de pratique de savoir qui fait quoi...
Hors ligne
#8 Le 12/07/2022, à 13:47
- krodelabestiole
Re : [tuto]Installation Apache MariaDB PHP => LAMPP (+ vidéo) - 2022 07
@krodelabestiole : oui cela vaut le coup d'apprendre à utiliser docker pour déployer rapidement des applications mais je ne conseille pas aux débutants. Surtout que tonb exemple ne va pas fonctionner sur une machine ou lamp est déjà installé
oui c'était un peu du second degrés, une ligne de commande c'est joli, mais niveau éducatif on est proche de zéro.
ceci dit je pense que ça vaut le coup de mieux documenter docker sur le wiki, j'ai retrouvé un vieux brouillon.
depuis j'ai découvert traefik et je m'en sers allègrement :
https://gitlab.com/ubuntu-fr/code/ufr-d … ompose.yml
dès que j'ai 5 min je m'occupe de ça.
nouveau forum ubuntu-fr on en parle là : refonte du site / nouveau design
profil - sujets récurrents - sources du site
Hors ligne
#9 Le 12/07/2022, à 13:53
- bruno
Re : [tuto]Installation Apache MariaDB PHP => LAMPP (+ vidéo) - 2022 07
en cas de perte ou pour le renouvellement du mot de passe de mariadb
Relis la doc mysql. Il n'y a justement pas besoin de mot de passe administrateur (root) avec l'identification par compte UNIX (auth_socket aveec MySQL ou unix_socket avec Mariadb). C'est extrêmement pratique pour les tâches de maintenance et cela augmente la sécurité.
#10 Le 12/07/2022, à 14:16
- krodelabestiole
Re : [tuto]Installation Apache MariaDB PHP => LAMPP (+ vidéo) - 2022 07
on en parle dans la doc aussi :
https://doc.ubuntu-fr.org/mysql#ajouter … se_de_root
https://doc.ubuntu-fr.org/phpmyadmin#acces_root
nouveau forum ubuntu-fr on en parle là : refonte du site / nouveau design
profil - sujets récurrents - sources du site
Hors ligne
#11 Le 12/07/2022, à 14:22
- krodelabestiole
Re : [tuto]Installation Apache MariaDB PHP => LAMPP (+ vidéo) - 2022 07
pour m'auto-quote :
non. pas mot de passe pour root depuis ubuntu 16.04 pour MariaDB et 18.04 pour MySQL.
c'est le plugin auth_socket / unix_socket qui gère l'authentification, en se basant sur l'utilisateur unix qui execute le client MySQL.un peu de lecture :
https://doc.ubuntu-fr.org/mysql#authentification
https://doc.ubuntu-fr.org/mariadb#auth_ … us_mariadbMariaDB utilise unix_socket depuis Xenial.
Logiquement mysql_secure_installation ne permet donc pas de définir un mot de passe pour root ni sur Bionic, ni sur Xenial.
D'après les questions posées lors de son execution, mysql_secure_installation permettrait en plus de supprimer une base de donnée test et un utilisateur anonyme, et d'empêcher la connexion à distance pour root.
Hors il n'existe ni bbd test ni utilisateur anonyme lors de l'install de MariaDB, ou de MySLQ par défaut, et on ne peut déjà pas se connecter à distance avec root...
Donc je me pose sérieusement la question de l'intérêt de ce script. Je ne sais pas si il a été utile un jour mais il ne sert absolument à rien sur les dernières versions d'ubuntu.Pour se connecter avec l'utilisateur root que ce soit avec MariaDB ou MySQL, maintenant on tape simplement :
sudo mysql
nouveau forum ubuntu-fr on en parle là : refonte du site / nouveau design
profil - sujets récurrents - sources du site
Hors ligne
#12 Le 12/07/2022, à 15:25
- jfcm
Re : [tuto]Installation Apache MariaDB PHP => LAMPP (+ vidéo) - 2022 07
@kholo
Waou!!!
Je vais tenter de digérer ce tuto !!!
Pour ce qui me concerne par ailleurs :
1. j'ai installé un Synology pour voir, et tenté de mettre mon Qnap en accès (sous Ubuntu) mais j'ai des problèmes wifi/câbles/PCL (vu la config de la maison) qui me rendent les choses assez pénibles. Nous sommes en période estivale : j'aurai un peu d'aide hard locale d'ici la fin du mois, puis suis en déplacement jusqu'à mi-aout. J'ai un support débit en cours chez orange et nordnet. Je repasse en ADSL quand je veux que les pages web s'affichent en moins de 30 sec. Je suis véritablement le proto du michu-perdu dans sa cambrousse numérique. (proximité Nord de Montpellier).
2. jai discuté avec Orange et je devrais passer au niveau "pro" qu'ils ne m'avaient, en fait, pas attribué : le prix reste quasi le même (l'adresse IP est inclue) et le traffic théoriquement plus élevé et plus stable. Mais avec une nouvelle Livebox Pro que je n'aurai que dans "quelques jours".
3. Avec Bouygues un dialogue intéressant est peut-être engagé, qu'il faudrait compléter/soutenir côté Libre, c'est celui de ce que j'appelle le "neb" (ou VGN; virtual glocal network) c'est à dire le nébulaire à sécuriser des CPU sous maîtrise de l'utilisateur (utilisation) et autorisés à accéder ou à s'interconnecter entre eux (les portables, PCportables, VPS, NAS, superviseur, imprimantes + lac des messages reçus/envoyés + wiki de présentation + intégration d'un système mail+ comme bluemind, + etc.) : les constituants de l'outil de survie/travail d'une personne dépendante de ses solutions numériques.
4. Question : j'ai toujours entendu qu'il ne valait mieux pas installer LAMP en production ?
MERCI à vous tous !
Dernière modification par jfcm (Le 12/07/2022, à 15:26)
jfcm
Hors ligne