Http-User Zugriff auf anderes Verzeichnis geben

Status
Für weitere Antworten geschlossen.

stylig

Benutzer
Mitglied seit
22. Dez 2011
Beiträge
5
Punkte für Reaktionen
0
Punkte
0
Hi,

irgendwie scheint auf der Diskstation mein Wissen über Unix-Dateisysteme nicht richtig zu greifen, was ich machen will, sollte eigentlichen ganz einfach sein.

Ich habe ein Verzeichnis für GIT-Repositories erstellt und freigegeben und auf der Webstation gitlist als Git Browser installiert (installiert = mit meinem Benutzer die Files in das Web-Share geworfen). Nun ist meine Frage, wie ich die Berechtigungen auf das GIT-Verzeichnis einrichten muss, damit der Webserver das Verzeichnis lesen kann, das klappt nämlich nicht. Konfiguriere ich das Git-Verzeichnis unterhalb des Web-Verzeichnis läuft alles, also grundsätzlich ist es lauffähig.

Aber nun mal Schritt für Schritt:
  1. Verzeichnis /volume2/git angelegt
  2. Als Gemeinsamen Ordner für mich und die Gruppe "http" freigegeben
  3. Gitlist in web (/volume2/web/gitlist) kopiert
  4. Gitlist passend konfiguriert
Beim Aufruf kommt die Meldung "Please, edit the config file and provide your repositories directory" von gitlist was für mich heißt, dass er nicht darf, zumal es wie gesagt funktioniert wenn ich die Git-Repos in das Web-Verzeichnis schiebe. Lustigerweise habe ich nur Tutorials gefunden die erklären wie toll einfach das alles funktioniert, bei denen die Git Repositories auf den Webserver gepackt wurden.

Die Berechtigung auf Unix-Ebene sind auf beide Ordner identisch:
d--------- 4 root root 4096 Mar 22 17:46 git
d--------- 6 root root 4096 Mar 22 17:31 web

Die habe ich aber auch schon versucht auf 777 aufzubohren, ohne dass es etwas gebracht hat. Langsam habe ich das Gefühl, dass der Webserver auf /volume2/web gesandboxt ist und überhaupt nicht raus kann, das mag ich aber kaum glauben!? Zumal ich hier im Forum nichts in der Richtung gefunden habe und ich nicht glauben kann, dass ich der erste mit der Anforderung bin.
Ich hoffe also, dass ich mich doof anstelle und mir jemand von euch einfach sagen kann, wo mein Fehler ist. ;)

Viele Grüße
Patrick
 

petpet000

Benutzer
Mitglied seit
22. Mrz 2014
Beiträge
3
Punkte für Reaktionen
0
Punkte
0
Ich bin ganz frisch hier im Forum und möchte alle ganz herzlich grüßen.

Mein Problem ist ähnlich gelagert:
Im Ordner photo habe ich eine unzahl von Bildern, die ich aber nicht über die Photostation
sondern über den Webserver rausreichen möchte.
Geht das überhaupt?
 

petpet000

Benutzer
Mitglied seit
22. Mrz 2014
Beiträge
3
Punkte für Reaktionen
0
Punkte
0
Danke Jo,

ich möchte aber die Photostation lokal benutzen so wie sie ist. Meine Webgalerie baue ich selbst und möchte natürlich
die Bilder nicht doppelt speichern.

Gruß petpet
 

stylig

Benutzer
Mitglied seit
22. Dez 2011
Beiträge
5
Punkte für Reaktionen
0
Punkte
0
Naja, so ist es eben nicht gedacht und ich glaube (hoffe) auch nicht, dass jemand ernsthaft seine Entwickler-Repositories in das Dokument-Verzeichnis des Webservers legt.

Inzwischen habe ich auch versucht einen Link auf das Git-Reposity anzulegen, aber das funktioniert ebenfalls nicht. :(
 

joku

Benutzer
Mitglied seit
06. Mrz 2011
Beiträge
6.664
Punkte für Reaktionen
2
Punkte
164
Meine Webgalerie baue ich selbst und möchte natürlich
die Bilder nicht doppelt speichern.
Hallo, die Bilder liegen alle in dem Verzeichnis Bilder und Deine eigenen Webseiten greifen auf diese zu.
Wenn Du es selbst baust, sollte das kein Problem für Dich darstellen.

Gruß Jo
 

joku

Benutzer
Mitglied seit
06. Mrz 2011
Beiträge
6.664
Punkte für Reaktionen
2
Punkte
164
dass jemand ernsthaft seine Entwickler-Repositories in das Dokument-Verzeichnis des Webservers legt.
Davon redet doch keiner :)
Das Webinterface wird sich doch sicher anpassen lassen oder ?

Gruß Jo
 

stylig

Benutzer
Mitglied seit
22. Dez 2011
Beiträge
5
Punkte für Reaktionen
0
Punkte
0
Davon redet doch keiner :)
Das Webinterface wird sich doch sicher anpassen lassen oder ?

Gruß Jo

Das ist es eben: Die Anwendung muss auf Serverseite auf das lokale Verzeichnis im Dateisystem zugreifen um die Repos zu scannen. Dafür gibt es in den Config-Files ganz einfach die Möglichkeit den Pfad zu dem Verzeichnis anzugeben - aber der Zugriff funktioniert nicht, weil es dem Prozess nicht erlaubt ist von
/volume2/web auf /volume2/git zuzugreifen.
Nun frage ich mich, ob da etwas an den Berechtigungen nicht stimmt und ich die einfach nicht sauber hinbekomme (ich meine die lokalen Dateisystem-Berechtigungen) oder ob der Prozess auf das Web-Verzeichnis geforkt ist und so die anderen Verzeichnisse für den Prozess quasi gar nicht existieren, dann kann ich an den Berechtigungen konfigurieren bis ich wund bin. :>
 

joku

Benutzer
Mitglied seit
06. Mrz 2011
Beiträge
6.664
Punkte für Reaktionen
2
Punkte
164
Nun frage ich mich, ob da etwas an den Berechtigungen nicht stimmt und ich die einfach nicht sauber hinbekomme
Hallo, an den Rechten kann es schon liegen.
Die sollten ja aber nur lesend sein oder ?
Da reicht doch schon rw-r--r-- 644.
Wie stehlst Du die Rechte ein ?
Ist gitlist in php geschrieben, benötigt es noch eventuell Programme die es aufruft ?

Gruß Jo
 

joku

Benutzer
Mitglied seit
06. Mrz 2011
Beiträge
6.664
Punkte für Reaktionen
2
Punkte
164
  • Gitlist in web (/volume2/web/gitlist) kopiert
Hast Du auch im gitlist cache angelegt ?
Wie sieht die config.ini aus ?

[git]
client = '/usr/bin/git' ; Your git executable path

default_branch = 'master' ; Default branch when HEAD is detached
repositories[] = '/volume2/git' ; Path to your repositories
; If you wish to add more repositories,

stimmt das ?

Gruß Jo
 
Mitglied seit
10. Jan 2014
Beiträge
393
Punkte für Reaktionen
0
Punkte
0
Der Apache hat auch noch die Option FollowSymLinks
Damit kann man auch auf Verzeichnisse ausserhalb des DocumentRoot zugreifen
 

joku

Benutzer
Mitglied seit
06. Mrz 2011
Beiträge
6.664
Punkte für Reaktionen
2
Punkte
164
Mitglied seit
10. Jan 2014
Beiträge
393
Punkte für Reaktionen
0
Punkte
0
Sorry, meine Antwort bezog sich auf:

Ich bin ganz frisch hier im Forum und möchte alle ganz herzlich grüßen.

Mein Problem ist ähnlich gelagert:
Im Ordner photo habe ich eine unzahl von Bildern, die ich aber nicht über die Photostation
sondern über den Webserver rausreichen möchte.
Geht das überhaupt?
 

joku

Benutzer
Mitglied seit
06. Mrz 2011
Beiträge
6.664
Punkte für Reaktionen
2
Punkte
164
Inzwischen habe ich auch versucht einen Link auf das Git-Reposity anzulegen, aber das funktioniert ebenfalls nicht. :(
Und ich habe mal so aus Spaß an der Freude das gitlist angesehen :)
Da hast Du noch etliches zu erledigen :)
Zitat
Installing

Download GitList from gitlist.org and decompress to your /var/www/gitlist folder, or anywhere else you want to place GitList.
Rename the config.ini-example file to config.ini.
Open up the config.ini and configure your installation. You'll have to provide where your repositories are located and the base GitList URL (in our case, http://localhost/gitlist).
Create the cache folder and give read/write permissions to your web server user:
Building

GitList uses Composer to manage dependencies and Ant to build the project. In order to run all the targets in the build script, you will need PHPUnit, phpcpd, phploc, PHPMD and PHP_Depend.

Once you have all the dependencies set, you can clone the repository and run Ant:

Building

GitList uses Composer to manage dependencies and Ant to build the project. In order to run all the targets in the build script, you will need PHPUnit, phpcpd, phploc, PHPMD and PHP_Depend.

Once you have all the dependencies set, you can clone the repository and run Ant:
git clone https://github.com/klaussilveira/gitlist.git
ant
If you just want to get the project dependencies, instead of building everything:

git clone https://github.com/klaussilveira/gitlist.git
curl -s http://getcomposer.org/installer | php
php composer.phar install

If you have Composer in your path, things get easier. But you know the drill.

und die Rechte

Die Berechtigung auf Unix-Ebene sind auf beide Ordner identisch:
d--------- 4 root root 4096 Mar 22 17:46 git
d--------- 6 root root 4096 Mar 22 17:31 web

die passen so garnicht.

Gruß Jo
 

stylig

Benutzer
Mitglied seit
22. Dez 2011
Beiträge
5
Punkte für Reaktionen
0
Punkte
0
Hallo, an den Rechten kann es schon liegen.
Die sollten ja aber nur lesend sein oder ?
Da reicht doch schon rw-r--r-- 644.
Wie stehlst Du die Rechte ein ?
Ist gitlist in php geschrieben, benötigt es noch eventuell Programme die es aufruft ?

Gruß Jo
Ich habe die Rechte des Git-Ordners sogar auf 777 gestellt, es hat trotzdem nicht geklappt.
Gitlist ist eine Webanwendung in PHP, also ich rufe Gitlist im Browser auf.
 

stylig

Benutzer
Mitglied seit
22. Dez 2011
Beiträge
5
Punkte für Reaktionen
0
Punkte
0
Haha, ich habe es herausgefunden. Beim Durchsuchen der Verzeichnisberechtigungen im Terminal kam ich leider viel zu spät auf die Idee einfach mal in das Log unter /var/log//httpd/user-error_log zu schauen.

[Sun Mar 23 20:54:35 2014] [error] [client 192.168.0.116] FastCGI: server "/php-fpm-handler" stderr: PHP message: PHP Warning: is_dir(): open_basedir restriction in effect. File(git-repos) is not within the allowed path(s): (/etc.defaults:/usr/bin/php:/usr/syno/synoman:/etc:/var/run:/tmp:/var/spool/php:/volume1/@tmp/php:/var/services/web:/var/services/photo:/var/services/blog:/var/services/homes) in /volume2/web/gitlist/src/GitList/Config.php on line 62

Nach ein wenig rumsuchen und manuellem Anpassen der Config habe ich entdeckt, dass man das basedir aber auch direkt in der Systemsteuerung der Diskstation anpassen kann unter

Systemsteuerung -> Webdienste -> PHP-Einstellungen -> PHP open_basedir benutzerspezifisch anpassen

dort habe ich den Pfad einfach um /volume2/git erweitert (Pfadtrenner ist der Doppelpunkt).

Vielen Dank für die Hilfe :)
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat