J'ai réussi à installer partiellement Gitlab sur un serveur Linux CentOS avec Apache, Git, PHP, PostGreSQL et MySQL. J'utilise la version Chef Cookbook version . J'ai eu le régime de ici . Je voulais l'utiliser pour gérer mon dépôt Git mieux et plus visuellement et cela semblait être un bon choix. Mais maintenant, je rencontre des problèmes pour le faire fonctionner.
Pour que cela fonctionne vraiment et que tous les fichiers soient mis à jour, j'ai décidé de réexécuter la configuration à l'aide de gitlab-ctl reconfigure
. La deuxième manche a fonctionné:
Chef Client finished, 4 resources updated
gitlab Reconfigured!
Voir Journal complet
L'hébergeur avait déjà mis NGINX sur 8080 et ne s'est pas disputé avec Apache sur le port 80 sur lequel un projet LAMP est en cours d'exécution. Mais maintenant, le serveur Web Unicorn de Ruby semble être en conflit avec NGINX. J'ai un peu travaillé avec NGINX, pas beaucoup, et c'est ma première tentative avec Gitlab. Quoi qu'il en soit, c'est ce que j'ai découvert avec l'aide de mon hébergeur.
Lorsque je me connecte à testserver.domain.net et passe la commande suivante:
netstat -ln |grep 8080
je vois
tcp 0 0 127.0.0.1:8080 0.0.0.0:* LISTEN
Donc quelque chose tourne sur 8080 Selon mon hébergeur, il devrait fonctionner sous 0.0.0.0:8080. Et lorsque nous vérifions ce qui fonctionne sur ce port, nous voyons
netstat -tupln |grep 8080
tcp 0 0 127.0.0.1:8080 0.0.0.0:* LISTEN 21627/Unicorn maste
Lorsque nous vérifions l'identifiant de processus 21627, nous voyons
cat /proc/21627/cmdline
Unicorn master -E production -c /var/opt/gitlab/gitlab-Rails/etc/Unicorn.rb /opt/gitlab/embedded/service/gitlab-Rails/config.ru
Il s’agit d’un processus Ruby et non d’un processus NGINX.
Donc, NGINX semble être en conflit avec Unicorn.
Et lorsque nous vérifions les journaux de nginx, nous constatons que nginx ne peut pas y aller pour cette raison:
tail -f /var/log/gitlab/nginx/error.log
2014/07/28 09:43:10 [emerg] 23122#0: bind() to 0.0.0.0:8080 failed (98: Address already in use)
2014/07/28 09:43:10 [emerg] 23122#0: still could not bind()
2014/07/28 09:43:12 [emerg] 23123#0: bind() to 0.0.0.0:8080 failed (98: Address already in use)
2014/07/28 09:43:12 [emerg] 23123#0: bind() to 0.0.0.0:8080 failed (98: Address already in use)
2014/07/28 09:43:12 [emerg] 23123#0: bind() to 0.0.0.0:8080 failed (98: Address already in use)
2014/07/28 09:43:12 [emerg] 23123#0: bind() to 0.0.0.0:8080 failed (98: Address already in use)
2014/07/28 09:43:12 [emerg] 23123#0: bind() to 0.0.0.0:8080 failed (98: Address already in use)
2014/07/28 09:43:12 [emerg] 23123#0: still could not bind()
J'ai googlé Unicorn.rb et trouvé ce link . J'ai aussi lu que:
Unicorn est un serveur HTTP pour applications Rack conçu pour servir uniquement Clients rapides sur des connexions à faible latence et bande passante élevée et tirer parti Des fonctionnalités des noyaux Unix/Unix. Les clients lents ne devraient être servis aux Qu'en plaçant un proxy inverse capable de mettre en mémoire tampon À la fois la demande et la réponse entre les clients Unicorn et lents.
Lorsque je vérifie le fichier /var/opt/gitlab/gitlab-Rails/etc/Unicorn.rb
, je constate qu’il utilise 8080. Le problème est qu’il semble que Unicorn devrait fonctionner avec NGINX. Par conséquent, je ne devrais peut-être pas changer le port.
Quelle mesure dois-je prendre pour que Gitlab fonctionne? Gitlab peut-il fonctionner sans Licorne? Je penserais pas. Dois-je alors choisir un autre port pour celui-ci ou peut-être pour NGINX?
Vous devez remplacer les ports dans /etc/gitlab/gitlab.rb
. Ne jouez pas avec /var/opt/gitlab/...
car toute configuration manuelle sera perdue après une reconfiguration. Lisez en particulier sur Configuration du port d’écoute NGINX }. Dans la page des téléchargements, il y a une phrase: Pour connaître les options de dépannage et de configuration, veuillez consulter le fichier Lisez-moi de Omnibus GitLab . Je me demande si cela n’est pas perçu par les gens:/Sinon, nous devrions le préciser.
Ajouter aux commentaires d'Axil. Je devais aussi le changer dans le fichier /var/opt/gitlab/gitlab-Rails/etc/Unicorn.rb. Un redémarrage après que cela a fonctionné, je n'ai pas perdu mes configs. Le maître de la Licorne ne prenait pas mes modifications dans le fichier /etc/gitlab/gitlab.rb, même après plusieurs redémarrages.
Vous devez mettre à jour le fichier /etc/gitlab/gitlab.rb.
Lorsque vous modifiez le fichier, assurez-vous de ne pas commenter la ligne que vous modifiez. Il utilise chef, donc si le fichier gitlab.rb est correctement configuré lorsque vous exécutez Sudo gitlab-ctl reconfigure;
, il mettra à jour correctement le fichier correspondant. Puis Sudo gitlab-ctl restart
pour redémarrer les services.
Sudo lsof -Pni |grep <port number>
est votre ami lors de la détermination des conflits de ports
La documentation suggère de paramétrer 'nginx [' listen_port '] = 8080' mais lorsque j'ai fait cela, Unicorn n'a pas réussi à lier le port 8080. J'ai défini le port nginx sur 8888 à la place et cela a fonctionné. Cela suggère que, pour définir le port nginx sur 8080, il est nécessaire de remplacer Unicorn du port par défaut de 8080 par un autre, mais je n’ai pas exploré cette possibilité. Ce serait bien si l'exemple de configuration du port nginx était un paramètre qui fonctionnerait dans la configuration par défaut, ce qui est le mien, comme je le sais, je ne l'ai installé que ce matin.