Diferència entre revisions de la pàgina «Migració d'una wiki a una altra dockeritzada»
m |
m (→Connexió amb la base de dades) |
||
(Hi ha 40 revisions intermèdies del mateix usuari que no es mostren) | |||
Línia 1: | Línia 1: | ||
+ | = Còpia de la wiki original = | ||
+ | La migració explicada a aquesta pàgina és per a poder integrar una wiki preexistent darrere un [[Servidor intermediari invers]]. | ||
+ | |||
+ | * Feu una còpia de la base de dades de la wiki (en aquesta explicació serà ''wiki_binefa_cat.sql''). Si no us recordeu dels paràmetres, feu-li un cop d'ull a l'arxiu '''LocalSettings.php''' present al directori arrel de la wiki. | ||
+ | |||
+ | * Feu una còpia del directori arrel de la wiki | ||
+ | |||
+ | = Prova del contenidor docker a migrar = | ||
+ | Es cerca la versió actual del wiki en funcionament a l'enllaç "[https://wiki.binefa.cat/index.php?title=Especial:P%C3%A0gines_especials Pàgines especials]" / "[https://wiki.binefa.cat/index.php?title=Especial:Versi%C3%B3 Versió]". En el cas d'aquest exemple és la versió 1.29.0 | ||
+ | |||
+ | Es prova el funcionament, sense volums associats ni base de dades, a un domini secundari de prova (Aquest domini ha d'estar configurat a la configuració DNS del nostre proveïdor de nom de domini): | ||
+ | docker run --name wiki_binefa_cat --network net -e VIRTUAL_HOST="wiki2.binefa.cat" -e LETSENCRYPT_HOST="wiki2.binefa.cat" -d mediawiki:1.29.0 | ||
+ | Un cop provat que funciona el servei web de la mediawiki, es desactiva el servei: | ||
+ | docker stop wiki_binefa_cat | ||
+ | docker rm wiki_binefa_cat | ||
+ | |||
+ | = Connexió amb la base de dades = | ||
+ | Per tal de poder fer servir més d'una base de dades al nostre sistema dockeritzat, es canvia el port normal de funcionament a les bases de dades SQL, el 3306, per un altre exclusiu per al servei de cada wiki, en aquest cas és el 3309. | ||
+ | |||
+ | També es comenten els volums relacionats amb el contingut html de la wiki a migrar i de l'arxiu LocalSettings.php | ||
+ | |||
+ | Al mateix directori a on és [https://www.things.cat/index.php/Migraci%C3%B3_d%27una_wiki_a_una_altra_dockeritzada#Arxiu_docker-compose.yml_per_a_la_primera_connexi.C3.B3_amb_la_base_de_dades docker-compose.yml] executem el contenidor docker: | ||
+ | docker-compose run --name wiki_binefa_cat -e VIRTUAL_HOST="wiki2.binefa.cat" -e LETSENCRYPT_HOST="wiki2.binefa.cat" -d web | ||
+ | |||
+ | Es verifica la correcta execució del contenidor docker: | ||
+ | jordi@vps-wiki:~/bin/wikis/binefa_cat$ '''docker ps -a''' | ||
+ | CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES | ||
+ | 03e0b6d10eda mediawiki:1.29.0 "docker-php-entrypoi…" 11 minutes ago Up 11 minutes 80/tcp wiki_binefa_cat | ||
+ | 6944309dd20a mysql:5.6.48 "docker-entrypoint.s…" 14 minutes ago Up 14 minutes 0.0.0.0:3309->3306/tcp, :::3309->3306/tcp binefa_cat_db_docker | ||
+ | |||
+ | Es consulta l'adreça IP del contenidor de la base de dades dins de la xarxa local de contenidors (necessari per a la configuració de la mediawiki per la generació de l'arxiu LocalSettings.php): | ||
+ | <pre>jordi@vps-wiki:~/bin/wikis/binefa_cat$ docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' binefa_cat_db_docker | ||
+ | 172.18.0.11</pre> | ||
+ | |||
+ | Aneu al navegador d'Internet i aneu a la pàgina de la wiki (en aquest exemple seria https://wiki2.binefa.cat). Si tot va bé, hi surt: | ||
+ | MediaWiki 1.29.0 | ||
+ | LocalSettings.php not found. | ||
+ | Please set up the wiki first. | ||
+ | |||
+ | Premeu a sobre de ''Please set up the wiki first''. La primera pàgina és ''Instal·lació del MediaWiki 1.29.0''. Seleccioneu la vostra llengua i la llengua de la wiki. A les dues he seleccionat ''ca - català''. | ||
+ | |||
+ | Després de prémer el botó per a continuar, i si tot ha anat bé, hi surt una pàgina amb aquest text de color verd: ''S'ha comprovat l'entorn. Podeu instal·lar el MediaWiki''. | ||
+ | |||
+ | La següent pàgina és la de connexió a la base de dades. Per a saber quines dades posar, feu-li una ullada al vostre arxiu LocalSettings.php original. En aquest exemple fem servir aquests valors: | ||
+ | $wgDBtype = "mysql"; | ||
+ | $wgDBserver = "'''172.18.0.11'''"; | ||
+ | $wgDBname = "nom_base_de_dades_sql"; | ||
+ | $wgDBuser = "usuari_sql"; | ||
+ | $wgDBpassword = "contrasenya_usuari_sql"; | ||
+ | $wgDBprefix = "wiki_bc"; | ||
+ | |||
+ | Per defecte hi surt que el tipus és ''MySQL (o compatible)'', i així ha de ser. Al ''Servidor de la base de dades'' hi surt ''localhost'' per defecte i '''ho heu de canviar per la IP del contenidor de la base de dades dins de la xarxa local de contenidors''' (en aquest exemple és 172.18.0.11). Poseu-hi el nom de la base de dades (''nom_base_de_dades_sql''), el prefix de la base de dades (''wiki_bc''). Per a aquest configuració inicial fem servir com a nom de l'usuari de la base de dades ''usuari_sql'' i com a contrasenya ''contrasenya_usuari_sql''. | ||
+ | |||
+ | La pàgina següent mostra aquestes seleccions per defecte (no les modifiqueu): Compte de la base de dades per a l'accés web ''Utilitza el mateix compte que a la instal·lació'', Motor d'emmagatzemament ''InnoDB'' i Joc de caràcters de la base de dades ''binari''. | ||
+ | |||
+ | La pàgina següent us pregunta pel nom de la wiki, el vostre nom d'usuari, contrasenya i correu electrònic. Seleccioneu Fes-me més preguntes, que ja hi és per defecte. | ||
+ | |||
+ | La pàgina següent es sobre permisos. He seleccionat a Perfil de permisos d'usuari: Només editors autoritzats, Copyright i llicència: Creative Commons Reconeixement-CompartirIgual. A Paràmetres del correu electrònic he desactivat els correus sortints. A Extensions he seleccionat ImageMap, Interwiki, Nuke i WikiEditor. A Imatges i càrregues de fitxers he habilitat Habilita la càrrega de fitxers. La resta d'opcions no les he canviat del seu estat per defecte. | ||
+ | |||
+ | Es convenient que securitzeu el vostre '''LocalSettings.php''' per a evitar intrusions: | ||
+ | # Disable anonymous editing | ||
+ | $wgGroupPermissions['*']['edit'] = false; | ||
+ | # Prevent new user registrations except by sysops | ||
+ | $wgGroupPermissions['*']['createaccount'] = false; | ||
+ | Després de continuar les dues següents pàgines informatives ens demana desar l'arxiu '''LocalSettings.php''' (és molt important desar-lo per poder continuar el següent pas). | ||
+ | |||
+ | == Arxiu docker-compose.yml per a la primera connexió amb la base de dades == | ||
+ | ### Based on https://kindalame.com/2020/11/25/self-hosting-mediawiki-with-docker/ | ||
+ | ### Docker Compose Example for Kinda Lame | ||
+ | ### Created October 2020 | ||
+ | ### Modified August 2021 by Jordi Binefa | ||
+ | ### | ||
+ | version: '3.3' | ||
+ | services: | ||
+ | web: | ||
+ | ### | ||
+ | ### We suggest using the LTS, long term support images | ||
+ | ### | ||
+ | image: mediawiki:1.29.0 | ||
+ | ports: | ||
+ | - 80:80 | ||
+ | - 443:443 | ||
+ | - '''3309''':3306 | ||
+ | links: | ||
+ | - database | ||
+ | restart: unless-stopped | ||
+ | volumes: | ||
+ | - /home/jordi/bin/wikis/binefa_cat/wikibinefacat/images:/var/www/html/images | ||
+ | '''# - /home/jordi/bin/wikis/binefa_cat/wikibinefacat/LocalSettings.php:/var/www/html/LocalSettings.php''' | ||
+ | '''# - /home/jordi/bin/wikis/binefa_cat/wikibinefacat:/var/www/html''' | ||
+ | '''# - /home/jordi/bin/wikis/binefa_cat/php:/usr/local/etc/php''' | ||
+ | networks: | ||
+ | - "net" | ||
+ | database: | ||
+ | container_name: binefa_cat_db_docker | ||
+ | image: mysql:5.6.48 | ||
+ | ports: | ||
+ | - '''3309''':3306 | ||
+ | environment: | ||
+ | MYSQL_DATABASE: 'nom_base_de_dades_sql' | ||
+ | MYSQL_USER: 'usuari_sql' | ||
+ | # | ||
+ | # Generate a secure password and place it in the area below | ||
+ | # | ||
+ | MYSQL_PASSWORD: 'contrasenya_usuari_sql' | ||
+ | MYSQL_ROOT_PASSWORD: 'contrasenya_mestra_sql' | ||
+ | MYSQL_RANDOM_ROOT_PASSWORD: 'no' | ||
+ | volumes: | ||
+ | - /home/jordi/bin/wikis/binefa_cat/database:/var/lib/mysql | ||
+ | restart: unless-stopped | ||
+ | networks: | ||
+ | - "net" | ||
+ | |||
+ | volumes: | ||
+ | certs: | ||
+ | html: | ||
+ | vhost: | ||
+ | dhparam: | ||
+ | |||
+ | networks: | ||
+ | net: | ||
+ | external: true | ||
+ | |||
+ | = Recàrrega de la base de dades = | ||
+ | Atureu el contenidor docker de la wiki, però no el de la base de dades: | ||
+ | docker stop rm_binefa_cat | ||
+ | docker rm wiki_binefa_cat | ||
+ | |||
+ | jordi@vps-wikie:~/bin/wikis/binefa_cat$ docker exec -i binefa_cat_db_docker mysql -u jordi -pfuroner2017 wiki_binefa_cat < wiki_binefa_cat.sql | ||
+ | Warning: Using a password on the command line interface can be insecure. | ||
+ | '''ERROR 1050 (42S01) at line 30: Table 'wiki_bcarchive' already exists''' | ||
+ | |||
+ | Per a evitar aquest error: | ||
+ | jordi@vps-wiki:~/bin/wikis/binefa_cat$ docker exec -it binefa_cat_db_docker bash -l | ||
+ | root@6944309dd20a:/# mysql -u ''usuari_sql'' -p | ||
+ | Enter password: ''contrasenya_usuari_sql'' | ||
+ | mysql> show databases; | ||
+ | +--------------------+ | ||
+ | | Database | | ||
+ | +--------------------+ | ||
+ | | information_schema | | ||
+ | | wiki_binefa_cat | | ||
+ | +--------------------+ | ||
+ | 2 rows in set (0.00 sec) | ||
+ | |||
+ | mysql> drop database wiki_binefa_cat; | ||
+ | Query OK, 48 rows affected (0.09 sec) | ||
+ | mysql> create database wiki_binefa_cat; | ||
+ | Query OK, 1 row affected (0.00 sec) | ||
+ | |||
+ | mysql> quit | ||
+ | Bye | ||
+ | root@6944309dd20a:/# exit | ||
+ | logout | ||
+ | jordi@vps-7d867fbd:~/bin/wikis/binefa_cat$ docker exec -i binefa_cat_db_docker mysql -u jordi -pfuroner2017 wiki_binefa_cat < wiki_binefa_cat.sql | ||
+ | Warning: Using a password on the command line interface can be insecure. | ||
+ | |||
+ | Copieu '''LocalSettings.php''' a la carpeta indicada als volums de l'arxiu docker-compose.yml (a l'exemple /home/jordi/bin/wikis/binefa_cat/wikibinefacat). Verifiqueu que hi consta l'adreça final real de la wiki: | ||
+ | $wgServer = "https://wiki2.binefa.cat"; | ||
+ | |||
+ | Torneu a executar el contenidor: | ||
+ | docker-compose run --name wiki_binefa_cat -e VIRTUAL_HOST="wiki2.binefa.cat" -e LETSENCRYPT_HOST="wiki2.binefa.cat" -d web | ||
+ | |||
+ | == Arxiu docker-compose.yml per a la connexió amb la base de dades actualitzada == | ||
+ | ### Based on https://kindalame.com/2020/11/25/self-hosting-mediawiki-with-docker/ | ||
+ | ### Docker Compose Example for Kinda Lame | ||
+ | ### Created October 2020 | ||
+ | ### Modified August 2021 by Jordi Binefa | ||
+ | ### | ||
+ | version: '3.3' | ||
+ | services: | ||
+ | web: | ||
+ | ### | ||
+ | ### We suggest using the LTS, long term support images | ||
+ | ### | ||
+ | image: mediawiki:1.29.0 | ||
+ | ports: | ||
+ | - 80:80 | ||
+ | - 443:443 | ||
+ | - 3309:3306 | ||
+ | links: | ||
+ | - database | ||
+ | restart: unless-stopped | ||
+ | volumes: | ||
+ | - /home/jordi/bin/wikis/binefa_cat/wikibinefacat/images:/var/www/html/images | ||
+ | '''- /home/jordi/bin/wikis/binefa_cat/wikibinefacat/LocalSettings.php:/var/www/html/LocalSettings.php''' | ||
+ | '''- /home/jordi/bin/wikis/binefa_cat/wikibinefacat:/var/www/html''' | ||
+ | # - /home/jordi/bin/wikis/binefa_cat/php:/usr/local/etc/php | ||
+ | networks: | ||
+ | - "net" | ||
+ | database: | ||
+ | container_name: binefa_cat_db_docker | ||
+ | image: mysql:5.6.48 | ||
+ | ports: | ||
+ | - '''3309''':3306 | ||
+ | environment: | ||
+ | MYSQL_DATABASE: 'nom_base_de_dades_sql' | ||
+ | MYSQL_USER: 'usuari_sql' | ||
+ | # | ||
+ | # Generate a secure password and place it in the area below | ||
+ | # | ||
+ | MYSQL_PASSWORD: 'contrasenya_usuari_sql' | ||
+ | MYSQL_ROOT_PASSWORD: 'contrasenya_mestra_sql' | ||
+ | MYSQL_RANDOM_ROOT_PASSWORD: 'no' | ||
+ | volumes: | ||
+ | - /home/jordi/bin/wikis/binefa_cat/database:/var/lib/mysql | ||
+ | restart: unless-stopped | ||
+ | networks: | ||
+ | - "net" | ||
+ | |||
+ | volumes: | ||
+ | certs: | ||
+ | html: | ||
+ | vhost: | ||
+ | dhparam: | ||
+ | |||
+ | networks: | ||
+ | net: | ||
+ | external: true | ||
+ | |||
+ | = En marxa = | ||
+ | Assegureu-vos de no haver copiat l'arxiu '''.htaccess'''. Si el teniu, esborreu-lo o canvieu-li el nom. | ||
+ | |||
+ | Des del directori a on hi ha l'arxiu docker-compose.yml (per exemple ~/bin/wikis/binefa_cat): | ||
+ | docker-compose run --name wiki_binefa_cat -e VIRTUAL_HOST="wiki2.things.cat" -e LETSENCRYPT_HOST="wiki2.things.cat" -d web | ||
+ | |||
+ | Un cop verificat el seu funcionament, per a migrar-lo a l'adreça definitiva: | ||
+ | docker stop wiki_binefa_cat | ||
+ | docker rm wiki_binefa_cat | ||
+ | |||
+ | Editeu '''LocalSettings.php''' i modifiqueu la variable $wgServer per a que apunti al domini definitiu: | ||
+ | $wgServer = "https://wiki.binefa.cat"; | ||
+ | |||
+ | Torneu a executar el contenidor docker amb el nom de domini definitiu: | ||
+ | docker-compose run --name wiki_binefa_cat -e VIRTUAL_HOST="wiki.things.cat" -e LETSENCRYPT_HOST="wiki.things.cat" -d web | ||
+ | |||
+ | |||
+ | Així mateix ho podeu fer amb la resta de dominis que tingueu compartits al VPS: | ||
+ | |||
Des del directori a on hi ha l'arxiu docker-compose.yml (per exemple ~/bin/wikis/things_cat): | Des del directori a on hi ha l'arxiu docker-compose.yml (per exemple ~/bin/wikis/things_cat): | ||
docker-compose run --name wiki_things_cat -e VIRTUAL_HOST="wiki.things.cat" -e LETSENCRYPT_HOST="wiki.things.cat" -d web | docker-compose run --name wiki_things_cat -e VIRTUAL_HOST="wiki.things.cat" -e LETSENCRYPT_HOST="wiki.things.cat" -d web | ||
Línia 5: | Línia 244: | ||
docker-compose run --name wiki_binefa_com -e VIRTUAL_HOST="wiki.binefa.com" -e LETSENCRYPT_HOST="wiki.binefa.com" -d web | docker-compose run --name wiki_binefa_com -e VIRTUAL_HOST="wiki.binefa.com" -e LETSENCRYPT_HOST="wiki.binefa.com" -d web | ||
− | = | + | = docker-compose.yml de things.cat = |
### Based on https://kindalame.com/2020/11/25/self-hosting-mediawiki-with-docker/ | ### Based on https://kindalame.com/2020/11/25/self-hosting-mediawiki-with-docker/ | ||
### Docker Compose Example for Kinda Lame | ### Docker Compose Example for Kinda Lame | ||
Línia 66: | Línia 305: | ||
external: true | external: true | ||
− | = | + | = docker-compose.yml de binefa.com = |
### Based on https://kindalame.com/2020/11/25/self-hosting-mediawiki-with-docker/ | ### Based on https://kindalame.com/2020/11/25/self-hosting-mediawiki-with-docker/ | ||
### Docker Compose Example for Kinda Lame | ### Docker Compose Example for Kinda Lame |
Revisió de 20:18, 28 set 2024
Contingut
Còpia de la wiki original
La migració explicada a aquesta pàgina és per a poder integrar una wiki preexistent darrere un Servidor intermediari invers.
- Feu una còpia de la base de dades de la wiki (en aquesta explicació serà wiki_binefa_cat.sql). Si no us recordeu dels paràmetres, feu-li un cop d'ull a l'arxiu LocalSettings.php present al directori arrel de la wiki.
- Feu una còpia del directori arrel de la wiki
Prova del contenidor docker a migrar
Es cerca la versió actual del wiki en funcionament a l'enllaç "Pàgines especials" / "Versió". En el cas d'aquest exemple és la versió 1.29.0
Es prova el funcionament, sense volums associats ni base de dades, a un domini secundari de prova (Aquest domini ha d'estar configurat a la configuració DNS del nostre proveïdor de nom de domini):
docker run --name wiki_binefa_cat --network net -e VIRTUAL_HOST="wiki2.binefa.cat" -e LETSENCRYPT_HOST="wiki2.binefa.cat" -d mediawiki:1.29.0
Un cop provat que funciona el servei web de la mediawiki, es desactiva el servei:
docker stop wiki_binefa_cat docker rm wiki_binefa_cat
Connexió amb la base de dades
Per tal de poder fer servir més d'una base de dades al nostre sistema dockeritzat, es canvia el port normal de funcionament a les bases de dades SQL, el 3306, per un altre exclusiu per al servei de cada wiki, en aquest cas és el 3309.
També es comenten els volums relacionats amb el contingut html de la wiki a migrar i de l'arxiu LocalSettings.php
Al mateix directori a on és docker-compose.yml executem el contenidor docker:
docker-compose run --name wiki_binefa_cat -e VIRTUAL_HOST="wiki2.binefa.cat" -e LETSENCRYPT_HOST="wiki2.binefa.cat" -d web
Es verifica la correcta execució del contenidor docker:
jordi@vps-wiki:~/bin/wikis/binefa_cat$ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 03e0b6d10eda mediawiki:1.29.0 "docker-php-entrypoi…" 11 minutes ago Up 11 minutes 80/tcp wiki_binefa_cat 6944309dd20a mysql:5.6.48 "docker-entrypoint.s…" 14 minutes ago Up 14 minutes 0.0.0.0:3309->3306/tcp, :::3309->3306/tcp binefa_cat_db_docker
Es consulta l'adreça IP del contenidor de la base de dades dins de la xarxa local de contenidors (necessari per a la configuració de la mediawiki per la generació de l'arxiu LocalSettings.php):
jordi@vps-wiki:~/bin/wikis/binefa_cat$ docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' binefa_cat_db_docker 172.18.0.11
Aneu al navegador d'Internet i aneu a la pàgina de la wiki (en aquest exemple seria https://wiki2.binefa.cat). Si tot va bé, hi surt:
MediaWiki 1.29.0 LocalSettings.php not found. Please set up the wiki first.
Premeu a sobre de Please set up the wiki first. La primera pàgina és Instal·lació del MediaWiki 1.29.0. Seleccioneu la vostra llengua i la llengua de la wiki. A les dues he seleccionat ca - català.
Després de prémer el botó per a continuar, i si tot ha anat bé, hi surt una pàgina amb aquest text de color verd: S'ha comprovat l'entorn. Podeu instal·lar el MediaWiki.
La següent pàgina és la de connexió a la base de dades. Per a saber quines dades posar, feu-li una ullada al vostre arxiu LocalSettings.php original. En aquest exemple fem servir aquests valors:
$wgDBtype = "mysql"; $wgDBserver = "172.18.0.11"; $wgDBname = "nom_base_de_dades_sql"; $wgDBuser = "usuari_sql"; $wgDBpassword = "contrasenya_usuari_sql"; $wgDBprefix = "wiki_bc";
Per defecte hi surt que el tipus és MySQL (o compatible), i així ha de ser. Al Servidor de la base de dades hi surt localhost per defecte i ho heu de canviar per la IP del contenidor de la base de dades dins de la xarxa local de contenidors (en aquest exemple és 172.18.0.11). Poseu-hi el nom de la base de dades (nom_base_de_dades_sql), el prefix de la base de dades (wiki_bc). Per a aquest configuració inicial fem servir com a nom de l'usuari de la base de dades usuari_sql i com a contrasenya contrasenya_usuari_sql.
La pàgina següent mostra aquestes seleccions per defecte (no les modifiqueu): Compte de la base de dades per a l'accés web Utilitza el mateix compte que a la instal·lació, Motor d'emmagatzemament InnoDB i Joc de caràcters de la base de dades binari.
La pàgina següent us pregunta pel nom de la wiki, el vostre nom d'usuari, contrasenya i correu electrònic. Seleccioneu Fes-me més preguntes, que ja hi és per defecte.
La pàgina següent es sobre permisos. He seleccionat a Perfil de permisos d'usuari: Només editors autoritzats, Copyright i llicència: Creative Commons Reconeixement-CompartirIgual. A Paràmetres del correu electrònic he desactivat els correus sortints. A Extensions he seleccionat ImageMap, Interwiki, Nuke i WikiEditor. A Imatges i càrregues de fitxers he habilitat Habilita la càrrega de fitxers. La resta d'opcions no les he canviat del seu estat per defecte.
Es convenient que securitzeu el vostre LocalSettings.php per a evitar intrusions:
# Disable anonymous editing $wgGroupPermissions['*']['edit'] = false; # Prevent new user registrations except by sysops $wgGroupPermissions['*']['createaccount'] = false;
Després de continuar les dues següents pàgines informatives ens demana desar l'arxiu LocalSettings.php (és molt important desar-lo per poder continuar el següent pas).
Arxiu docker-compose.yml per a la primera connexió amb la base de dades
### Based on https://kindalame.com/2020/11/25/self-hosting-mediawiki-with-docker/ ### Docker Compose Example for Kinda Lame ### Created October 2020 ### Modified August 2021 by Jordi Binefa ### version: '3.3' services: web: ### ### We suggest using the LTS, long term support images ### image: mediawiki:1.29.0 ports: - 80:80 - 443:443 - 3309:3306 links: - database restart: unless-stopped volumes: - /home/jordi/bin/wikis/binefa_cat/wikibinefacat/images:/var/www/html/images # - /home/jordi/bin/wikis/binefa_cat/wikibinefacat/LocalSettings.php:/var/www/html/LocalSettings.php # - /home/jordi/bin/wikis/binefa_cat/wikibinefacat:/var/www/html # - /home/jordi/bin/wikis/binefa_cat/php:/usr/local/etc/php networks: - "net" database: container_name: binefa_cat_db_docker image: mysql:5.6.48 ports: - 3309:3306 environment: MYSQL_DATABASE: 'nom_base_de_dades_sql' MYSQL_USER: 'usuari_sql' # # Generate a secure password and place it in the area below # MYSQL_PASSWORD: 'contrasenya_usuari_sql' MYSQL_ROOT_PASSWORD: 'contrasenya_mestra_sql' MYSQL_RANDOM_ROOT_PASSWORD: 'no' volumes: - /home/jordi/bin/wikis/binefa_cat/database:/var/lib/mysql restart: unless-stopped networks: - "net" volumes: certs: html: vhost: dhparam: networks: net: external: true
Recàrrega de la base de dades
Atureu el contenidor docker de la wiki, però no el de la base de dades:
docker stop rm_binefa_cat docker rm wiki_binefa_cat
jordi@vps-wikie:~/bin/wikis/binefa_cat$ docker exec -i binefa_cat_db_docker mysql -u jordi -pfuroner2017 wiki_binefa_cat < wiki_binefa_cat.sql Warning: Using a password on the command line interface can be insecure. ERROR 1050 (42S01) at line 30: Table 'wiki_bcarchive' already exists
Per a evitar aquest error:
jordi@vps-wiki:~/bin/wikis/binefa_cat$ docker exec -it binefa_cat_db_docker bash -l root@6944309dd20a:/# mysql -u usuari_sql -p Enter password: contrasenya_usuari_sql mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | wiki_binefa_cat | +--------------------+ 2 rows in set (0.00 sec) mysql> drop database wiki_binefa_cat; Query OK, 48 rows affected (0.09 sec) mysql> create database wiki_binefa_cat; Query OK, 1 row affected (0.00 sec) mysql> quit Bye root@6944309dd20a:/# exit logout jordi@vps-7d867fbd:~/bin/wikis/binefa_cat$ docker exec -i binefa_cat_db_docker mysql -u jordi -pfuroner2017 wiki_binefa_cat < wiki_binefa_cat.sql Warning: Using a password on the command line interface can be insecure.
Copieu LocalSettings.php a la carpeta indicada als volums de l'arxiu docker-compose.yml (a l'exemple /home/jordi/bin/wikis/binefa_cat/wikibinefacat). Verifiqueu que hi consta l'adreça final real de la wiki:
$wgServer = "https://wiki2.binefa.cat";
Torneu a executar el contenidor:
docker-compose run --name wiki_binefa_cat -e VIRTUAL_HOST="wiki2.binefa.cat" -e LETSENCRYPT_HOST="wiki2.binefa.cat" -d web
Arxiu docker-compose.yml per a la connexió amb la base de dades actualitzada
### Based on https://kindalame.com/2020/11/25/self-hosting-mediawiki-with-docker/ ### Docker Compose Example for Kinda Lame ### Created October 2020 ### Modified August 2021 by Jordi Binefa ### version: '3.3' services: web: ### ### We suggest using the LTS, long term support images ### image: mediawiki:1.29.0 ports: - 80:80 - 443:443 - 3309:3306 links: - database restart: unless-stopped volumes: - /home/jordi/bin/wikis/binefa_cat/wikibinefacat/images:/var/www/html/images - /home/jordi/bin/wikis/binefa_cat/wikibinefacat/LocalSettings.php:/var/www/html/LocalSettings.php - /home/jordi/bin/wikis/binefa_cat/wikibinefacat:/var/www/html # - /home/jordi/bin/wikis/binefa_cat/php:/usr/local/etc/php networks: - "net" database: container_name: binefa_cat_db_docker image: mysql:5.6.48 ports: - 3309:3306 environment: MYSQL_DATABASE: 'nom_base_de_dades_sql' MYSQL_USER: 'usuari_sql' # # Generate a secure password and place it in the area below # MYSQL_PASSWORD: 'contrasenya_usuari_sql' MYSQL_ROOT_PASSWORD: 'contrasenya_mestra_sql' MYSQL_RANDOM_ROOT_PASSWORD: 'no' volumes: - /home/jordi/bin/wikis/binefa_cat/database:/var/lib/mysql restart: unless-stopped networks: - "net" volumes: certs: html: vhost: dhparam: networks: net: external: true
En marxa
Assegureu-vos de no haver copiat l'arxiu .htaccess. Si el teniu, esborreu-lo o canvieu-li el nom.
Des del directori a on hi ha l'arxiu docker-compose.yml (per exemple ~/bin/wikis/binefa_cat):
docker-compose run --name wiki_binefa_cat -e VIRTUAL_HOST="wiki2.things.cat" -e LETSENCRYPT_HOST="wiki2.things.cat" -d web
Un cop verificat el seu funcionament, per a migrar-lo a l'adreça definitiva:
docker stop wiki_binefa_cat docker rm wiki_binefa_cat
Editeu LocalSettings.php i modifiqueu la variable $wgServer per a que apunti al domini definitiu:
$wgServer = "https://wiki.binefa.cat";
Torneu a executar el contenidor docker amb el nom de domini definitiu:
docker-compose run --name wiki_binefa_cat -e VIRTUAL_HOST="wiki.things.cat" -e LETSENCRYPT_HOST="wiki.things.cat" -d web
Així mateix ho podeu fer amb la resta de dominis que tingueu compartits al VPS:
Des del directori a on hi ha l'arxiu docker-compose.yml (per exemple ~/bin/wikis/things_cat):
docker-compose run --name wiki_things_cat -e VIRTUAL_HOST="wiki.things.cat" -e LETSENCRYPT_HOST="wiki.things.cat" -d web
Des del directori a on hi ha l'arxiu docker-compose.yml (per exemple ~/bin/wikis/binefa_com):
docker-compose run --name wiki_binefa_com -e VIRTUAL_HOST="wiki.binefa.com" -e LETSENCRYPT_HOST="wiki.binefa.com" -d web
docker-compose.yml de things.cat
### Based on https://kindalame.com/2020/11/25/self-hosting-mediawiki-with-docker/ ### Docker Compose Example for Kinda Lame ### Created October 2020 ### Modified August 2021 by Jordi Binefa ### version: '3.3' services: web: # image: mediawiki:lts # Es recomana la versió LTS per a wikis a partir de zero image: mediawiki:1.31.3 # Aquesta versió era l'original. Recomanen fer servir la mateixa per a la migració ports: ### We are running the server behind NGINX which we ### recommend all users doing. And due to the need to ### login to the site we recommend running Certbot ### on your domain and putting the proxy behind ### an SSL certificate to keep your passwords safe! ### - 80:80 - 443:443 - 3307:3306 # Es connecta amb la base de dades de sota mitjançant el port 3307. Això ens permet posar diferents bases de dades links: - database restart: unless-stopped volumes: - /home/jordi/bin/wikis/things_cat/www_things_cat_segur/images:/var/www/html/images - /home/jordi/bin/wikis/things_cat/www_things_cat_segur/LocalSettings.php:/var/www/html/LocalSettings.php - /home/jordi/bin/wikis/things_cat/www_things_cat_segur:/var/www/html # - /home/jordi/bin/wikis/things_cat/php:/usr/local/etc/php networks: - "net" database: container_name: things_cat_db_docker image: mysql:5.6.48 ports: - 3307:3306 # Es connecta amb la wiki de dalt mitjançant el port 3307. Això ens permet posar diferents bases de dades environment: MYSQL_DATABASE: 'wiki_things_cat' MYSQL_USER: 'usuari_BD_things' # # Generate a secure password and place it in the area below # MYSQL_PASSWORD: 'contrasenya_BD_things' MYSQL_ROOT_PASSWORD: 'alguna' MYSQL_RANDOM_ROOT_PASSWORD: 'no' volumes: - /home/jordi/bin/wikis/things_cat/database:/var/lib/mysql restart: unless-stopped networks: - "net" volumes: certs: html: vhost: dhparam: networks: net: external: true
docker-compose.yml de binefa.com
### Based on https://kindalame.com/2020/11/25/self-hosting-mediawiki-with-docker/ ### Docker Compose Example for Kinda Lame ### Created October 2020 ### Modified August 2021 by Jordi Binefa ### version: '3.3' services: web: ### ### We suggest using the LTS, long term support images ### # image: mediawiki:lts # Es recomana la versió LTS per a wikis a partir de zero image: mediawiki:1.33.0 # Aquesta versió era l'original. Recomanen fer servir la mateixa per a la migració ports: - 80:80 - 443:443 - 3308:3306 # Es connecta amb la base de dades de sota mitjançant el port 3308. Això ens permet posar diferents bases de dades links: - database restart: unless-stopped volumes: - /home/jordi/bin/wikis/binefa_com/www_binefa_com/images:/var/www/html/images - /home/jordi/bin/wikis/binefa_com/www_binefa_com/LocalSettings.php:/var/www/html/LocalSettings.php - /home/jordi/bin/wikis/binefa_com/www_binefa_com:/var/www/html # - /home/jordi/bin/wikis/binefa_com/php:/usr/local/etc/php networks: - "net" database: container_name: binefa_com_db_docker image: mysql:5.6.48 ports: - 3308:3306 # Es connecta amb la wiki de dalt mitjançant el port 3308. Això ens permet posar diferents bases de dades environment: MYSQL_DATABASE: 'wiki_binefa_com' MYSQL_USER: 'usuari_BD_binefa_com' # # Generate a secure password and place it in the area below # MYSQL_PASSWORD: 'contrasenya_BD_binefa_com' MYSQL_ROOT_PASSWORD: 'algunaAltra' MYSQL_RANDOM_ROOT_PASSWORD: 'no' volumes: - /home/jordi/bin/wikis/binefa_com/database:/var/lib/mysql restart: unless-stopped networks: - "net" volumes: certs: html: vhost: dhparam: networks: net: external: true