Difficulté d'installation sur VM incluant CPanel et Apache

Salut tout le monde !

**Ceci est mon premier message. **

Je suis un nouvel utilisateur de Discourse venant de phpBB.
Il y a deux semaines, j’ai installé Discourse dans un conteneur Docker en utilisant Nginx, car Apache utilise les ports 80 et 443 par défaut. J’ai suivi attentivement les étapes décrites dans les guides d’installation et la configuration multisite Nginx.

J’ai pu faire fonctionner et utiliser le forum pendant une semaine, en me connectant occasionnellement pour me familiariser avec la plateforme. Lorsque j’ai demandé à l’un des utilisateurs de s’inscrire et de tester, le forum a planté le lendemain. Le navigateur a affiché le message : « Le logiciel qui alimente ce forum de discussion a rencontré un problème inattendu. » Je n’ai pas pu le résoudre, j’ai donc réinstallé entièrement le forum à partir de zéro, puis j’ai restauré les fils de discussion à partir de la dernière sauvegarde disponible. C’était jeudi dernier. Après tout cela, le forum était de nouveau opérationnel. Maintenant, il est à nouveau en panne avec une erreur Nginx 502 Bad Gateway. Je suis passé directement à la reconstruction de l’application et elle a à nouveau planté avec l’erreur :

Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate' failed with return #<Process::Status: pid 580 exit 1>.

La même chose s’est produite encore et encore la semaine dernière et cela m’a conduit à tout réinstaller à partir de zéro. Le forum est pratiquement inactif car je ne l’ai pas encore rendu public. J’ai peur de l’idée que s’il continue de planter sans activité, que pourrait-il se passer avec un groupe d’utilisateurs plus important ? Exécutez ces commandes : ./launcher enter app

**cd /var/www/discourse**
**su discourse -c 'bundle exec rake db:migrate'**

Et dans la réponse, je vois ceci qui a attiré mon attention :

connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: FATAL: the database system is starting up

J’ai essayé de redémarrer Postgress manuellement et de relancer la reconstruction, mais le processus a été à nouveau interrompu avec ce message d’erreur :

**FAILED**
**--------------------**
**Pups::ExecError: if [ -f /root/install_postgres ]; then**
**/root/install_postgres && rm -f /root/install_postgres**
**elif [ -e /shared/postgres_run/.s.PGSQL.5432 ]; then**
**socat /dev/null UNIX-CONNECT:/shared/postgres_run/.s.PGSQL.5432 || exit 0 && echo postgres already running stop container ; exit 1**
**fi**
** failed with return #<Process::Status: pid 18 exit 1>**
**Location of failure: /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/exec_command.rb:132:in `spawn'**
**exec failed with the params {"tag"=>"db", "cmd"=>"if [ -f /root/install_postgres ]; then\n /root/install_postgres && rm -f /root/install_postgres\nelif [ -e /shared/postgres_run/.s.PGSQL.5432 ]; then\n socat /dev/null UNIX-CONNECT:/shared/postgres_run/.s.PGSQL.5432 || exit 0 && echo postgres already running stop container exit ; 1\nfi\n"}**
**bootstrap failed with exit code 1**

Je ne suis pas vraiment un utilisateur expérimenté pour identifier l’erreur, mais je soupçonne que Postgres va tomber en panne à un moment donné. Cela m’a conduit à tout redémarrer et à recommencer la semaine dernière, mais je ne pense pas que ce soit une pratique courante ou saine pour quiconque.

Discourse fonctionne sur un serveur avec 4 cœurs, 6 Go de RAM et 180 Go d’espace disque. Je n’exécute actuellement que cette installation de Discourse, donc d’après ce que je comprends, je ne suis pas limité par le matériel.

Bienvenue, @Gustavo_Rip ! Désolé que vous ayez des problèmes.

Avez-vous effectué une installation standard ? Avec une installation standard, vous n’avez besoin ni de Nginx, ni d’Apache (et les deux utilisent les ports 80 et 443 par défaut). Si vous avez l’un de ceux-ci installé, vous devriez les supprimer avant de commencer.

Avez-vous besoin de multisite ? Même si c’est le cas, je vous recommanderais d’abord de faire une installation standard, puis de suivre ce guide : Setup Multisite Configuration with Let’s Encrypt and no Reverse Proxy. J’ai aidé quelqu’un avec hier, et il semble que si vous utilisez les bons noms d’hôtes et que vous n’utilisez pas Cloudflare avec le nuage orange, cela fonctionne très bien.

2 « J'aime »

Merci pfaffmann !!

Heureusement, je ne suis pas du genre à abandonner facilement, bien que ces problèmes ultérieurs m’inquiètent, d’autant plus que je ne suis pas familier à 100% avec cette plateforme.

Par défaut, mon CloudServer a Apache installé, et si je le supprime, cela cause des problèmes avec CPanel et d’autres fonctionnalités. Je l’ai essayé lors de la première installation car j’avais lu que nginx était bien meilleur et plus rapide, mais j’ai eu les problèmes que j’ai mentionnés. Par conséquent, j’ai réinstallé le système d’exploitation sur le serveur et j’ai recommencé, en suivant cette recommandation :

Ce n’est pas comme si j’avais plusieurs sites, du moins pas encore, car mon CloudServer autorise jusqu’à 5 comptes.

Quant à l’installation standard, j’ai suivi toutes les étapes pour installer Docker, Discourse, Certbot et télécharger les certificats Let’s Encrypt, mais lorsque j’ai exécuté discourse-setup, j’ai dû effectuer la configuration manuelle en suivant le lien ci-dessus et en configurant manuellement le fichier app.yml pour effectuer la reconstruction.

Vous ne voulez vraiment pas de CPanel. Il n’apporte rien et rend l’installation de Discourse beaucoup plus difficile. Et si vous l’avez, vous ne pouvez pas suivre les instructions NGinx car Apache est déjà là.

Si vous pouvez supprimer Apache et CPanel, faites-le. Sinon, je vous recommande un autre service d’hébergement.

En fait, ce que vous avez pourrait ne pas fonctionner du tout, pouvez-vous exécuter

docker run hello-world

1 « J'aime »

Quel service d’hébergement recommandez-vous ? ou lequel est le plus utilisé pour les installations de Discourse ?

Oui ! C’est le message :

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/

N’importe lequel qui n’installe pas CPanel. Il y a plusieurs sujets sur ceux recommandés. Digital Ocean est facile.

Ah. Alors si vous pouviez simplement vous débarrasser d’Apache et de CPanel, vous seriez en bonne voie. Cela semble être la voie la plus simple à suivre à partir de là où vous en êtes.

L’autre solution est de conserver CPanel et de faire en sorte que votre Apache existant devienne un proxy inverse. Vous serez cependant seul, car il y a trop de particularités spécifiques à l’installation pour que les gens puissent vous aider beaucoup ici.

Beaucoup de suggestions ici :

Merci @pfaffman pour votre temps et vos réponses !!

Je ne pense pas qu’il soit probable que je supprime Apache et CPanel. Peut-être que mon fournisseur de serveur cloud peut modifier les ports d’Apache afin qu’il n’utilise pas les mêmes que ceux de Discourse, éliminant ainsi nginx, ou modifier CPanel pour Ferozo ou un autre service. Je ne sais pas, mais je demanderai.

Cordialement !

1 « J'aime »