PDA

Bekijk Volledige Versie : Apache configuratie opslaan in database



NvdB22
07/06/08, 17:29
Dames en Heren,

Om wat ervaring op te doen ben ik bezig met het opzetten van een webserver. De server draait op Debian en Apache, MySQL en PHP is allemaal al geïnstalleerd.
Om virtual hosts te beheren ben ik een PHP-based adminpaneel aan het maken. Ik vroeg me alleen af of Apache 2.2.3 zijn configuratie bestanden op kan slaan in een MySQL database. Dit zou namelijk erg veel werk besparen.

Alvast bedankt!

groenleer
07/06/08, 17:32
Wat dacht je van zelf periodiek de config files laten genereren aan de hand van database info?

Of je schaft een DirectAdmin licentie aan ;).
Dat kan je waar gewenst uitbreiden met PHP.

NvdB22
07/06/08, 17:35
Daar dacht ik in het begin ook aan. Alleen dit is wat meer werk als dat Apache het direct uit de database haalt.

Ik ga geen controlpanel kopen, omdat ik via dit "project" ook mijn PHP kennis wil uitbreiden

Digires
07/06/08, 21:09
Het lijkt me geen goed idee om de webserver afhankelijk te maken van de MySQL server, als die niet functioneert, dan functioneert je webserver ook niet meer.

Overigens "kijkt" apache maar 1 keer naar de config, en dat is bij een (re)start of een (re)load.

Deimos
07/06/08, 21:17
De meeste controlpanels bewaren het één en ander in MySQL. Vervolgens worden de bestanden dmv een script (bijv PHP) geparsed tot bruikbare apache scripts. Vervolgens wordt er getest of de gegenereerde scripts correct werken en zoja wordt apache herstart. Werkt de config niet dan worden de oude gegevens teruggeplaatst.

Maar ik zou zeggen kijk eens naar een aantal gratis beschikbare controlpanels en kijk hoe die het hebben opgezet.

[edit]
SQL afhankelijkheid is niet aan te raden, maar komt tegenwoordig steeds vaker voor. Veel systemen draaien op een database backend. Zowel DNS, MAIL, WEB als andere extra tools.

NvdB22
07/06/08, 22:01
Oke, ik begrijp het punt. Ik zal eens een control panel gaan uitpluizen.

Bedankt voor de tips!

Edit: Heeft iemand een tip welk control panel ik het beste kan bekijken?

mind
08/06/08, 00:16
Je kan eventueel met mod_perl aan de gang gaan. Zie ook http://www.webhostingtalk.nl/servers-services-en-beveiliging/82308-apache2-virtualhosts-makelijk-aan-maken.html voor een paar tips in de goede richting.
Succes er mee...

HMe
08/06/08, 00:32
Ik gebruik de module mod_vhost_alias om eenvoudig virtual hosts te ondersteunen -> http://httpd.apache.org/docs/2.2/mod/mod_vhost_alias.html

ISPConfig is een control panel op basis van PHP, je kunt het beste versie 3 (is nog beta) bekijken -> http://ispconfig.org/

Een PHP client alleen voor mailadministratie (Postfix) is Postfixadmin -> http://postfixadmin.sourceforge.net/

NvdB22
08/06/08, 08:18
Je kan eventueel met mod_perl aan de gang gaan. Zie ook http://www.webhostingtalk.nl/servers-services-en-beveiliging/82308-apache2-virtualhosts-makelijk-aan-maken.html voor een paar tips in de goede richting.
Succes er mee...

Dank je wel voor de link! Hier kan ik zeker wat mee. Ik ga vanmiddag proberen of ik het daarmee aan de gang krijg.

Natuurlijk ga ik ook kijken naar ISPConfig en PostfixAdmin om te kijken hoe zij het doen!

SebastiaanStok
08/06/08, 10:38
Laat ik even een ding duidelijk maken, ik help alleen mensen als ik een topic ziet waar ik iets van snap, wil helpen. en daar ook tijd voor heb.

Ik hou er niet van per email of pm te worden gevraagd om hulp, tenzij het om maatwerk van een opdracht gaat.



Hoi,

De laatste tijd ben ik bezig met een eigen adminpaneel om een aantal zaken makkelijk te regelen.
Alleen zou het natuurlijk ontzettend veel werk besparen als ik de vhosts-configuratie van Apache op zou kunnen slaan in een database.
Ik stuitte op het volgende draadje: http://www.webhostingtalk.nl/servers...aan-maken.html.
Hierbij leek het laatste script wat hier gepost is geschikt voor hetgeen wat ik wil. Alleen krijg ik geen wijs uit de query naar de database toe. Hierdoor kan ik dus ook niet ontrafelen welke tabellen en velden je precies gebruikt.

Mijn vraag is dus of je deze database nog hebt draaien en of je evt de tabelstructuur naar mij zou willen sturen.

Alvast Bedankt!


Als ik alleen via pm reageer, hebben andere mensen er niets meer. Die met een soort gelijk probleem zitten ;)

Wat Rollerscapes gebruikt, is een compleet eigen ontwikkeld Klant en administratie paneel. Wat werkt met PHP5.2, PostgreSQL 8.2 en Perl voor bepaalde database hackhands.
De database structuur is erg complex, en verre van perfect.
Er is inmiddels een grote verandering gepland, welke de database nog complexer zal maken. En uitgebreider.

Dat topic waar Mind naar verwees, is al weer erg oud.
En mod_perl is leuk , maar niet geschikt voor virtualhosts.
Het probleem is dat"<Virtualhost *:80>" steeds de array overschrijft, en het dus voor geen meter werkt.

Wat ik nu gebruik is iets anders.
Om de 5 minuten draait een cronjob (onder root) welke kijkt of een bepaald bestand bestaat (/tmp/virhosts_update)

Als deze bestaat overschrijft hij het huidige virhosting configuratie bestand, herlaad apache, en verwijderd het '/tmp/virhost_update'.

Het bestand in /tmp wordt automatisch aangemaakt vanuit het klantpaneel en/of administratie. Ik heb speciaal voor deze locatie gekozen omdat iedereen daar wat kan schrijven.
Beter zou zijn, een map welke alleen door root en rollerscapes.www kan worden beschreven/gelezen. Zodat mensen bij wij ze van geen DDOS kunnen uitvoeren door zelf om de minuut dat bestand aan te maken. (Dat ga ik vandaag is aanpassen :) )

NvdB22
08/06/08, 10:49
Je eerste punt over PB / Email snap ik heel goed. Ik zal het voorstaan mensen niet meer via PB benaderen.

IK zal volgende week eens gaan experimenteren met alle dingen die hier in het topic staan.

Nogmaals bedankt.

Deimos
08/06/08, 12:19
Als je nog input nodig hebt post het dan gerust hier. Er zijn meer mensen met een eigen ontwikkeld systeem dan je denkt. Ook al lijkt dit niet het geval door de grote hoeveelheid DA / Plesk topics.

az-nzl
09/06/08, 07:55
Wij signallen een proces op de betreffende server met de opdracht de configuratie van apache te herladen. Deze voert meteen wat additionele checks uit, zoals bestaan van home directories e.d. Waarna nog een reload van apache plaats vindt.
Data voor de configuratie wordt dus elke keer uit mysql gehaald en in normale apache configs gegoten.

SebastiaanStok
09/06/08, 10:19
Controle is bij mij voor de volgende versie gepland ;)
Zo wie zo moet ik toch wat dingen veranderen, met het ook op clustering in de toekomst.