Ubuntu - Wohin mit den ganzen Kram?

mainclain

Registered User
Ich bin zZ dabei mir zu überlegen, ob ich den Webserver neu aufsetzen sollte.
Ich habe immoment Ubuntu 8.04 LTS (wird auch beim neuen Server so sein) und Apache, PHP, MySQL etc. mittels apt-get Packeten installiert.

Nun ist es ja so, dass die Packete von offiziellen Quellen nur bis PHP 5.2... laufen. Aber seit 5.3 sind ja einige starke Neuerungen dazu gekommen.

Erstmal: Ab wann ist es überhaupt sinnvoll dinge wie Apache, PHP und MySQL als Packete zu installieren, bzw selber zu kompilieren?
Ist eben die Frage ob ich nur apache+php selber machen sollte, oder doch möglichst alle Programme :P

Dann, worauf sich der Threadtitel bezieht:
Die Pakete installieren alles in etc. Das wird mir zuvoll :P
Wohin installiert ihr die Dateien? Gibt es dort standarts?
Ich wollte mir einfach einen ordner /web anlegen in denen ich apache und php installiere, und weitere unterordner für die domains anlege.

Bisher siehts bei mir so aus:

/etc/apache2 -> Apache
/etc/php5 -> PHP
/home/www/..../ -> Ordner für die VHosts.

und so dachte ichs mir um bisschen Ordnung reinzubringen und von den anderen zeug zu trennen:

/web/apache2
/web/php5
/web/www/....
 
Wohin installiert ihr die Dateien? Gibt es dort standarts?
Ja. Der Standard sagt, Konfigurationsdateien gehören nach /etc.
Nachzulesen hier: http://proton.pathname.com/fhs/pub/fhs-2.3.html

Ich bevorzuge grundsätzlich immer die Repos der Distributionen. Selbst gebaut wird nur, wenn es in den Repos nicht vorhanden ist oder es trifftige Gründe gibt. Weder bei Apache noch PHP der Fall.
Es wird hier User geben, die die Pakete von Debian/Ubuntu verteufeln, weil ja uralt, verbuggt und kaputt gepatcht. Bei genauerer Betrachtung stellt man allerdings fest, dass das in den allermeisten (hier aufschlagenden) Fällen völlig irrelevant ist.

Wenn du PHP 5.3 willst, mach ein dist-upgrade auf Ubuntu 10.04.
 
Ich kompiliere die Software immer selbst, da ich mir nich' irgendwelche Eigenheiten der Paket-Maintainer antun will und gerne die Version nutze, die ich auch nutzen möchte :-)

Standard beim kompilieren ist meist /usr/local. Bei mir siehst's dann so aus:

/usr/local/httpd
/usr/local/php
/usr/local/mysql

Soweit ich weiß wird /usr/local von Paketmanagern in Ruhe gelassen, weshalb das die richtige Wahl ist :-)
 
Bisher siehts bei mir so aus:

/etc/apache2 -> Apache
/etc/php5 -> PHP
/home/www/..../ -> Ordner für die VHosts.

und so dachte ichs mir um bisschen Ordnung reinzubringen und von den anderen zeug zu trennen:

/web/apache2
/web/php5
/web/www/....

Linux ist nicht Windows. Es gibt einen guten Grund, dass der Verzeichnisbaum so aussieht, wie er aussieht. Nur so lassen sich z.B. einzelne Funktionen eines Programms auf verschiedene Partitionen verteilen und damit die Sicherheit erhöhen. Zum Anderen ist im Unix-Verzeichnisbaum immer klar, wo was zu suchen ist.

Der Versuch das a la Windows in ein Verzeichnis zu drängeln ist da eher kontraproduktiv.

Lern lieber ein wenig Linux, dann wird dir klarer warum es so ist, wie es ist und du möchtest das dann auch nicht anders haben.
 
ja danke...
@PapaBaer:
Da wunderts mich eben, warum wirds manchmal in etc, manchmal in var manchmal in /usr/local gepackt. Wo ist denn da die Ordnung?

Wie soll man übrigends ein Betriebssystem "lernen" :rolleyes:?
Man kann sich doch höchstens an die Standarts halten :D Werde mich dementsprechend noch einmal genauer informieren, wie genau die Ordnerstruktur aufgebaut ist :)

@DerMitSkill:
Ja kann ich mitfühlen :P Darum möchte ich mich ja nun weitestgehend von den ganzen Packetmanagern entfernen.


Ja. Der Standard sagt, Konfigurationsdateien gehören nach /etc.
Nachzulesen hier: http://proton.pathname.com/fhs/pub/fhs-2.3.html

Ich bevorzuge grundsätzlich immer die Repos der Distributionen. Selbst gebaut wird nur, wenn es in den Repos nicht vorhanden ist oder es trifftige Gründe gibt. Weder bei Apache noch PHP der Fall.
Es wird hier User geben, die die Pakete von Debian/Ubuntu verteufeln, weil ja uralt, verbuggt und kaputt gepatcht. Bei genauerer Betrachtung stellt man allerdings fest, dass das in den allermeisten (hier aufschlagenden) Fällen völlig irrelevant ist.

Wenn du PHP 5.3 willst, mach ein dist-upgrade auf Ubuntu 10.04.
Sry hatte den post irgentwie überlesen.
Okay für selbst kompilierte Sachen ist /usr/local der Standart.

Ich habe auch nichts gegen Repos, immerhin leicht zu installieren :D
Werd mal nen dist-Upgrade durchführen, im Testsystem.
 
Last edited by a moderator:
Da wunderts mich eben, warum wirds manchmal in etc, manchmal in var manchmal in /usr/local gepackt. Wo ist denn da die Ordnung?

Wenn du von dem Windows-Gedanken weg kommst, dass ein Programm in seinem Ordner liegt, ist es ziemlich logisch. Jeder Ordner hat seine Aufgabe.

/etc/ -> dort liegen alle Konfigurationen. Will ich eine Konfiguration anpassen, arbeite ich in /etc/ und zwar NUR! in /etc/. Woanders muss ich nicht nachsehen. (Bis auf Ausnahmen, die ich aber selber so angelegt und gewollt habe)

/bin/ bzw. /usr/bin -> hier liegen die eigentlichen Programme. Sonst nix, nur Binärcode, Bibliotheken und Co. Ich muss hier also nix anfassen, nur einmal hinkopieren und gut ist. (Ich könnte den Ordner also auch read only machen und damit sicherstellen, dass da keiner quer fummelt)

/var/log -> hier liegen alle Log-Files, also alle Fehlermeldungen und Info-Ausgaben meiner Programme.

Auch alle anderen Ordner im Verzeichnisbaum haben einen speziellen Zweck. Wenn man das einmal verstanden hat, weiß man immer, wo man je nach Problem suchen muss.

Wie soll man übrigends ein Betriebssystem "lernen" :rolleyes:?
Man kann sich doch höchstens an die Standarts halten :D

Auch falsch, da Linux freie Software und umfassend dokumentiert ist, kann man es sehr wohl lernen. Du kannst in vollem Umfang verstehen lernen, wie es funktioniert. Und mit einem eigenen Server sollte man das auch verstehen.

Ja kann ich mitfühlen :P Darum möchte ich mich ja nun weitestgehend von den ganzen Packetmanagern entfernen.

Was soll das bringen? Der Packetmanager bringt dir all die Software sauber compiliert mit, die du brauchst, inkl. aller Abhängigkeiten. Es ist alles andere als trivial und macht auch keinen Sinn, sich seine Software komplett aus den Quellen zu bauen (auch hier gibt es Ausnahmen, aber wenn man diese Ausnahme braucht, dann weißt man auch, warum man das tut), es ist auch nicht besonders cool oder so.

Wenn du auf Packetmanager verzichten willst, dann bau dir das da auf einem Rechner zu Hause zusammen. Hinterher weißt du eher, worüber du da gerade sprichst: http://www.linuxfromscratch.org/
 
Last edited by a moderator:
Wenn du von dem Windows-Gedanken weg kommst, dass ein Programm in seinem Ordner liegt, ist es ziemlich logisch. Jeder Ordner hat seine Aufgabe.

Wieso also, nutzt man z.b.
Kunde01/htdocs
Kunde/logs -> für Logs? Schon sind wir aus dem Standart heraus, macht auch durchaus sinn, wie ich finde :D

Meine Frage ging eben um diese Standarts, dass es sinnvoll ist diese zu kennen und nutzen ist logisch.


Auch falsch, da Linux freie Software und umfassend dokumentiert ist, kann man es sehr wohl lernen. Du kannst in vollem Umfang verstehen lernen, wie es funktioniert. Und mit einem eigenen Server sollte man das auch verstehen.

Gut das "verstehen" lernen kann ich akzeptieren :D

Was soll das bringen? Der Packetmanager bringt dir all die Software sauber compiliert mit, die du brauchst, inkl. aller Abhängigkeiten. Es ist alles andere als trivial und macht auch keinen Sinn, sich seine Software komplett aus den Quellen zu bauen (auch hier gibt es Ausnahmen, aber wenn man diese Ausnahme braucht, dann weißt man auch, warum man das tut), es ist auch nicht besonders cool oder so.

Es geht mir eher um Aktualität. Tut mir leid, wenn das so rübergekommen ist, ich meinte aber in den Bereichen PHP, wo ich selber auch auf dem neusten Stand sein möchte :p

Wenn du auf Packetmanager verzichten willst, dann bau dir das da auf einem Rechner zu Hause zusammen. Hinterher weißt du eher, worüber du da gerade sprichst: http://www.linuxfromscratch.org/
Versteh zwar den Zusammenhang nicht, aber danke für den Link :eek:
 
Wieso also, nutzt man z.b.
Kunde01/htdocs
Kunde/logs -> für Logs? Schon sind wir aus dem Standart heraus, macht auch durchaus sinn, wie ich finde :D

Das liegt eher daran, dass diese Klicki-Bunti-Admin-Krücken es nicht besser gebacken bekommen. Außerdem redest du hier über Webapplikationen, die vom Kunden installiert werden. Da bist du selbstverständlich weit weg vom zu Grunde liegendem OS, über welches du gern die Kontrolle behalten möchtest.

Dein Apache wird natürlich weiterhin über /etc/ administriert und sein Core loggt nach /var/log.

Es geht mir eher um Aktualität. Tut mir leid, wenn das so rübergekommen ist, ich meinte aber in den Bereichen PHP, wo ich selber auch auf dem neusten Stand sein möchte :p

Ich habe immoment Ubuntu 8.04 LTS (wird auch beim neuen Server so sein)

Öh, Aktualität mit Ubuntu 8.04? Dieser Widerspruch ist doch nun wirklich mehr als auffällig, oder? Wie wär's, wenn du ne aktuelle Distribution nimmst? Wenn das nicht langt, gibt es auch Distributionen mit Rolling Releases a la gentoo oder arch.

Versteh zwar den Zusammenhang nicht, aber danke für den Link :eek:

Linux from Scratch = Linux ohne Packetmanager, alles selbst aus den Quellen gebaut. Ich dachte, du ließt da mal rein um einen Eindruck zu bekommen, was es heißt, aus den Quellen zu bauen.
 
Ich korrigiere Dich ja ungern, aber diesmal ist es leider nötig :rolleyes:

/etc/ -> dort liegen alle Konfigurationen. Will ich eine Konfiguration anpassen, arbeite ich in /etc/ und zwar NUR! in /etc/. Woanders muss ich nicht nachsehen.
/usr/local/etc darf insbesondere unter echten Unicies nicht vergessen werden.

/bin/ bzw. /usr/bin -> hier liegen die eigentlichen Programme. Sonst nix, nur Binärcode, Bibliotheken und Co.
Programme (Binaries und Scripts) gehören je nach Typ nach /bin, /sbin, /usr/bin, /usr/sbin, /usr/local/bin oder /usr/local/sbin
Bibliotheken gehören je nach Typ nach /lib und /usr/lib beziehungsweise /usr/local/lib

Mein "je nach Typ" und Dein "und Co" definiert der FHS sehr eindeutig.
 
Last edited by a moderator:
Programme (Binaries und Scripts) gehören je nach Typ nach /bin, /sbin, /usr/bin, /usr/sbin, /usr/local/bin oder /usr/local/sbin
Bibliotheken gehören je nach Typ nach /lib und /usr/lib beziehungsweise /usr/local/lib

Da hast du natürlich vollkommen recht. Ich wollte nicht gleich mit der Tür ins Haus fallen und erst einmal das Prinzip klar machen. Das mit Bibliotheken nach /bin bzw. /usr/bin ist natürlich ein böser Schnitzer. *hüstl*
 
Also, erstmal danke für die Beantwortung meiner Fragen. Ich werde mich noch weiter damit beschäftigen, also noch mals ein danke für die Links :)
 
/usr/local/etc darf insbesondere unter echten Unicies nicht vergessen werden.
/etc gilt Systemweit, auch für Programme, die nicht aus Paketen sind. /usr/local/etc gibt es genau so wenig wie /usr/etc. Ich weiß, du wirst jetzt tausend Gründe finden, warum du angeblich Recht hast. Aber das hast du nicht, genau so wenig, wie ein FQDN in die /etc/hostname gehört. Ich weiß ja nicht, wie fest du in der staubigen Vergangenheit verankert bist, aber in "echten Unicies" gab es keinen Paketmanager.
 
Last edited by a moderator:
/usr/local/etc gibt es genau so wenig wie /usr/etc.
Du möchtest hier(7) lesen.

Ich weiß ja nicht, wie fest du in der staubigen Vergangenheit verankert bist, aber in "echten Unicies" gab es keinen Paketmanager.
Solaris ist ein echtes Unix, es hat pkg* und in neueren Ausprägungen auch IPS.
FreeBSD ist ein echtes Unix, es hat neben pkg* die Ports Collection, durch welche u. a. das Paketmanagement von Gentoo Linux inspiriert wurde.
AIX ist ein echtes Unix, es hat installp.

Ich könnte ja einen berühmten Ausspruch von Dieter Nuhr zitieren, aber das mache ich nicht. ;)
 
Selbst kompilieren bringt eine menge Nachteile mit sich:

Mehr Arbeit
Bei Sicherheits Aktualisierungen muss man wieder alles neu kompilieren
usw.

Da wäre ein Upgrade auf die 10.04 sinnvoller, ich benutze es auf dem Deesktop und bin ganz Zufrieden damit.
 
@Bachsau
Zum letzten Mal: Du darfst mich gerne kritisieren und verbessern, wenn es angebracht ist, aber informiere Dich künftig erst über die Fakten, bevor Du erneut Dein Unwissen unter Beweis stellst, danke.
 
Du möchtest hier(7) lesen.
Falsch. Du möchtest den Filesystem Hierarchy Standard lesen. ;)
Der FHS macht nur wenig Vorgaben darüber, was sich unterhalb von /usr/local zu befinden hat. Wenn überhaupt, dann /etc/local, so wie es /var/local gibt. Geschichtlich ging man davon aus, dass Konfigurationen immer lokal sind. Es gab deshalb keine notwendigkeit für ein lokales etc. Der FHS sagt dazu noch:
/usr/local/etc may be a symbolic link to /etc/local.
Und damit hat es sich. Beides ist (zumindest unter Linux) unpopulär.

Solaris ist ein echtes Unix, es hat pkg* und in neueren Ausprägungen auch IPS.
FreeBSD ist ein echtes Unix, es hat neben pkg* die Ports Collection, durch welche u. a. das Paketmanagement von Gentoo Linux inspiriert wurde.
AIX ist ein echtes Unix, es hat installp.
Ich habe bewusst auf diese Antwort gewartet. Ja, es gibt Systeme die auf dem Original-Code basieren. Dennoch: Es sind und bleiben Derivate, und auch die entwickeln sich in verschiedene Richtungen weiter.

Zum letzten Mal: Du darfst mich gerne kritisieren und verbessern, wenn es angebracht ist, aber informiere Dich künftig erst über die Fakten, bevor Du erneut Dein Unwissen unter Beweis stellst, danke.
Du wirst es nich annehmen. :(
Du trittst hier wie jemand auf, der glaubt wegen seiner Erfahrung über jeden Zweifel erhaben sein. Das ist das Problem. Es ist lächerlich, und ein Irrtum. Du kannst zehn mal mehr Erfahrung als ich, und trotzdem kannst du dich irren. Schade, dass du nicht in der Lage bist, das zu akzeptieren. Gerade wenn du so viel Erfarung hast, und das glaube ich dir, solltest du das können, ohne dich gleich in deiner Kompetenz angegriffen zu fühlen.

Zu der Hostname-Geschichte: Guck mal, es gibt zwei Kernel-Variablen (bei Linux): kernel.hostname und kernel.domainname. Aus beiden zusammen lässt sich der FQDN herleiten. Wozu wäre kernel.domainname sonst gut? Es wird deutlich zwischen FQDN und Hostname unterschieden. Mit dem kurzen Namen lässt sich der Rechner innerhalb der eigenen Domain ansprechen. Um stattdessen einen FQDN aufzurufen, gibt es den "." hinter der TLD. Der ist nicht ohne Grund da, auch wenn er heutzutage gern weg gelassen wird. Im Gegensatz zu mir, hast du bestimmt schonmal DNS-Server aufgesetzt, also weißt du das.

PS: Technik ist weder gut noch böse. Sie ist einfach da. ;)

Edit:
Warum gibt es hier eigentlich kein Unterforum für technische Grundsatz-Diskussionen? :D
 
Last edited by a moderator:
Last edited by a moderator:
Back
Top