« Wp » : différence entre les versions
| 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 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 php83-pdo_mysql php83-mbstring | |||
(voir plus tard s'il faut mysqli ou mysqlnd) | (voir plus tard s'il faut mysqli ou mysqlnd) | ||
Version du 9 juillet 2025 à 07:56
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 deux 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)
- /*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/
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 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
- /*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/
Modif du fichier /var/www/localhost/htdocs/index.html -> index.php (avec <?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)
- /*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/
Pour tester les configurations successives, installation de mysql ne plus :
- 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
- rc-update add apache2
relancer les services apache2
- 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
- lxc file push /tmp/wp/wordpress-6.7.2-fr_FR.zip wiki/tmp
- lxc shell wiki
- 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
- 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
- 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 :
- 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