PDA

Bekijk Volledige Versie : custom debian package apache



Costeijn
18/10/07, 18:41
Hallo,

Aangezien ik altijd op verschillende plaatsen de zelfde handelingen uitvoer mbt tot het installeren van apache, php etc. Wil ik dit graag in een eigen .deb file gooien en die dan op elke server runnen.

Ik heb een debian folder gemaakt waarin dus alles komt. Alleen weet ik niet welke bestanden hier precies inmoeten. Tot nu toe heb ik:

/etc/apache2
/var/www (default wwwroot)
var/run/apache
var/run/apache.pid
/usr/share/apache2

Maar hoe weet ik welke directory's ernog meer bij moeten? Hoop dat iemand mij opweg kan helpen. Ik zag dat Wido ooit een pcx-amp heeft gemaakt dus misschien dat hij me opweg kan helpen.

Alvast bedankt!

Als ik al dze gebruik: http://packages.ubuntu.com/cgi-bin/search_contents.pl?searchmode=filelist&word=apache2-common&version=dapper&arch=i386&page=1&number=all zou hij dan moeten werken?

Freakingme
18/10/07, 21:27
ja, ik zou een bestaand package gebruiken,door hier de sources van te downloaden, dit zal iets zijn als:
apt-get source apache2-common

Dat bestand extract je in je debian map. Nu heb je de sources van een werkend packages welke je naar gelang kan aanpassen, om daarna weer te rebuilden.

JMB
18/10/07, 22:48
Volgens mij is dit wel een handig artikel: http://linuxdevices.com/articles/AT8047723203.html Het komt er dus op neer dat je hem moet builden met dpkg.

Freakingme
18/10/07, 23:28
Ik zou eens kijken voor het builden zelf naar pbuilder (http://www.google.com/search?client=opera&rls=en&q=pbuilder+tutorial&sourceid=opera&ie=utf-8&oe=utf-8). Dit is een stuk gebruiksvriendelijker, en is in feite een wrapper om dpkg...

samage
19/10/07, 10:40
Houd er wel rekening mee dat als je alles in een eigen pakket gooit, de security updates op die pakketten niet meer werken (tenzij je je eigen pakket ook gaat onderhouden). Wij hebben het lijstje van debian packages die we hanteren in een script gezet. Werkt ook prima & is erg simpel.

hrodenburg
19/10/07, 16:53
Als het alleen maar configs zijn, zou ik niet een aparte package hiervoor maken. Op die manier maak je het jezelf alleen maar moeilijk wanneer er inderdaad (security)updates uitkomen. Dan moet je op dat moment weer je eigen package patchen en compilen. Misschien kun je beter je configs in een tarball stoppen en deze elke keer uitpakken op een nieuwe installatie. Dat doe ik ook altijd met bepaalde tooltjes en settings (bashrc enzo). Ik heb wel een zelf wel een custom apache, maar dat is omdat deze gepatch't is voor mod_ruid.
Succes in ieder geval!

Wido
19/10/07, 18:01
Als het alleen maar configs zijn, zou ik niet een aparte package hiervoor maken. Op die manier maak je het jezelf alleen maar moeilijk wanneer er inderdaad (security)updates uitkomen. Dan moet je op dat moment weer je eigen package patchen en compilen. Misschien kun je beter je configs in een tarball stoppen en deze elke keer uitpakken op een nieuwe installatie. Dat doe ik ook altijd met bepaalde tooltjes en settings (bashrc enzo). Ik heb wel een zelf wel een custom apache, maar dat is omdat deze gepatch't is voor mod_ruid.
Succes in ieder geval!Wat moet je patchen voor mod_ruid?

Ik draai op Ubuntu Dapper gewoon mod_ruid met een Apache die via apt-get binnen is gekomen.

Ik heb gewoon de .so gebouwd met apxs2.

Tegenwoordig apt-get ik zo veel mogelijk en al mijn configuraties sla ik op in een Subversion repository.

Costeijn
19/10/07, 19:19
Wat houdt dat in een Subversion repository wido?

zo'n svn klinkt handig.

Maar ik ben er nog niet helemaal uit hoe ik het moet aanpakken. Ik download de source met apt-get source apache2. Hierin wil ik mijn eigen configfiles en mod_ruid installeren. Alleen nu zie je de bestanden en mappen niet zelf. Je ziet bestanden genaamd apache2-common.dirs. Als ik met vim deze file lees zie ik daar de /etc/apache2 mappen e.d staan.

Moet ik de tarball downloaden vanaf de apache site en dan deze compilen met ./configure --prefix=/etc/apache2 en dan de bestanden bewerken en mod_ruid installeren?

Wie kan me opweg helpen?

Wido
20/10/07, 17:28
Waarom de source downloaden?

Je installeert de binary en maakt een script die uit je SVN de juiste configs haalt en ze op de juiste plaats op de disk plaatst.

mod_ruid compile je later tegenover je Apache.

hrodenburg
21/10/07, 13:58
Wido, ik compileer apache opnieuw (ik gebruik debian en geen ubuntu), omdat je apache natuurlijk als root moet draaien wil je mod_ruid kunnen gebruiken. Standaard debian packages laten dat bij mijn weten niet toe, en moet je ze dus opnieuw compilen met de optie (uit m'n hoofd) -DBIG_SECURITY_HOLE. Of heb ik het nu helemaal mis ?!?

Freakingme
21/10/07, 16:32
waarom wil je apache nou opnieuw compileren? Met welke user je apache draait maakt niet uit, als deze maar uid 1 heeft (ivm suid).

hrodenburg
21/10/07, 16:39
uid 0 bedoel je denk ik? Ook al laat ik apache fijn onder www-data draaien, en geef ik het account uid 0, krijg je nog steeds onderstaande melding van apache.


Error: Apache has not been designed to serve pages while
running as root. There are known race conditions that
will allow any local user to read any file on the system.
If you still desire to serve pages as root then
add -DBIG_SECURITY_HOLE to the EXTRA_CFLAGS line in your
src/Configuration file and rebuild the server. It is
strongly suggested that you instead modify the User
directive in your httpd.conf file to list a non-root
user.

Opnieuw compilen is dan toch de enige optie lijkt mij?

Freakingme
21/10/07, 16:48
Wat jij hebt, is dat je een normale gebruiker ook uid 0 (ik bedoelde idd '0') hebt gegeven. Als je deze gebruiker ook group 0 geeft, zou het probleem opgelost moeten zijn afaik.

hrodenburg
21/10/07, 16:50
lijkt er niet op. ik heb het net getest met dit in mijn passwd:

www-data:x:0:0:www-data:/var/www:/bin/sh
(Dan heeft het account dus ook gid 0)

Freakingme
21/10/07, 17:11
Ik bedoel meer andere gebruikers, dus een user met uid0 en gid>100(0)

hrodenburg
21/10/07, 17:20
Nu haak ik echt even af hoor :) Hoe bedoel je "andere gebruikers". Ik zal toch echt apache met uid0 moeten draaien wil deze ooit kunnen "su'en" naar een ander uid. En dat doet mod_ruid uiteindelijk natuurlijk een beetje. Ik zie dus even niet hoe ik het anders kan doen. Maar misschien mis ik iets natuurlijk.

Freakingme
21/10/07, 17:35
Ik heb dit probleem ook wel eens gehad. Ik had een 'normale' user uid0 gegeven, terwijl apache gewoon als root draaide. Zolang een dergelijke 'normale' gebruiker met uid>0,gid>0 in passwd stond, weigerde apache te draaien toen.