PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Linux Rechner als Homeserver nutzen (Dateiablage und PHP, Python, MariaDB)



chefchenko
18.02.17, 18:46
Hallo zusammen,

ich habe mir schon vor einiger Zeit einen PC als Server zugelegt. Dieser sollte als Dateiserver und als Webserver (PHP, Python, MariaDB) dienen. Leider war das alles schwieriger als gedacht. Ich hatte permanent Probleme wegen dem damals modernen Prozessor (Skylake auf MSI Mainbord) und auch die USB 3.1 Anschlüsse verursachten jede Menge abstürze. Also bin ich nun auf openSuse Leap gewechselt. Nun habe ich einen FTP server am laufen, der Zugriff auf mein /home Verzeichnis erlaubt. Apache mit php und MariaDB und PHPMyAdmin läuft soweit auch. Das Problem ist nun der Zugriff von anderen PCs:

die Dateien für den Webserver liegen nicht im Homeverzeichnis sondern in /var/srv/www oder so ähnlich. Über ftp kann ich nun keine Datein im Server Verzeichnis anlegen, weil /var nicht in /home liegt.
Ich habe auch schon versucht das Serververzeichnis ins home-Verzeichnis zu verschieben, aber phpMyadmin lief dann nicht mehr. Nun ist meine Frage an eucch:
Wie kann ich es hinkriegen, dass ich mit dem standarduser sowohl auf das Home-Verzeichnis als auch auf meinen Webserver zugreifen kann?

Beste Grüße

corresponder
18.02.17, 20:37
du kannst doch frei wählen, wo der ftpserver die ordner der jeweiligen ftpuser verwaltet...
und du kannst die verzeichnisse und dateien jedem beliebigen user zuordnen oder machst eine gruppe und ordnest es der zu
und den user in die gruppe ;-)


gruss

c.

Newbie314
18.02.17, 22:35
Ftp server entsprechend konfigurieren oder evtl die Serverdienste per Owncloud anbieten, das deckt eigentlich den Heimserverbedarf gut ab und lässt uploads per Browser zu.

marce
19.02.17, 08:23
naja, für Dateiablage würde sich ggf. noch Samba oder WebDAV anbieten - oder NFS, je nach anzubindendem Client.

chefchenko
19.02.17, 11:40
aber damit stellt sich für mich die Frage, welche Folgen der Eigentümerwechsel hat. Wenn ich den Eigentümer von /var/www zb. auf den Standarduser ändere hat das dann Auswirkungen auf die Sicherheit bzw. die automatischen Updates ?

marce
19.02.17, 11:45
Ich würde alles so belassen wie es jetzt ist und für die Dinge, die Du außerhalb des reinen Paketmanagements treiben willst (also z.B. die von Dir erstellten html-Seiten) über einen ded. VirtualHost einpflegen.

florian0285
19.02.17, 12:24
Gruppenberechtigungen?
Oder sowas:
http://ppfeufer.de/gentoo-linux-verzeichnis-auf-verzeichnis-mounten/

?

marce
19.02.17, 12:52
warum an Dingen herumspielen, an denen man nicht herumspielen muss (abgesehen davon, daß ggf. die Berechtigungen bei Updates oder beim Systemstart durch Scripte überschrieben werden könnten) oder Dinge verwenden die man nicht verwenden muss weil das bereits in Verwendung befindliche Tool (Apache) das bereits kann?

Es gibt das gute, alte public_html-Verzeichnis, weches man "automatisch" einbinden kann über ~$benutzername-URLs, es gibt VHosts, Alias-Direktiven, ... - im schlimmsten Fall sogar einfach nur Symlinks.

florian0285
19.02.17, 13:47
warum an Dingen herumspielen, an denen man nicht herumspielen muss

Weil mans kann.

Welcher Weg der einfachere/bessere ist muss er selbst entscheiden.

Ich finde den "mount --bind" Weg persönlich besser als z. B. das public-html User-Verzeichnis. Wenn ich das zentral in /var haben will und nur später mal nen user wechsle mounte ich das dort einfach neu.

marce
19.02.17, 13:50
Können kann man alles. Nur sind solche Konstrukte dann alles andere als pflegeleicht, wartungsarm und für 3. ggf. so rein gar nicht nachvollziehbar - sollte mal jemand anders im Pflege- oder Wartungsfall drüber schauen müssen...

florian0285
19.02.17, 14:13
So pauschal kann man das auch nicht sagen. Zentrale Datenpflege ist einfacher als verteilte. Die Daten liegen hier in /var/www zentral und nicht verteilt im User-Verzeichnis. Das kann man aber wieder im bestimmten Anwendungsfall anders herum behaupten. Für sowas gibts Dokumentation. Wenn jemand bei nem Heimserver drüber schaut wird er die Daten wohl auch eher in var vermuten und sich ggf. nen Wolf suchen, wenn er public-html nicht kennt. Dann musd er auch wieder die Konfiguration durchwühlen. Im Heimserver Fall dürfte die Doku dann auch mündlich überliefert werden.

Kompromiss: http://bindfs.org/docs/bindfs.1.html

marce
19.02.17, 15:31
Tja, für sowas hat man Standards entwickelt. Und das Konzept mit bind-Mounts geht an diesen Standards meilenweit vorbei.

* Apache-Konfig sagt "unter /var/www/hmtl/*" liegt etwas. Das Verzeichnis ist da. Dummerweise ohne Inhalt. Tja - dann gehen wir mal auf die Suche in den 25 Partitionen des Systems.
* Apache-Konfig sagt "unter /var/www/html" liegt was, zusätzlich gibt's dann noch Aliasse xy nach /home/$user/public_html/xy", einen VHost unter /was/weiß/ich/wo" - alle Verzeichnisse vorhandne, mit Inhalten. Fertig.

bmk
19.02.17, 16:00
Hallo chefchenko,

ich nutze seit Jahren eine konsequente Strategie:

Ich habe separate Partitionen für /srv und /home.
Bei einem Systemupgrade bleiben diese unberührt, während / neu aufgesetzt werden kann.

Derzeit nutze ich openSUSE Leap 42.1, phpmyAdmin wird damit unter /srv/www/htdocs installiert.
Das entspricht auch dem DocumentRoot-Eintrag in der default-server.conf in /etc/apache2.

Die mysql-Daten befinden sich auch auf der /srv/Partition (/etc/my.cnf anpassen).

Über Samba habe ich Zugriff auf verschiedene weitere Verzeichnisse:
-Dokumente (zentral für alle User)
-Medien (Videos, Photos)
-Backup (Sicherung von Daten der Windows-Rechner)

Ein weiteres Verzeichnis ftp nutze ich zum Datenaustausch (z.B. WIFI-Upload Digitalkamera).

Der Zugriff auf die einzelnen Verzeichnisse ist also reine Sache der Zugriffskonfiguration (z.B. Samba, vsftpd...).

Alle Daten, die von außen genutzt werden, liegen in /srv, Samba lässt auch noch den Zugriff auf das /home-Verzeichnis des jeweiligen Users zu.

Die mysql-Daten sind da eine Ausnahme, denn auf diese sollte man auf Dateiebene von außen tunlichst nicht zugreifen.
Aber dadurch erspare ich mir das hin-und herkopieren im Falle eines Systemupgrades (trotzdem wird vorher gesichert).

Gruß bmk

florian0285
19.02.17, 16:30
Tja, für sowas hat man Standards entwickelt. Und das Konzept mit bind-Mounts geht an diesen Standards meilenweit vorbei.

Nen ISO Standard? Ne DIN Norm? Welcher Standard schreibt mir denn vor wo mein html zu liegen hat? Ne Konfig is kein Standard sondern nur voreingestellt. Mount-bind verändert auch nichts an /var/www sondern macht es "dem User" nur schreibbar zugänglich zum Bearbeiten. Also an welchem Standard geht das vorbei? Der Webserver findet sein Zeug nach wie vor in /var/www.

Dann wäre /srv ja die Totsünde. [emoji51]

Akso ich kenne keinen solchen Standard. Wenn du Links/Namen/Nummern hast... her damit.



einen VHost unter /was/weiß/ich/wo
Das steht bestimmt in keindm Standard [emoji12]

Egal der TE kennt die Option jetzt und kann selbst wählen.

marce
19.02.17, 16:51
Es gibt Standards, die sich nicht in konkreten Verzeichnissnamen manifestieren sondern in Methoden.

Aber egal. Jeder kann's machen, wie es ihm passt - solange man sich sin seiner Struktur nicht verläuft und man von extern keine Hilfe beenötigt kann's dem Rest der Welt ja auch egal sein.

chefchenko
19.02.17, 17:19
Hallo nochmal,

also ich habe es jetzt mit dem public_html Verzeichnis versucht, aber es klappt trotzdem nicht. Ich kann in diesem Verzeichnis trotz der Anmeldung als User keine Dateien erstellen. Liegt das daran, dass public_html nur ein Verweis auf /srv/... ist ?
edit: und ich somit trotzdem die Rechte anpassen muss?

Alternativ habe ich die Freigabe mit Samba probiert, diese hat allerdings auch nicht geklappt. Evtl. scheiter es auch hier an den Zugriffsrechten oder spuckt mir noch irgendeine Sicherheitstechnik wie AppArmor oder SELinux in die Suppe?

marce
19.02.17, 17:36
"es geht nicht" ist sicherlich nicht die Fehlermeldung, die Du bekommst.

-> Fakten und Infos. Glaskugeltag ist erst wieder Dienstags.

Also, wie sehen die Rechte des Verzeichnisses aus, wie willst Du Dateien erstellen, Fehlermeldung im Wortlaut, Befelhe und Eingaben in Copy-Paste. Ausgaben bitte in [code]-Tags posten.

Für public_html siehe auch https://httpd.apache.org/docs/2.4/howto/public_html.html - für Samba - die Samba-Doku. Auch hier gibt es Logfiles, Konfigurationen und Fehlermeldungen, die Du posten kannst.

Da Samba und Apache nichts miteinanderzu tun haben idealerweise für die beiden sep. Probleme je einen Thread hier aufmachen.