Salut tout le monde ! Je suis un nouvel utilisateur de Discourse venant de Chine et je rencontre un problème étrange lors de l’installation standard.
Après avoir exécuté la commande ./discourse-setup, mon terminal s’est bloqué sur la commande pendant longtemps (plus de 20 minutes).
I, [2023-06-04T07:47:29.161469 #1] INFO -- : cd /var/www/discourse & su discourse -c 'bundle config --local deployment true'
I, [2023-06-04T07:47:29.544117 #1] INFO -- :
I, [2023-06-04T07:47:29.544260 #1] INFO -- : cd /var/www/discourse & su discourse -c 'bundle config --local without "development test"'
I, [2023-06-04T07:47:29.725190 #1] INFO -- : Vous remplacez la valeur locale actuelle de without, qui est actuellement "test:development"
I, [2023-06-04T07:47:29.725290 #1] INFO -- : cd /var/www/discourse & su discourse -c 'bundle install --retry 3 --jobs 4'
J’ai recherché des questions similaires sur notre forum, comme Local installation of discourse on Centos 7, qui suggèrent qu’il pourrait s’agir d’un problème réseau. Peut-être est-ce simplement parce que mon serveur est en Chine et que je rencontre des problèmes réseau, mais j’ai testé via wget https://rubygems.org/, cela a fonctionné.
Bien, c’est bien un problème de réseau, car mon serveur est en Chine.
J’ai trouvé les solutions, je les copie ici en chinois.
Installation de Discourse dans un environnement national
La mise à niveau et la maintenance des versions de Discourse sont effectuées sur GitHub, et Discourse lui-même est écrit en Ruby.
L’accès lent aux sites Web étrangers est un problème avec les serveurs CVM, les serveurs légers de Tencent Cloud et les ECS d’Alibaba Cloud, principalement en raison des limitations de débit mises en place pour soutenir les dépôts Git nationaux.
Lors du clonage de Discourse hébergé sur GitHub, vous pouvez accélérer l’accès à GitHub en remplaçant le lien de clonage github.com par github.com.cnpmjs.org, par exemple :
Remplacez git clone https://github.com/discourse/discourse_docker.git par git clone https://github.com.cnpmjs.org/discourse/discourse_docker.git
En outre, lors de l’exécution de ./discourse-setup, le programme d’installation installera également des projets supplémentaires dans Docker,
Par exemple : gem update, qui nécessite également l’ajout d’un miroir Ruby.
Vous pouvez ajouter l’adresse du miroir Ruby en modifiant le fichier de configuration, les fichiers principalement concernés sont docker.git
En outre, lors de l’exécution de ./discourse-setup, le programme d’installation installera également des projets supplémentaires dans Docker,
Par exemple : gem update, qui nécessite également l’ajout d’un miroir Ruby.
Vous pouvez ajouter l’adresse du miroir Ruby en modifiant le fichier de configuration, les fichiers principalement concernés sont
Avant de rechercher les endroits où gem update est appelé dans les fichiers ci-dessus, ajoutez la déclaration suivante pour configurer le site miroir :
Les forums ont généralement besoin d’un serveur de messagerie pour envoyer divers codes de vérification, messages de connexion, récupération de mot de passe, notifications, etc.
La messagerie d’entreprise gratuite de NetEase (ym.163.com) peut répondre à ce besoin. L’activation du service SMTP pour la messagerie QQ est également possible, et bien sûr, vous pouvez également acheter une messagerie payante.
La messagerie d’entreprise gratuite de NetEase active le service SMTP par défaut. Voici un exemple de configuration de app.yml : Discourse ne semble pas prendre en charge les connexions SSL, nous utilisons donc directement le service SMTP ici. Notez qu’il faut désactiver explicitement la fonction start_tls.
De plus, l’adresse e-mail de l’administrateur du site ne doit pas être identique à DISCOURSE_SMTP_USER_NAM, sinon vous pourriez ne pas recevoir les e-mails d’inscription.
Si vous êtes en Chine continentale, vous devrez accélérer le miroir. Trouvez le bloc templates dans le fichier de configuration et ajoutez le miroir national templates/web.china.template.yml :
C’est apparemment dû à bundle install. Cette opération prendra beaucoup de temps, même si le serveur est déployé à l’étranger. Sans parler du fait que vous rencontrerez une résistance bien connue.
Faites attention au même problème lors de yarn install plus tard.
Il vaut mieux ne pas placer le serveur en Chine, car même le clonage de discourse depuis github pourrait vous donner une erreur…
Pour les développeurs en Chine : Apparemment, ce problème est dû à bundle install. Même si le serveur est déployé à l’étranger, cette opération prendra beaucoup de temps. Sans parler du fait que vous rencontrerez une résistance bien connue.
Faites attention au même problème lorsque vous exécuterez yarn install plus tard.
Il vaut mieux ne pas placer le serveur en Chine, car même le clonage de discourse depuis github pourrait vous donner une erreur…
Le serveur a un proxy, peut accéder normalement à GitHub, gem/bundle a trouvé des tutoriels pour changer la source nationale, et le déploiement peut maintenant être effectué normalement (mais il est bloqué par un manque de mémoire
J’aimerais aussi avoir un serveur accessible depuis l’extérieur, mais c’est trop cher
Certains serveurs chinois sont plus chers que les serveurs étrangers (oui, je parle de toi, Alibaba Cloud), cela dépend du fabricant.
Attends, tu as vraiment choisi Alibaba Cloud… Ah, bon…