Aller au contenu

Donner une autorisation d'accès pour apache


Messages recommandés

Bonjour,

J'aimerais donner une autorisation d'accès à apache lorsque je lance un container sous Docker car je tombe tout le temps sur une erreur 403 forbidden et j'ai lu ici et là que l'accès était refusé par défaut!

Ma question est:

Quel est le fichier à modifier pour donner un accès total? (J'ai cru comprendre que c’était  un fichier httpd.conf mais il y en à plusieurs (user, sys, etc...))

Quelles lignes dois-je modifier??

Par quelle commande dois-je modifier car j'ai vu que c'etait different selon apache 2.2 et 2.4 et appriori le syno tourne sous 2.2

DANS MON CAS, CECI EST-IL UTILE??

 

Pour un exemple plus concret, considérez ce qui suit. Sans tenir compte de toute restriction d'accès placée dans les sections <Directory>, la section <Location> sera évaluée en dernier et permettra un accès au serveur sans aucune restriction. En d'autres termes, l'ordre de la combinaison des sections est important, soyez donc prudent !

<Location />
Order deny,allow
Allow from all
</Location>

:if expand("%") == ""|browse confirm w|else|confirm w|endif # Arrghs! Cette section <Directory> n'aura aucun effet
<Directory />
Order allow,deny
Allow from all
Deny from badguy.example.com
</Directory>

 
 

MERCI!!

Modifié par Nafoot
Lien vers le commentaire
Partager sur d’autres sites

Bien sur! 

Voila, j'ai installé un container qui se lance avec docker (en l'occurrence "Airtime") et lorsque je lance airtime, je tombe sur une page 403 Forbidden  qui me dit que je n'ai pas l'autorisation Apache 4.7.2 

appriori déjà c'est louche étant donné que nous somme sur syno en Apache 2.2!!

Lien vers le commentaire
Partager sur d’autres sites

  • tu peux corriger la conf à l'intérieur du conteneur si tu y a accès.
  • ou encore le lancer avec un shell en option : docker run -i -t conteneur /bin/bash
  • ou encore créer un Dockerfile qui intègre le correctif
  • ...

plein de manière de faire, mais je te recommande de commencer par ici : https://docs.docker.com/userguide/

Lien vers le commentaire
Partager sur d’autres sites

aie!!

là j'ai bien peur d'etre trop noob pour me lancer la dedans, ça m'interresse de tester ça mais je doute qu'il y ait quelqu'un de motivé pour le driver :s 

Mais si ça te tente, je suis prêt à devenir ton padawan, je suis sur que je vais apprendre plein de trucs lol???

Merci en tous cas pour ton aide!! je vais aller faire un tour voir tout ça!!!

Modifié par Nafoot
Lien vers le commentaire
Partager sur d’autres sites

Sur la doc de ton conteneur, il est écrit :

The Airtime container will be available from https://localhost.

Tu peux donc utiliser un reverse proxy (le paquet haproxy de la communauté synology) pour "contourner" la restriction.

Mais le plus simple c'est de lever cette restriction (probablement juste la conf d'apache ou un .htaccess à modifier)

Démarre le conteneur une première fois avec cette commande (à faire en ssh sur le syno) :

docker run -i -t --name testairtime sjourdan/airtime-docker /bin/bash

Tu devrais te retrouver "dans" le conteneur, ensuite tu as juste à fouiller dans les conf (apache, .htaccess, ...) pour trouver où est la restriction est la faire sauter.

Ensuite il te suffira de relancer le conteneur avec les bonne options (il devrait apparaitre dans la liste des conteneur de l'appli docker du synology)

Modifié par Fenrir
Lien vers le commentaire
Partager sur d’autres sites

ok voila ce que j'ai lorsque j’exécute la commande :

/$ docker run -i -t --name airtime sjourdan/airtime /bin/bash
FATA[0000] cannot enable tty mode on non tty input    

 

Je vais essayer de trouver les fichiers apache, .htaccess je te tiens au courant 

merci beaucoup!!

 

Lien vers le commentaire
Partager sur d’autres sites

Je crois que j'ai trouvé le container sur SSH  :)

par contre pas de traces de fichiers apache ou htaccess (pour le moment) mais j'ai des fichiers dont  hostconfig.json qui contient :  

{"Binds":null,"ContainerIDFile":"","LxcConf":null,"Memory":0,"MemorySwap":0,"CpuShares":50,"CpusetCpus":"","Privileged":false,"PortBindings":{"443/tcp":[{"HostIp":"0.0.0.0","HostPort":"8443"}]},"Links":null,"PublishAllPorts":false,"Dns":null,"DnsSearch":null,"ExtraHosts":null,"VolumesFrom":null,"Devices":null,"NetworkMode":"","IpcMode":"","PidMode":"","CapAdd":null,"CapDrop":null,"RestartPolicy":{"Name":"","MaximumRetryCount":0},"SecurityOpt":null,"ReadonlyRootfs":false,"Ulimits":null,"LogConfig":{"Type":"","Config":null},"CgroupParent":"","Env":null,"Override":true}

8443 étant le port que j'ai ouvert sur le container

et aussi un fichier resolv.conf qui contient : nameserver 192.168.0.xxx mais c'est l'adresse de ma freebox et non de mon syno...

Lien vers le commentaire
Partager sur d’autres sites

J'ai testé vite fait, le conteneur, mais surtout le paquet (setup) ne sont pas bons.

Ton erreur est, entre autre, due au fait qu'apache est configuré pour afficher un dossier qui est vide. il y a d'autres erreurs, mais je ne vais pas en faire le tour.

=>ce conteneur n'est pas utilisable en l'état, le dev a du louper un truc => contact le créateur du conteneur pour lui indiquer le problème

Par contre l'installation manuelle à partir des sources n'a pas l'air compliquée : http://sourcefabric.booktype.pro/airtime-25-for-broadcasters/manual-installation/

Sinon, il y a un autre conteneur sur dockerhub, okvic77/docker-airtime, qui lui a l'air de marcher

 

Lien vers le commentaire
Partager sur d’autres sites

Merci Fenrir!

j'ai déjà essayé de contacté le créateur mais pas réponse de sa part!

Bon bah écoute je vais essayer d'installer le container que tu m'as donné et après on verra bien!

au pire j'essaie de me lancer dans l'installation manuelle ce m'apprendra un peu à faire ça c'est tout bénef ;) !! 

merci en tous cas, je te tiens au courant !!!!

Lien vers le commentaire
Partager sur d’autres sites

hohoooooooooooo!!! ça se lance c'est pas magnifique tous ça!!! ;)

Bien sûr ça aurait été trop facile que ça fonctionne du premier coup lol 

voila ce que me demande le setting d'airtime :

Couldn't establish a connection to the database! Please check your credentials and try again. PDO Exception: SQLSTATE[08006] [7] could not connect to server: Connection refused Is the server running on host "localhost" (::1) and accepting TCP/IP connections on port 5432? could not connect to server: Connection refused Is the server running on host "localhost" (127.0.0.1) and accepting TCP/IP connections on port 5432?

 

En gros , si j('ai bien compris il faut que j'ouvre le port 5432 en TCP pour le localhost!!!

Je fais ça comment parce que sur le panneau de configuration/ accès externe/configuration du routeur, je ne peux pas assigner une ouverture de port sur le localhost 127.0.0.1 !!!

Modifié par Nafoot
Lien vers le commentaire
Partager sur d’autres sites

je pense qu'il a besoin d'une base de données

vu le port, c'est du postgresql

Soit il y a déjà une base dans le conteneur, dans ce cas elle n'a peut être pas démarrée ou n'est pas correctement configurée, soit il n'y en a pas, dans ce cas installe un conteneur postgresql et "link" ton conteneur airtime à ce nouveau contenur, si le 2 conteneurs sont bien fait, ça devrait marcher.

Lien vers le commentaire
Partager sur d’autres sites

Ok!!! Moi qui pensais en avoir presque fini avec ca.... Bon je vais me pencher la dessus ce soir!!! 

Je pense avoir à peu prêt compris avec ton explication, après, la méthode c'est pas ca Lôl! 

Je vais commencer par trouver/installer un container postgresql c'est ve qui me paraît le plus simple à faire....pour le moment!! 

En ts cas on avance c'est cool!!! :D

Merci!!

Lien vers le commentaire
Partager sur d’autres sites

Salut!!

Bon alors, j'ai trouvé celui là qui avait l'air pas mal : https://github.com/orchardup/docker-postgresql

J'ai réussi à l'installer mais lorsque je veux le "linker" à airtime, j'ai une colonne nommée "alias" et je ne sais pas à quoi ça correspond!!!

Une petite idée??

Ps: faut-il que je lui ouvre des ports tcp et si oui quel port local et quel port de conteneur?

Merci!!

Modifié par Nafoot
Lien vers le commentaire
Partager sur d’autres sites

Si tu regardes la page de ton lien, il est écrit :

Note: There is now an official Postgres image available so this image is no longer maintained. We recommend you switch to using that image.

=> https://registry.hub.docker.com/_/postgres/

Tu trouveras les paramètres (variables d’environnement et comment faire le lien) sur le page

 

Lien vers le commentaire
Partager sur d’autres sites

  • 1 mois après...

Salut @Fenrir ;)  

J’espère que t'as la forme,

Me revoilà avec mes tests... plus ou moins réussis lol plutôt ratés arf!!!!!

bon alors j'ai bien essayé de lancer les links comme c'est expliqué ici : https://hub.docker.com/_/postgres/

$ docker run --name some-app --link some-postgres:postgres -d application-that-uses-postgres

 mais bon ca ne donne rien j'ai toujours des messages d'erreurs, ça doit venir des liens que je donne vu que airtime est dans des dossiers docker fait de chiffres et de lettres genre: /volume1/@docker/containers/4e5d354798c07db778bc890c34377b9632cf2ef34533e531c6e296f5038207fb

 Bref j'ai vu aussi qu'on pouvait gérer les links directement dans docker sur le dsm... ça c'est surement plus facile, enfin peut être!! d'ailleurs, j'ai essayé de linker par docker sur le dsm et en lançant postgres il me dit qu'il dépend de airtime et qu'il me le lance avec donc je suppose qu'il est bien linké !! Et lorsque je me logue avec airtime j'ai toujours le problème que j'avais : 

Couldn't establish a connection to the database! Please check your credentials and try again. PDO Exception: SQLSTATE[08006] [7] could not connect to server: Connection refused Is the server running on host "localhost" (::1) and accepting TCP/IP connections on port 5432? could not connect to server: Connection refused Is the server running on host "localhost" (127.0.0.1) and accepting TCP/IP connections on port 5432?

Sinon tu peux peut-être m'aider sur la ligne de commande au dessus!! :)

merci!!!

    

Modifié par Nafoot
Lien vers le commentaire
Partager sur d’autres sites

Je viens de tester, l'image contient déjà un serveur postgresql, tu as juste créer le conteneur : docker run --name test-airtime -p 8001:80 -d okvic77/airtime

Pas besoin de l'image de postgres.

Sinon pour ta culture, pour linker 2 conteneurs, il faut que le premier existe :)

  1. docker run --name test-postgres -e POSTGRES_PASSWORD=password -d postgres
  2. docker run --name test-appli --link test-postgres:alias-postgres -p 1234:5678 -d image-appli

La première commande par créer un conteneur nommé test-postgres à partir de l'image postgres, la seconde commande va créer un conteneur test-appli à partir de l'image image-appli et lier ce conteneur au conteneur test-postgres.

Lien vers le commentaire
Partager sur d’autres sites

woooooooooooooooooooowwwwwwww 

au TOP @Fenrir ça fonctionne parfaitement c'est génial merci merci merci beaucoup pour ton aide car sans toi je n'y serais jamais parvenu et du coups j'ai appris quelques truc (bon pas grand chose car tu m'as bien mâché le travail!!! ;)

Bon j'ai essayé de refaire ça propre en enlevant le "test" de airtime mais ça n'as pas fonctionné... heuuu je suis pas encore tout à fait au point lol en même temps j'avais hâte de tester donc je réessayerais pour voir ;) 

par contre en réinstallant y me disais que le tes airtime existait déja donc y a un moyen de supprimer proprement?? (bon je sais je te saoul pour l'installer et maintenant je veux le désinstaller lol mais c'est pour que ça soit plus propre ;) )

Une petite question en passant comment je fais pour localiser le dossier où est installé airtime car je ne le trouve pas et je suppose qu'il est dans @docker/... parce que je vois partout  /srv/airtime sur les aides et forum  mais moi je n'arrive pas à le localiser!!

En tous cas Encore merci pour ta patience... t'assures!!!!

Modifié par Nafoot
Lien vers le commentaire
Partager sur d’autres sites

  • Afficher la liste des containers : docker ps -a
  • Supprimer un container : docker rm ID du container
  • Supprimer un container lancé : docker rm -f ID du container
  • Afficher la liste des images : docker images
  • Supprimer une image : docker rmi ID de l'image

Pour accéder au contenu d'un container, il y a plusieurs méthodes :

  • le plus simple, mais c'est déconseillé sauf en dev : tu peux lancer le container en lui attachant un shell : https://docs.docker.com/articles/basics/
  • le plus propre : tu montes les dossiers dont tu as besoin (ce n'est pas toujours possible, ça dépend de comment a été créé l'image)
  • le plus courant mais pas recommandé : tu ajoutes une application dans le container qui te permet de le gérer (ssh, webmin, ...), idéalement en créant un Dockerfile
  • si c'est juste pour exécuter des commandes, docker exec est suffisant

Après il y a plein d'autres manières et d'outils de gestion, mais dans tous les cas, il ne faut pas modifier le filesystem d'un container depuis l'hôte.

Commence par faire un : docker inspect okvic77/airtime

Ça devrait t'afficher les infos de l'images (on voit d'ailleurs qu'il y a 2 ports en écoute, il faut donc modifier la commande de lancement)

Ensuite recréé un container avec un sheel, regarde comment est installée l'appli

Je ne vais pas rentrer plus dans les détails, trop long, mais tu as tout dans les docs officielles de docker

 

Lien vers le commentaire
Partager sur d’autres sites

Bon bah ok merci pour ces info encore une fois. 

je commence doucement  à comprendre! C'est pas gagné c'est encore un peu du chinois pour moi mais c'est mes premiers pas...

Moi je passe par WinSCP pour voir les dossiers etc... mais je suppose que l'idéal c'est de tout faire par les commandes...

Ca  sera ma prochaine étape! ;) utiliser et comprendre les commandes !! 

En fait je te demandais ça parce que je voulais localiser le dossier où vont se stocker les musiques que je up dans airtime et aussi pour voir si je pouvais changer le dossier car dans le logiciel, il me propose bien se changer le dossier mais malheureusement je ne peux pas choisir n'importe où dans le nas, moi j'aurais bien choisi mon dossier Music.... Tant qu'à faire Lôl 

Bizarre tu me diras mais j'ai vu qu'il y avait un script pour ca mais faut-il encore savoir où le lancer et si il est fonctionnel sur cette image là de airtime!! :)

Lien vers le commentaire
Partager sur d’autres sites

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.