« Wp » : différence entre les versions

De Documentation
Aller à la navigationAller à la recherche
 
(7 versions intermédiaires par le même utilisateur non affichées)
Ligne 1 : Ligne 1 :
= Wordpress sur alpine léger =
= Wordpress sur alpine léger =


ajout wp.lesitadom dans /etc/hosts
''(ajout wp.lesitadom dans /etc/hosts)''


Création du conteneur :
Création du conteneur :
   # lxc launch local:alpineLe wp
   lxc launch local:alpineLe wp
   # lxc exec wp apk update
   lxc exec wp apk update
   # lxc exec wp apk update
   lxc exec wp apk update
(ça marche ;))
(ça marche ;))


Ligne 16 : Ligne 16 :
Ok !
Ok !


À l'usage, H5P nécessite mbstring et zip : Ajout de php83-mbstring et php83-zip (relance d'apache 2)
À l'usage, H5P nécessite '''mbstring''' et '''zip''' : Ajout de '''php83-mbstring''' et '''php83-zip''' (relance d'apache 2)
Lors du téléchargement d'exercices (3.1 Mio), Nginx envoie l'erreur 413 : Corriger proxy.conf en ajoutant la ligne
Lors du téléchargement d'exercices (3.1 Mio), Nginx envoie l'erreur 413 : Corriger proxy.conf en ajoutant la ligne


client_max_body_size 200M; (par défaut à 1Mio)
client_max_body_size 200M; (par défaut à 1Mio)


Relancer nginx.
Relancer nginx.
Ligne 30 : Ligne 30 :


== Mariadb ==
== Mariadb ==
(d'après mes notes instal serveur + PMB)
''(d'après mes notes instal serveur + PMB)''


   # apk add mysql mariadb mariadb-server-utils mariadb-client
   apk add mysql mariadb mariadb-server-utils mariadb-client
   # apk add php83-pdo_mysql php83-mbstring
   apk add php83-pdo_mysql php83-mbstring
(voir plus tard s'il faut mysqli ou mysqlnd)
''(voir plus tard s'il faut mysqli ou mysqlnd)''


Initialisation de mariadb
Initialisation de mariadb
   # /etc/init.d/mariadb setup
   /etc/init.d/mariadb setup
(peuple /var/lib/mysql)
(peuple /var/lib/mysql)


   # rc-service mariadb start
   rc-service mariadb start
=> ok
=> ok
# mysql
mysql
=> on entre dans mysql -> Ok
=> on entre dans mysql -> Ok


== installation de phpmyadmin ==
== installation de phpmyadmin ==


   # apk add phpmyadmin
   apk add phpmyadmin
-> Installe de nombreux packages et librairies (php83-{mysqli,bz2,ctype,curl,gd,session,zip,xmlwriter,iconv})
-> Installe de nombreux packages et librairies (php83-{mysqli,bz2,ctype,curl,gd,session,zip,xmlwriter,iconv})
(lib{xau,md,bsd,xdmcp,xcb,x11,xext,ice,bsm,xt,xpm,dav1d,jpeg,yuv,avif,png,shrpyuv,webp,zip} aom-libs,freetype)
(lib{xau,md,bsd,xdmcp,xcb,x11,xext,ice,bsm,xt,xpm,dav1d,jpeg,yuv,avif,png,shrpyuv,webp,zip} aom-libs,freetype)
*
 
* phpmyadmin has been installed to:
phpmyadmin has been installed to:  
*    /usr/share/webapps/phpmyadmin
      /usr/share/webapps/phpmyadmin
* phpmyadmin config file has been installed to:
phpmyadmin config file has been installed to:  
*    /etc/phpmyadmin/config.inc.php
      /etc/phpmyadmin/config.inc.php
* If you use apache2:
If you use apache2:
*    1) Change the ownership of the config directory:
      1) Change the ownership of the config directory:
*            chown -R apache:apache /etc/phpmyadmin
            chown -R apache:apache /etc/phpmyadmin
*    2) See if you need to modify the apache2 config:
      2) See if you need to modify the apache2 config:
*            /etc/apache2/conf.d/phpmyadmin.conf
            /etc/apache2/conf.d/phpmyadmin.conf
*    3) Restart apache2 when done.
      3) Restart apache2 when done.
*
 
   # rc-service apache2 restart
   rc-service apache2 restart
-> phpmyadmin accessible à wp.lesitadom.fr/phpmyadmin
-> phpmyadmin accessible à wp.lesitadom.fr/phpmyadmin


Conteneur mariadb :
'''Conteneur mariadb'''<br>
Création d'un utilisateur pour phpmyadmin :
Création d'un utilisateur pour phpmyadmin :
   # mysql
   # mysql<br>
 
   CREATE USER 'login_util'@'%' IDENTIFIED BY 'pass_util';
   CREATE USER 'login_util'@'%' IDENTIFIED BY 'pass_util';
   GRANT ALL PRIVILEGES ON *.* TO 'login_util'@'%' WITH GRANT OPTION;
   GRANT ALL PRIVILEGES ON *.* TO 'login_util'@'%' WITH GRANT OPTION;
   FLUSH PRIVILEGES;
   FLUSH PRIVILEGES;
(Ctrl-d pour sortir)
''(Ctrl-d pour sortir)''


Pour l'accès avec mot de passe :
Pour l'accès avec mot de passe :
stopper les services mariadb et apache2 :
stopper les services mariadb et apache2 :
   # rc-service mariadb stop
   rc-service mariadb stop
   # rc-service apache2 stop
   rc-service apache2 stop
Dans /etc/my.cnf.d/maria_db_server.cnf, sous [mysqld], ajouter :
Dans /etc/my.cnf.d/maria_db_server.cnf, sous [mysqld], ajouter :
   skip-grant-tables
   skip-grant-tables
Ligne 84 : Ligne 85 :
Récupération d'un fichier de conf de phpmyadmin qui fonctionne sur le net (modif de l'utilisateur et du mdp)
Récupération d'un fichier de conf de phpmyadmin qui fonctionne sur le net (modif de l'utilisateur et du mdp)


lancement de l'installation de mariadb avec les paramètres par défaut (y à toutes les questions...)
Lancement de l'installation de mariadb avec les paramètres par défaut (y à toutes les questions...)


Redémarrage du conteneur -> phpmyadmin fonctionne avec les droits qui vont bien
Redémarrage du conteneur -> phpmyadmin fonctionne avec les droits qui vont bien


* Installation de wordpress *
==Installation de wordpress==


téléchargement de wordpres-...zip -> tmp du raspberry
téléchargement de wordpres-...zip -> tmp du raspberry
# lxc file push /tmp/wordpress-6.7.2-fr_FR.zip wp/tmp/
lxc file push /tmp/wordpress-6.7.2-fr_FR.zip wp/tmp/
Dans le conteneur :
Dans le conteneur :
# unzip /tmp/wordpress-6.7.2-fr_FR.zip -d /var/www/localhost/htdocs/
unzip /tmp/wordpress-6.7.2-fr_FR.zip -d /var/www/localhost/htdocs/
Déplacer le contenu à la racine :
Déplacer le contenu à la racine :
# mv /var/www/localhost/htdocs/wordpress/* /var/www/localhost/htdocs/
mv /var/www/localhost/htdocs/wordpress/* /var/www/localhost/htdocs/


Création de la bdd wordpress (wp_perso2025) par phpmyadmin avec utilisateur wp-dd2025 et mdp 1_mdppuwp!
Création de la bdd wordpress (wp_perso2025) par phpmyadmin avec utilisateur wp-dd2025 et mdp 1_mdppuwp!
Ligne 105 : Ligne 106 :
Voir s'il est possible d'installer mariadb et phpmyadmin sur des conteneur distincts...
Voir s'il est possible d'installer mariadb et phpmyadmin sur des conteneur distincts...


/*\_/*\_/*\_/*\_/*\_/*\_/*\_/*\_/*\_/*\_/*\_/*\_/*\_/*\_/*\_/*\_/*\_/*\_/*\_/*\_/*\_/*\_/*\_/
=Installation de '''wordpress''' - '''mariadb''' et '''phpmyadmin''' sur trois conteneurs séparés ''alipneLe''=
\_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \
 
******************************************************************************************
* installation de wordpress - mariadb et phpmyadmin sur deux conteneurs séparés alipneLe *
******************************************************************************************


***********
==Mariadb==
* Mariadb *
***********
Création du conteneur maria + maj
Création du conteneur maria + maj
Installation de mariadb
Installation de mariadb
# apk add (mysql) mariadb mariadb-server-utils mariadb-client
apk add (mysql) mariadb mariadb-server-utils mariadb-client
# apk add php83-pdo_mysql php83-mbstring
apk add php83-pdo_mysql php83-mbstring


Initialisation de mariadb (peuple /var/lib/mysql)
Initialisation de mariadb (peuple /var/lib/mysql)
# /etc/init.d/mariadb setup
/etc/init.d/mariadb setup


Démarrer le service
Démarrer le service
# rc-service mariadb start
rc-service mariadb start


Sécuriser la base de donnée
Sécuriser la base de donnée
# mysql_secure_installation (vide/n/n/Y/Y/Y/Y)
mysql_secure_installation (vide/n/n/Y/Y/Y/Y)


on peut entrer dans mysql (idem mariadb)
on peut entrer dans mysql (idem mariadb)


*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/
===Notes obsolètes===
Ajout d'apache, php et phpmyadmin
Ajout d'apache, php et phpmyadmin


# apk add apache2 apache2-ctl php83 php83-apache2 php83-mbstring phpmyadmin
apk add apache2 apache2-ctl php83 php83-apache2 php83-mbstring phpmyadmin


Copie du fichier de conf dans etc/phpmyadmin/
Copie du fichier de conf dans etc/phpmyadmin/
Ligne 144 : Ligne 138 :


phpmyadmin affiche une erreur d'accès à /usr/share/webapps/phpmyadmin/tmp : le dossier n'existe pas : création.
phpmyadmin affiche une erreur d'accès à /usr/share/webapps/phpmyadmin/tmp : le dossier n'existe pas : création.
# chown apache:apache /usr/share/webapps/phpmyadmin/tmp
chown apache:apache /usr/share/webapps/phpmyadmin/tmp
-> problème réglé
-> problème réglé


Ligne 152 : Ligne 146 :
// A string of 32 characters.
// A string of 32 characters.
$cfg['blowfish_secret'] = 'JOFw435365IScA&Q!cDugr!lSfuAz*OW';
$cfg['blowfish_secret'] = 'JOFw435365IScA&Q!cDugr!lSfuAz*OW';
88a7da62429ba6ad3cb3c76a09641fca
88a7da62429ba6ad3cb3c76a09641fca<br>
 
Modification du fichier /etc/phpmyadmin/config.php en conséquence.
Modification du fichier /etc/phpmyadmin/config.php en conséquence.


Ligne 160 : Ligne 155 :
Au final, il faut commenter la ligne 'skip-networking' et ça fonctionne (voir si la ligne 'innodb_force_recovery=1' a une utilité...). Trouvé à l'adresse "https://mariadb.com/kb/en/configuring-mariadb-for-remote-client-access/". À retester sur une machine propre.
Au final, il faut commenter la ligne 'skip-networking' et ça fonctionne (voir si la ligne 'innodb_force_recovery=1' a une utilité...). Trouvé à l'adresse "https://mariadb.com/kb/en/configuring-mariadb-for-remote-client-access/". À retester sur une machine propre.


**************
==phpmyadmin==
* phpmyadmin *
Création du conteneur phpmyadmin et Maj
**************
Création du conteneur phpmyadmin
Maj


Installation du serveur web : apache2
Installation du serveur web : apache2
# apk add apache2 php83 php83-apache2 php83-mbstring
apk add apache2 php83 php83-apache2 php83-mbstring
# rc-service apache2 start
rc-service apache2 start


Installation de phpmyadmin
Installation de phpmyadmin
# apk add phpmyadmin
apk add phpmyadmin


*
phpmyadmin has been installed to:
* phpmyadmin has been installed to:
    /usr/share/webapps/phpmyadmin
*    /usr/share/webapps/phpmyadmin
phpmyadmin config file has been installed to:
* phpmyadmin config file has been installed to:
     /etc/phpmyadmin/config.inc.php
*     /etc/phpmyadmin/config.inc.php
If you use apache2:
* If you use apache2:
    1) Change the ownership of the config directory:
*    1) Change the ownership of the config directory:
            chown -R apache:apache /etc/phpmyadmin
*            chown -R apache:apache /etc/phpmyadmin
    2) See if you need to modify the apache2 config:
*    2) See if you need to modify the apache2 config:
            /etc/apache2/conf.d/phpmyadmin.conf
*            /etc/apache2/conf.d/phpmyadmin.conf
    3) Restart apache2 when done.
*    3) Restart apache2 when done.
*
Ajout de phpmyadmin.lesitadom.fr au fichier hosts de l'hôte


*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/
''(Ajout de phpmyadmin.lesitadom.fr au fichier hosts de l'hôte)''
Modification du fichier de conf dans le conteneur proxy :


* conteneur phpmyadmin
Modification du fichier de conf dans le '''conteneur proxy''' :
server {
 
* conteneur phpmyadmin
server {
         listen 80 proxy_protocol;
         listen 80 proxy_protocol;
         listen [::]:80 proxy_protocol;
         listen [::]:80 proxy_protocol;
 
         server_name phpmyadmin.lesitadom.fr;
         server_name phpmyadmin.lesitadom.fr;
 
         location / {
         location / {
                 include /etc/nginx/proxy_params;
                 include /etc/nginx/proxy_params;
 
                 proxy_pass http://phpmyadmin.lxd;
                 proxy_pass http://phpmyadmin.lxd;
         }
         }
         real_ip_header proxy_protocol;
         real_ip_header proxy_protocol;
         set_real_ip_from 127.0.0.1;
         set_real_ip_from 127.0.0.1;
}
}


Redémarrer le service nginx :
Redémarrer le service nginx :
# systemctl restart nginx
systemctl restart nginx


copie du fichier de conf téléchargé dans le dossier /etc/phpmyadmin
Copie du fichier de conf téléchargé dans le dossier /etc/phpmyadmin


*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/
Modification du fichier /var/www/localhost/htdocs/index.html -> index.php  
 
<?php phpinfo(); ?><br>
Modif du fichier /var/www/localhost/htdocs/index.html -> index.php (avec <?php phpinfo(); ?>
Démarrage du service apache2 :
Démarrage du service apache2 :
# rc-service apache2 start
rc-service apache2 start


-> la page d'info s'affiche
-> la page d'info s'affiche
-> la page d'accueil de phpmyadmin s'affiche, mais pas de connexion à la base...
-> la page d'accueil de phpmyadmin s'affiche, mais pas de connexion à la base...


*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/
Dans le '''conteneur maria''' :
Dans le conteneur maria :


Création d'un utilisateur pour phpmyadmin :
Création d'un utilisateur pour phpmyadmin :
# mysql
# mysql
CREATE USER 'login_util'@'%' IDENTIFIED BY 'pass_util';
CREATE USER 'login_util'@'%' IDENTIFIED BY 'pass_util';
GRANT ALL PRIVILEGES ON *.* TO 'login_util'@'%' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'login_util'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
FLUSH PRIVILEGES;
(Ctrl-d pour sortir)
''(Ctrl-d pour sortir)''
 
*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/


===Notes obsolètes===
Pour tester les configurations successives, installation de mysql ne plus :
Pour tester les configurations successives, installation de mysql ne plus :
# apk add... (cf plus haut...)
# apk add... (cf plus haut...)
Ligne 237 : Ligne 224 :
phpmyadmin:~# /etc/init.d/mariadb setup
phpmyadmin:~# /etc/init.d/mariadb setup
  * Creating a new MySQL database ...
  * Creating a new MySQL database ...
/usr/bin/mysql_install_db: Deprecated program name. It will be removed in a future release, use 'mariadb-install-db' instead
/usr/bin/mysql_install_db: Deprecated program name. It will be removed in a future release, use 'mariadb-install-db' instead
Installing MariaDB/MySQL system tables in '/var/lib/mysql' ...
Installing MariaDB/MySQL system tables in '/var/lib/mysql' ...
OK
OK
 
To start mariadbd at boot time you have to copy
To start mariadbd at boot time you have to copy
support-files/mariadb.service to the right place for your system
support-files/mariadb.service to the right place for your system
 
 
Two all-privilege accounts were created.
Two all-privilege accounts were created.
One is root@localhost, it has no password, but you need to be system 'root' user to connect. Use, for example, sudo mysql
One is root@localhost, it has no password, but you need to
The second is mysql@localhost, it has no password either, but you need to be the system 'mysql' user to connect.
be system 'root' user to connect. Use, for example, sudo mysql
After connecting you can set the password, if you would need to be able to connect as any of these users with a password and without sudo
The second is mysql@localhost, it has no password either, but
you need to be the system 'mysql' user to connect.
See the MariaDB Knowledgebase at https://mariadb.com/kb
After connecting you can set the password, if you would need to be
able to connect as any of these users with a password and without sudo
You can start the MariaDB daemon with:
 
cd '/usr' ; /usr/bin/mariadbd-safe --datadir='/var/lib/mysql'
See the MariaDB Knowledgebase at https://mariadb.com/kb
 
You can test the MariaDB daemon with mariadb-test-run.pl
You can start the MariaDB daemon with:
cd '/usr/mariadb-test' ; perl mariadb-test-run.pl
cd '/usr' ; /usr/bin/mariadbd-safe --datadir='/var/lib/mysql'
 
Please report any problems at https://mariadb.org/jira
You can test the MariaDB daemon with mariadb-test-run.pl
cd '/usr/mariadb-test' ; perl mariadb-test-run.pl
The latest information about MariaDB is available at https://mariadb.org/.
 
Please report any problems at https://mariadb.org/jira
Consider joining MariaDB's strong and vibrant community: https://mariadb.org/get-involved/
 
The latest information about MariaDB is available at https://mariadb.org/.
 
Consider joining MariaDB's strong and vibrant community:
https://mariadb.org/get-involved/
 
... ne connaît toujours pas 'mysql'
... ne connaît toujours pas 'mysql'
# apk add mariadb-server-utils mariadb-client
apk add mariadb-server-utils mariadb-client
-> reconnaît la commande, mais le serveur refuse la connexion...
-> reconnaît la commande, mais le serveur refuse la connexion...


Abandon : comme phpmyadmin nécessite un serveur web, installation des trois dans le même conteneur : apache - php -maria
'''Abandon :''' comme phpmyadmin nécessite un serveur web, installation des trois dans le même conteneur : apache - php -maria


*************
==Wordpress==
* Wordpress *
# Création du conteneur wp + maj
*************
# Installation d'apache et php
1. Création du conteneur wp + maj
apk add apache2 php php83-apache2 apache2-ctl(pour lister les modules) php83-mysqli (sinon ça râle...)
2. Installation d'apache et php
À l'usage, le module H5P réclame la présence et l'activation de mbstring : ajout de php83-mbstring/
# apk add apache2 php php83-apache2 apache2-ctl(pour lister les modules) php83-mysqli (sinon ça râle...)
# À l'usage, le module H5P réclame la présence et l'activation de mbstring : ajout de php83-mbstring/


Modification de la page d'afichage par défaut : /var/www/localhost/htdocs/index.html -> index.php
Modification de la page d'afichage par défaut : /var/www/localhost/htdocs/index.html -> index.php

Dernière version du 9 juillet 2025 à 08:26

Wordpress sur alpine léger

(ajout wp.lesitadom dans /etc/hosts)

Création du conteneur :

 lxc launch local:alpineLe wp
 lxc exec wp apk update
 lxc exec wp apk update

(ça marche ;))

Serveur web : apache2 - php83 - mariadb

cf notes apache2 php sur alpine léger - modif : php84 à la place de php83

ne fonctionne pas... mauvaise version de php ? Ok avec php83 => on recommence...

Ok !

À l'usage, H5P nécessite mbstring et zip : Ajout de php83-mbstring et php83-zip (relance d'apache 2) Lors du téléchargement d'exercices (3.1 Mio), Nginx envoie l'erreur 413 : Corriger proxy.conf en ajoutant la ligne

client_max_body_size 200M; (par défaut à 1Mio)

Relancer nginx.

Il faut également augmenter les valeurs : (dans /etc/php83/php.ini)

 upload_max_filesize = 256M
 post_max_size = 256M
 max_execution_time = 300

(relancer apache2)

Mariadb

(d'après mes notes instal serveur + PMB)

 apk add mysql mariadb mariadb-server-utils mariadb-client
 apk add php83-pdo_mysql php83-mbstring

(voir plus tard s'il faut mysqli ou mysqlnd)

Initialisation de mariadb

 /etc/init.d/mariadb setup

(peuple /var/lib/mysql)

 rc-service mariadb start

=> ok

mysql

=> on entre dans mysql -> Ok

installation de phpmyadmin

 apk add phpmyadmin

-> Installe de nombreux packages et librairies (php83-{mysqli,bz2,ctype,curl,gd,session,zip,xmlwriter,iconv}) (lib{xau,md,bsd,xdmcp,xcb,x11,xext,ice,bsm,xt,xpm,dav1d,jpeg,yuv,avif,png,shrpyuv,webp,zip} aom-libs,freetype)

phpmyadmin has been installed to: 
      /usr/share/webapps/phpmyadmin
phpmyadmin config file has been installed to: 
      /etc/phpmyadmin/config.inc.php
If you use apache2:
     1) Change the ownership of the config directory:
            chown -R apache:apache /etc/phpmyadmin
     2) See if you need to modify the apache2 config:
            /etc/apache2/conf.d/phpmyadmin.conf
     3) Restart apache2 when done.
 rc-service apache2 restart

-> phpmyadmin accessible à wp.lesitadom.fr/phpmyadmin

Conteneur mariadb
Création d'un utilisateur pour phpmyadmin :

 # mysql
 CREATE USER 'login_util'@'%' IDENTIFIED BY 'pass_util';
 GRANT ALL PRIVILEGES ON *.* TO 'login_util'@'%' WITH GRANT OPTION;
 FLUSH PRIVILEGES;

(Ctrl-d pour sortir)

Pour l'accès avec mot de passe : stopper les services mariadb et apache2 :

 rc-service mariadb stop
 rc-service apache2 stop

Dans /etc/my.cnf.d/maria_db_server.cnf, sous [mysqld], ajouter :

 skip-grant-tables

Relancer les services et ça fonctionne ! ...pas tout à fait... la configuration de phpmyadmin n'est pas terminée... Cf message au bas

Récupération d'un fichier de conf de phpmyadmin qui fonctionne sur le net (modif de l'utilisateur et du mdp)

Lancement de l'installation de mariadb avec les paramètres par défaut (y à toutes les questions...)

Redémarrage du conteneur -> phpmyadmin fonctionne avec les droits qui vont bien

Installation de wordpress

téléchargement de wordpres-...zip -> tmp du raspberry

lxc file push /tmp/wordpress-6.7.2-fr_FR.zip wp/tmp/

Dans le conteneur :

unzip /tmp/wordpress-6.7.2-fr_FR.zip -d /var/www/localhost/htdocs/

Déplacer le contenu à la racine :

mv /var/www/localhost/htdocs/wordpress/* /var/www/localhost/htdocs/

Création de la bdd wordpress (wp_perso2025) par phpmyadmin avec utilisateur wp-dd2025 et mdp 1_mdppuwp!

Connection à wp dans le navigateur à l'adresse du serveur : wp.lesitadom.fr -> configuration

Tout fonctionne !

Voir s'il est possible d'installer mariadb et phpmyadmin sur des conteneur distincts...

Installation de wordpress - mariadb et phpmyadmin sur trois conteneurs séparés alipneLe

Mariadb

Création du conteneur maria + maj Installation de mariadb

apk add (mysql) mariadb mariadb-server-utils mariadb-client
apk add php83-pdo_mysql php83-mbstring

Initialisation de mariadb (peuple /var/lib/mysql)

/etc/init.d/mariadb setup

Démarrer le service

rc-service mariadb start

Sécuriser la base de donnée

mysql_secure_installation (vide/n/n/Y/Y/Y/Y)

on peut entrer dans mysql (idem mariadb)

Notes obsolètes

Ajout d'apache, php et phpmyadmin

apk add apache2 apache2-ctl php83 php83-apache2 php83-mbstring phpmyadmin

Copie du fichier de conf dans etc/phpmyadmin/ Modif du fichier /var/www/localhost/htdocs/index.html -> index.php Ajout de la redirection dans le conteneur proxy Ajout de la redirection dans le fichier host du bureau

À la première connection, phpmyadmin est en erreur : la base n'est pas encore crée. Cliquer...

phpmyadmin affiche une erreur d'accès à /usr/share/webapps/phpmyadmin/tmp : le dossier n'existe pas : création.

chown apache:apache /usr/share/webapps/phpmyadmin/tmp

-> problème réglé

phpmyadmin affiche une erreur concernant les cookies (pas de clé valide) D'après la documentation :

// A string of 32 characters. $cfg['blowfish_secret'] = 'JOFw435365IScA&Q!cDugr!lSfuAz*OW'; 88a7da62429ba6ad3cb3c76a09641fca

Modification du fichier /etc/phpmyadmin/config.php en conséquence.

-> marche pas

Tentative de connexion à mariadb depuis le conteneur wiki... ne fonctionne pas. Plusieurs tentatives en agissant sur les paramètres côté client (règles firewall, ouverture de ports) ou du côté serveur (utilisateur, adresse bind, paramètres my.cnf et maria....cnf). Au final, il faut commenter la ligne 'skip-networking' et ça fonctionne (voir si la ligne 'innodb_force_recovery=1' a une utilité...). Trouvé à l'adresse "https://mariadb.com/kb/en/configuring-mariadb-for-remote-client-access/". À retester sur une machine propre.

phpmyadmin

Création du conteneur phpmyadmin et Maj

Installation du serveur web : apache2

apk add apache2 php83 php83-apache2 php83-mbstring
rc-service apache2 start

Installation de phpmyadmin

apk add phpmyadmin
phpmyadmin has been installed to:
    /usr/share/webapps/phpmyadmin
phpmyadmin config file has been installed to:
   /etc/phpmyadmin/config.inc.php
If you use apache2:
    1) Change the ownership of the config directory:
           chown -R apache:apache /etc/phpmyadmin
    2) See if you need to modify the apache2 config:
           /etc/apache2/conf.d/phpmyadmin.conf
    3) Restart apache2 when done.

(Ajout de phpmyadmin.lesitadom.fr au fichier hosts de l'hôte)

Modification du fichier de conf dans le conteneur proxy :

* conteneur phpmyadmin
server {
       listen 80 proxy_protocol;
       listen [::]:80 proxy_protocol;

       server_name phpmyadmin.lesitadom.fr;

       location / {
               include /etc/nginx/proxy_params;

               proxy_pass http://phpmyadmin.lxd;
       }
       real_ip_header proxy_protocol;
       set_real_ip_from 127.0.0.1;
}

Redémarrer le service nginx :

systemctl restart nginx

Copie du fichier de conf téléchargé dans le dossier /etc/phpmyadmin

Modification du fichier /var/www/localhost/htdocs/index.html -> index.php

<?php phpinfo(); ?>

Démarrage du service apache2 :

rc-service apache2 start

-> la page d'info s'affiche -> la page d'accueil de phpmyadmin s'affiche, mais pas de connexion à la base...

Dans le conteneur maria :

Création d'un utilisateur pour phpmyadmin :

# mysql
CREATE USER 'login_util'@'%' IDENTIFIED BY 'pass_util';
GRANT ALL PRIVILEGES ON *.* TO 'login_util'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

(Ctrl-d pour sortir)

Notes obsolètes

Pour tester les configurations successives, installation de mysql ne plus :

  1. apk add... (cf plus haut...)

phpmyadmin:~# /etc/init.d/mariadb setup

* Creating a new MySQL database ...
/usr/bin/mysql_install_db: Deprecated program name. It will be removed in a future release, use 'mariadb-install-db' instead
Installing MariaDB/MySQL system tables in '/var/lib/mysql' ...
OK

To start mariadbd at boot time you have to copy
support-files/mariadb.service to the right place for your system

Two all-privilege accounts were created.
One is root@localhost, it has no password, but you need to be system 'root' user to connect. Use, for example, sudo mysql
The second is mysql@localhost, it has no password either, but you need to be the system 'mysql' user to connect.
After connecting you can set the password, if you would need to be able to connect as any of these users with a password and without sudo

See the MariaDB Knowledgebase at https://mariadb.com/kb

You can start the MariaDB daemon with:
cd '/usr' ; /usr/bin/mariadbd-safe --datadir='/var/lib/mysql'

You can test the MariaDB daemon with mariadb-test-run.pl
cd '/usr/mariadb-test' ; perl mariadb-test-run.pl

Please report any problems at https://mariadb.org/jira

The latest information about MariaDB is available at https://mariadb.org/.

Consider joining MariaDB's strong and vibrant community: https://mariadb.org/get-involved/

... ne connaît toujours pas 'mysql'

apk add mariadb-server-utils mariadb-client

-> reconnaît la commande, mais le serveur refuse la connexion...

Abandon : comme phpmyadmin nécessite un serveur web, installation des trois dans le même conteneur : apache - php -maria

Wordpress

  1. Création du conteneur wp + maj
  2. Installation d'apache et php
apk add apache2 php php83-apache2 apache2-ctl(pour lister les modules) php83-mysqli (sinon ça râle...)

À l'usage, le module H5P réclame la présence et l'activation de mbstring : ajout de php83-mbstring/

Modification de la page d'afichage par défaut : /var/www/localhost/htdocs/index.html -> index.php Modification du fichier proxy.conf dans le conteneur proxy : (/etc/nginx/sites-available/proxy.conf) proxy_pass http://wp.lxd; Redémarrer le service systemctl restart nginx

Dans le conteneur wp, démarrer apache2 rc-service apache2 start

La page s'affiche dans le navigateur...

Création du fichier /etc/apache2/conf.d/remoteip.conf avec

RemoteIPHeader X-Real-IP RemoteIPTrustedProxy proxy.lxd (nom du conteneur nginx, plus correct dans la configuration conteneurs)

modification de /etc/apache2/httpd.conf décommenter : LoadModule remoteip_module modules/mod_remoteip.so LoadModule rewrite_module modules/mod_rewrite.so


Ajouter apache2 au démarrage

  1. rc-update add apache2

relancer les services apache2

  1. rc-service apache2 restart
                                              • (en cas d'erreur Bad Getaway, redémarrer le proxy) ************

Télécharger la dernière version de wp et la copier dans le dossier /tmp du conteneur

  1. lxc file push /tmp/wp/wordpress-6.7.2-fr_FR.zip wiki/tmp
  2. lxc shell wiki
  3. unzip /tmp/wordpress-..._FR.zip -d /var/ww/localhost/htdocs/

Comme on ne mettra pas d'autre appli, on déplace le fourbi à la racine

  1. cd /var/www/localhost/htdocs

/var/www/localhost/htdocs# mv index.php index.php.sav /var/www/localhost/htdocs# mv wordpress/* ./ /var/www/localhost/htdocs# rm -R wordpress

Créer un utilisateur et une base de donnée pour wordpress dans le conteneur mariadb.lxd (phpmyadmin)

Se connecter au site avec le navigateur

utilisateur domiwp_68/1_mdppdomiwp_68! || wordpress || mariadb.lxd

!!!! En cas d'installation de php83-mysqlnd, le processus échoue (Typed property mysqli::$connect_errno must not be accessed before initialization) !!!

Le bordel n'arrive pas à utiliser ssl... et plante : tourne en boucle sur la page de connection

tentative de lien dans le dossier /var/www/localhost/htdocs/wp-includes/certificates/ de wp /etc/letsencrypt/live/lesitadom.fr/fullchain.pem

  1. ln -s proxy.lxd/etc/letsencrypt/live/lesitadom.fr/fullchain.pem /var/www/localhost/htdocs/wp-includes/certificates/lesitadom.pem
                                  • Ça veut pas. On essaye avec une autre version de WP (6.8) ********************

Marche pas non plus, et en plus, c'est en anglais et pas de choix de langue... Y'a un truc qui merde dès le départ : la mise en page est foireuse...

on recommence avec la version en français (6.8)

Règlage des droits sur apache:www-data (chown -R apache:www-data) Contenu de wordpress à la racine Adresse "lesitadom.fr" (proxy) Suppression des tables des instal précédentes (phpmyadmin)

Affichage touours aussi lamentable, comme si la feuille de style n'était pas prise en compte...

Les tables se créent, mais pau moment de la connexion :

Les informations que vous êtes sur le point de soumettre ne sont pas sécurisées

Et on revient au formulaire

                            • On n'est pas couchés ! *******************

Recherche sur internet : worpress derrière un proxy inverse :

Dans wp-config.php, ajouter :

if ( (!empty( $_SERVER['HTTP_X_FORWARDED_HOST'])) ||

     (!empty( $_SERVER['HTTP_X_FORWARDED_FOR'])) ) {
     $_SERVER['HTTPS'] = 'activé';

}

Et put' ça marche !!!!

...plus ! J'ai re-modifié la config du proxy et ça a cassé le bastringue... Le site donnait ça, en plus...

serveur {

   listen 443 SSL ;
   server_name foo.bar www.foo.bar;
   location / {
       proxy_pass http://10.0.80.32/;
       proxy_set_header X-Forwarded-Host $host;

proxy_set_header X-Forwarded-Server $hôte ; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Hôte $host ;

   }
   certificat_ssl /etc/letsencrypt/live/foo.bar/fullchain.pem;
   ssl_certificate_key /etc/letsencrypt/live/foo.bar/privkey.pem;
   include /etc/letsencrypt/options-ssl-nginx.conf ;
   ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;

} serveur {

   server_name foo.bar www.foo.bar;
   return 301 https://foo.bar$request_uri ;

}

adresse utilisée lors de l'instal : lesitadom.fr avec réglage du proxy => ok Changement d'adresse => ko Le fourbi doit laisser des traces de l'adresse du site pendant l'instal...

Modifier : table wp-options, siteurl et home

Ok

                            • erreur "La réponse n’est pas une réponse JSON valide" lors de la modification d'un article ****************************

Modifier apache2 :

<Directory "/var/www/localhost/htdocs"> ...

   #                                                                 
   # AllowOverride controls what directives may be placed in .htaccess files.
   # It can be "All", "None", or any combination of the keywords:
   #   AllowOverride FileInfo AuthConfig Limit                     
   #                                                                          
   AllowOverride All                                       				<= C'est ici ! 

... </Directory>

Changer les droits sur .htaccess :

  1. chmod 644 /var/www/localhost/htdocs/.htaccess


                            • Installation des outils ***********************

À partir du dossier wordress de l'école téléchargé en guise de sauvegarde...

Thème : nisarg child

Extensions : Installées : - Advanced Accordion Gutenberg Block - advanced-iframe -> problème : voir la config - PDF Viewer Block pour Gutenberg - classic-editor -> installé - voir si activation - The Events Calendar - h5p -> voir plugin Dashboard for Pressbooks and H5P et SNORDIAN's H5P Resize Pulse - ml-slider -> diaporamas - shortcodes-ultimate -> excellent ! - smart-slider-3 -> ! Erreur à l'activation ! création de diaporamas : voir si pas doublon avec ml-slider - tablepress -> créer des tableaux - wp-miniaudioplayer -> pour lire les mp3 - wp-quicklatex -> pour des formules math en latex - wp-statistics -> statistiques de visites

Ignorées : - advanced-iframe-custom -> Voir Advanced Custom Fields - akismet -> Anti-spam - algori-pdf-viewer -> remplacé par PDF Viewer Block pour Gutenberg - antispam-bee - bbpress -> forum de discussion - bp-better-messages -> chat pour buddypress - buddypress -> réseau social - easy-fancybox -> Affichier des images, des vidéos... dans une box. Àvoir... - envole_hooks -> pour envole - eportailwidget -> idem ? - flynsarmy-iframe-shortcode -> non trouvée - google-calendar-events -> remplacée par The Events Calendar - nextend-accordion-menu -> non trouvé. Voir si le plugin gutempberg fait l'affaire - nextgen-gallery -> gallerie d'images. Voir si le plugi installé fair l'affaire - page-links-to -> optimiser les liens : non trouvé, voir si nécessaire - pretty links -> casse pieds - poshwidget -> eole - private-wp -> ? non trouvée - rumbletalk-chat-a-chat-with-themes -> chat - si-contact-form -> formulaire de contact : voir contact form 7 si nécessaire - simple-embed-code -> intégrer du code aux articles : voir code Embed - the-events-calendar -> double emploi avec extension installée - theme-preview -> aide à la conception. Àvoir (Toolkit for Block Theme) - tinymce-advanced -> modifier l'éditeur. Voir si utile - user-role-editor -> régler les autorisations - vc-tabs -> pas trouvée ? - visual-form-builder -> création de formulaire - wpdirauth -> ldap - wp-event-manager -> double emploi - wp-hide-dashboard -> non trouvée... à revoir - wp-polls -> créer des sondages - wp-sentry -> tracer les erruers php et navigation - wp-smushit -> optimisation d'images. voir si utile - wp-user-avatar -> création d'avatars pour les utilisateurs