Quel guide ?
Le port 2045 me rappelle quelque chose, mais je n’arrive pas à mettre le doigt dessus ![]()
Après quelques échecs d’installation il y a quelques mois, je l’ai changé en 2045, mais cela n’est pas pertinent car c’est commenté avec #. Le problème ne vient pas de ce port.
J’ai suivi ce guide discourse/docs/INSTALL-cloud.md at main · discourse/discourse · GitHub
Eh bien… Il a été modifié, les doigts glissants arrivent ![]()
Je comprends, mais pour arriver à 2045 à un moment donné, vous avez peut-être suivi quelque chose qui vous a mené ici et maintenant.
Je pense avoir suivi le même poste car j’ai moi aussi un proxy 2045 dans ma configuration nginx pour une raison que je ne me souviens plus…
:visage_fou:
@Benjamin_D il n’y a pas de port 2045 dans mon fichier nginx, vous pouvez le vérifier en remontant. Cette ligne dans app.yml est commentée par un #, donc je ne comprends pas pourquoi vous pointez du doigt cette ligne. Le problème ne vient certainement pas de là, sinon le message d’erreur l’aurait signalé.
Je peux supprimer cette ligne du fichier app.yml si vous le souhaitez, le résultat serait le même qu’avant.
Je pense que lors de la première installation, le conteneur indiquait que les ports 80 ou 443 étaient déjà utilisés, donc j’ai peut-être lu quelque part qu’il fallait ajouter un port aléatoire. Mais encore une fois, cette ligne est commentée avec #, ce qui devrait l’ignorer.
Pas du tout, nous essayons simplement de retracer tes étapes et de comparer notre configuration à la tienne.
Cette erreur est définitivement liée à une mise à niveau PostgreSQL échouée.
Consultez le sujet méta pour résoudre le problème.
Je vais vérifier le sujet de la mise à niveau de PostgreSQL. Je reviendrai si je rencontre une autre erreur.
Alors, après avoir mis à niveau PostgreSQL de la version 10 à la version 12, je rencontre toujours des problèmes après avoir exécuté la commande : ./launcher rebuild app
sudo ./launcher rebuild app
fatal: not a git repository (or any of the parent directories): .git
Arrêt de l'ancien conteneur
+ /usr/bin/docker stop -t 60 app
app
cd /pups && git pull && /pups/bin/pups --stdin
Already up to date.
I, [2020-07-13T13:34:21.635079 #1] INFO -- : Loading --stdin
I, [2020-07-13T13:34:21.643465 #1] INFO -- : > locale-gen $LANG && update-locale
I, [2020-07-13T13:34:21.713536 #1] INFO -- : Génération des paramètres régionaux (cela peut prendre un certain temps)...
Génération terminée.
I, [2020-07-13T13:34:21.713917 #1] INFO -- : > mkdir -p /shared/postgres_run
I, [2020-07-13T13:34:21.720693 #1] INFO -- :
I, [2020-07-13T13:34:21.721042 #1] INFO -- : > chown postgres:postgres /shared/postgres_run
I, [2020-07-13T13:34:21.724919 #1] INFO -- :
I, [2020-07-13T13:34:21.725387 #1] INFO -- : > chmod 775 /shared/postgres_run
I, [2020-07-13T13:34:21.728768 #1] INFO -- :
I, [2020-07-13T13:34:21.729117 #1] INFO -- : > rm -fr /var/run/postgresql
I, [2020-07-13T13:34:21.732712 #1] INFO -- :
I, [2020-07-13T13:34:21.733008 #1] INFO -- : > ln -s /shared/postgres_run /var/run/postgresql
I, [2020-07-13T13:34:21.735981 #1] INFO -- :
I, [2020-07-13T13:34:21.736200 #1] INFO -- : > socat /dev/null UNIX-CONNECT:/shared/postgres_run/.s.PGSQL.5432 || exit 0 && echo postgres déjà en cours d'exécution, arrêtez le conteneur ; exit 1
2020/07/13 13:34:21 socat[27] E connect(6, AF=1 "/shared/postgres_run/.s.PGSQL.5432", 36): Aucun fichier ou répertoire
I, [2020-07-13T13:34:21.751266 #1] INFO -- :
I, [2020-07-13T13:34:21.752242 #1] INFO -- : > rm -fr /shared/postgres_run/.s*
I, [2020-07-13T13:34:21.757300 #1] INFO -- :
I, [2020-07-13T13:34:21.757817 #1] INFO -- : > rm -fr /shared/postgres_run/*.pid
I, [2020-07-13T13:34:21.761287 #1] INFO -- :
I, [2020-07-13T13:34:21.761706 #1] INFO -- : > mkdir -p /shared/postgres_run/10-main.pg_stat_tmp
I, [2020-07-13T13:34:21.765114 #1] INFO -- :
I, [2020-07-13T13:34:21.765725 #1] INFO -- : > chown postgres:postgres /shared/postgres_run/10-main.pg_stat_tmp
I, [2020-07-13T13:34:21.770573 #1] INFO -- :
I, [2020-07-13T13:34:21.781057 #1] INFO -- : Fichier > /etc/service/postgres/run chmod: +x chown:
I, [2020-07-13T13:34:21.791681 #1] INFO -- : Fichier > /etc/service/postgres/log/run chmod: +x chown:
I, [2020-07-13T13:34:21.800244 #1] INFO -- : Fichier > /etc/runit/3.d/99-postgres chmod: +x chown:
I, [2020-07-13T13:34:21.808363 #1] INFO -- : Fichier > /root/upgrade_postgres chmod: +x chown:
I, [2020-07-13T13:34:21.809170 #1] INFO -- : > chown -R root /var/lib/postgresql/10/main
chown: impossible d'accéder à '/var/lib/postgresql/10/main' : Aucun fichier ou répertoire
I, [2020-07-13T13:34:21.817357 #1] INFO -- :
ÉCHEC
--------------------
Pups::ExecError: chown -R root /var/lib/postgresql/10/main a échoué avec le code de retour #<Process::Status: pid 42 exit 1>
Emplacement de l'échec : /pups/lib/pups/exec_command.rb:112:in `spawn'
exec a échoué avec les paramètres {"cmd"=>["chown -R root /var/lib/postgresql/10/main", "[ ! -e /shared/postgres_data ] && install -d -m 0755 -o postgres -g postgres /shared/postgres_data && sudo -E -u postgres /usr/lib/postgresql/10/bin/initdb -D /shared/postgres_data || exit 0", "chown -R postgres:postgres /shared/postgres_data", "chown -R postgres:postgres /var/run/postgresql"]}
3e7af3d49be0616ae52ee03d6ee0867d25e5db96de40d92c7ec7abeded5d3262
** ÉCHEC DU BOOTSTRAP ** Veuillez faire défiler vers le haut et rechercher les messages d'erreur antérieurs, il peut y en avoir plus d'un.
./discourse-doctor peut aider à diagnostiquer le problème.
Je ne comprends pas, j’abandonne… ;/
Que signifie « fatal: not a git repository (or any of the parent directories): .git » ??
De plus, j’obtiens le message suivant :
sudo ./discourse-setup
Le fichier de configuration containers/app.yml existe déjà !
. . . reconfiguration en cours . . .
Sauvegarde de l'ancien fichier sous app.yml.2020-07-13-153931.bak
Arrêt du conteneur existant dans 5 secondes ou appuyez sur Control-C pour annuler.
+ /usr/bin/docker stop -t 10 app
app
4 Go de mémoire et 2 cœurs de processeur physique détectés
paramétrage de db_shared_buffers = 1024Mo
paramétrage de UNICORN_WORKERS = 4
Les paramètres de mémoire dans containers/app.yml ont été mis à jour.
Nom d'hôte pour votre Discourse ? [cp2077.eu] :
Vérification de votre nom de domaine . . .
AVERTISSEMENT : Le port 443 de l'ordinateur ne semble pas être accessible via le nom d'hôte : cp2077.eu.
AVERTISSEMENT : La connexion à http://cp2077.eu (port 80) échoue également.
Cela suggère que cp2077.eu résout vers une adresse IP qui ne parvient pas à atteindre cette
machine où vous installez Discourse.
La première chose à faire est de confirmer que cp2077.eu résout bien vers l'adresse IP de ce
serveur.
Vous le faites généralement au même endroit où vous avez acheté le domaine.
Si vous êtes certain que l'adresse IP résout correctement, cela pourrait être un problème de pare-feu.
Une recherche web sur « ouvrir les ports VOTRE SERVICE CLOUD » pourrait aider.
Cet outil est conçu uniquement pour les installations les plus standard. Si vous ne pouvez pas résoudre
le problème ci-dessus, vous devrez modifier containers/app.yml vous-même, puis taper :
./launcher rebuild app
Le site web est en ligne et sécurisé via le port 443 (SSL), je ne comprends pas pourquoi il indique qu’il ne peut pas atteindre le site web. Je ne sais plus quoi faire. S’il vous plaît, aidez-moi.
Vous utilisez un proxy inverse, vous ne pouvez donc pas utiliser discourse-setup. De plus, vous devez probablement supprimer le modèle let’s encrypt de votre fichier de configuration.
Je ne sais pas quel pourrait être votre problème avec postgres.
Tu veux dire ces lignes sur le proxy dans mon fichier nginx ?
N’essayez-vous pas de réinstaller Discourse « par-dessus » une installation précédente (celle de février), d’où le fichier app.yml existant visible sur la capture d’écran du premier message, et la nécessité de mettre à niveau PostgreSQL de la version 10 à la 12 (ce que je ne pense pas que vous ayez fait, au vu du message d’erreur ; peut-être l’avez-vous fait sur votre hôte, mais pas dans votre conteneur de données, qui pourrait ne plus exister ; je ne connais pas l’état de votre installation précédente) ?
Avez-vous une sauvegarde ? Voulez-vous une installation neuve ?
Je pense que @pfaffman veut dire que, puisque vous utilisez un proxy inverse (nginx), le script discourse-setup risque de ne pas fonctionner (je n’ai jamais fait tourner Discourse avec un proxy inverse, donc je ne sais pas si c’est le cas). Si vous définissez correctement le fichier app.yml, cela devrait aussi fonctionner sans exécuter discourse-setup.
Cela semble indiquer qu’il essaie d’exécuter ce code dans un conteneur qui n’a pas PostgreSQL 10 (vous utilisez probablement la version 12). Si c’est bien ce que vous souhaitez, et que votre modèle est templates/postgres.template.yml comme indiqué dans votre premier message, il est possible que le dépôt discourse_docker sur votre machine (dans /var/discourse) soit obsolète.
Votre installation de Discourse est-elle récente ou ancienne ? Mettre à jour le dépôt pourrait résoudre ce problème :
cd /var/discourse
git pull
Puis exécutez l’étape de reconstruction.
Assurez-vous également que le conteneur Discourse est détruit et recréé (et pas seulement arrêté et redémarré) pour éviter d’utiliser un ancien conteneur (je pense que la reconstruction de Discourse devrait déjà le faire, mais au cas où…).
Si cela ne fonctionne toujours pas et que vous avez une sauvegarde, il est conseillé d’essayer d’installer sur une nouvelle instance propre, comme l’a suggéré @Benjamin_D.
Je tente d’installer Discourse pour un autre domaine « par-dessus » ma précédente installation. Pour être précis, il s’agit de deux domaines sur le même serveur. Veuillez excuser mon ignorance : à quel endroit du fichier app.yml puis-je trouver les informations relatives à PostgreSQL ? J’ai examiné mon app.yml mais je n’y vois rien de lié à cela.
J’ai bien des sauvegardes des anciens fichiers que j’avais ; j’ai en quelque sorte copié certaines informations de mon installation précédente vers le nouveau app.yml pour le nouveau serveur.
Ici aussi, veuillez excuser mon ignorance : par « proxy » nginx, faites-vous référence à cette ligne ?
location / {
proxy_pass http://unix:/var/discourse/shared/standalone/nginx.http.sock;
proxy_set_header Host $http_host;
proxy_http_version 1.1;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Real-IP $remote_addr;
Avant, j’utilisais PostgreSQL 10, mais hier je l’ai mis à niveau vers la version 12.
J’aimerais beaucoup démarrer une nouvelle instance dans ce cas. Comment puis-je supprimer les anciennes pour m’assurer que tout sera installé à neuf ? Merci beaucoup.
Deux instances Discourse sur le même serveur, ce serait la configuration multisite, une toute autre histoire ![]()
Pour l’instant, je pense qu’il vaudrait mieux s’assurer d’avoir une sauvegarde du premier site, qu’il soit opérationnel avec une mise à niveau vers PostgreSQL 12, puis tenter l’aventure multisite pour laquelle je ne suis absolument pas qualifié ![]()
Merci Benjamin,
Je préférerais repartir de zéro. J’ai bien la sauvegarde du premier site, mais il s’agissait d’un test et il n’est plus nécessaire. Je souhaite donc recommencer proprement.
Comment puis-je supprimer l’ancien conteneur et tout le reste pour avoir une nouvelle base de départ ?
Avez-vous essayé de mettre à jour le dépôt discourse_docker localement (dans /var/discourse) d’abord ? Cela n’a pas fonctionné ?
Concernant le proxy inverse, c’est parce que nginx se trouve au milieu des requêtes et les achemine vers les services appropriés (au lieu d’exposer directement le service, dans ce cas Discourse, sur Internet). Ainsi, nginx agit comme un proxy inverse et les ports (80 et 443) exposés sur Internet appartiennent au service nginx.
Étrangement, la configuration de Discourse a fonctionné en février sur l’un de mes domaines, comme vous l’avez remarqué, Benjamin, vous vous en souvenez, car j’avais également publié des informations à ce sujet il y a quelque temps. Je suis donc surpris que personne n’ait jamais utilisé Discourse avec nginx. Pour être honnête, tout fonctionnait parfaitement jusqu’à hier, lorsque j’ai essayé d’installer Discourse sur un autre domaine en utilisant le même serveur.
Que dois-je exactement rechercher dans discourse_docker ? Voici le contenu de ce dossier :
discourse_docker$ ls
bin containers discourse-setup launcher README.md scripts templates
cids discourse-doctor image LICENSE samples shared
Il suffit d’exécuter git pull pour mettre à jour le dépôt (le répertoire /var/discourse lui-même est le dépôt local), comme je l’ai mentionné dans l’un des messages ci-dessus :
Ensuite, exécutez la commande de reconstruction.
D’autres personnes utilisent nginx en amont, mais cela doit être beaucoup moins fréquent que l’installation standard sur une machine dédiée uniquement à Discourse. Je ne sais pas non plus si cela rompt discourse-setup ; je fais simplement des hypothèses basées sur vos résultats, sachant que l’erreur s’est produite lors de la vérification du DNS et des ports ouverts (et en gardant à l’esprit que ce n’est pas votre conteneur Discourse qui utilise les ports 80 et 443 sur l’hôte).
D’accord, donc je suis allé dans le dossier discourse_docker comme vous l’avez mentionné, Lucas, et j’ai copié mon fichier app.yml dans les conteneurs de ce dossier, puis j’ai exécuté la commande ./launcher rebuild app.
Quelque chose s’est passé sans aucune erreur, et je pense que cela fonctionne.
Je ne veux pas porter la poisse pour l’instant, je vais essayer de configurer le nouveau compte maintenant ![]()
