« Wp » : différence entre les versions

De Documentation
Aller à la navigationAller à la recherche
Page créée avec « ****************************** * 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...... »
 
Aucun résumé des modifications
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 ;))


**** Serveur web : apache2 - php83 - mariadb ****
== Serveur web : apache2 - php83 - mariadb ==
cf notes apache2 php sur alpine léger - modif : php84 à la place de php83
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...
ne fonctionne pas... mauvaise version de php ? Ok avec php83 => on recommence...


Ok !
Ok !


***********************************
== 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)
Ligne 56 : Ligne 49 :
*    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 :
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)


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
Relancer les services et ça fonctionne !
Relancer les services et ça fonctionne !
...pas tout à fait... la configuration de phpmyadmin n'est pas terminée... Cf message au bas
...pas tout à fait... la configuration de phpmyadmin n'est pas terminée... Cf message au bas
Ligne 82 : Ligne 75 :
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/

Version du 24 avril 2025 à 22:34

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 !

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

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

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

Dans le conteneur :

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

Déplacer le contenu à la racine :

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

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

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

  1. /etc/init.d/mariadb setup

Démarrer le service

  1. rc-service mariadb start

Sécuriser la base de donnée

  1. mysql_secure_installation (vide/n/n/Y/Y/Y/Y)

on peut entrer dans mysql (idem mariadb)

  • /*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/

Ajout d'apache, php et phpmyadmin

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

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

  1. apk add apache2 php83 php83-apache2 php83-mbstring
  2. rc-service apache2 start

Installation de phpmyadmin

  1. 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 :

  1. 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 :

  1. 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 :

  1. 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 :

  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'

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

  1. apk add apache2 php php83-apache2 apache2-ctl(pour lister les modules) php83-mysqli (sinon ça râle...)

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