Toon posts:

[apache] restarten met script dmv 2e instantie *

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb op mijn linux machine een Control Panel systeem geschreven (php), althans... ik ben er mee bezig.

om apache te starten en stoppen (apachectl stop, start, restart) heb ik root rechten nodig.

Dus ik wil een 2e apache laten draaien op root rechten (in ieder geval voldoende recht) om dit te doen. De boel natuurlijk over SSL verbinding laten gaan en beveiligen met username en pass, maar het moet genoeg rechten hebben om de boel te starten en stoppen.

De rede dat ik dit wil, als ik een nieuw domein toevoeg in mijn database (ofwel httpd.conf) dan moet de apache een schop krijgen om hem te herkennen (reload, stop/start, restart of wat dan ook).


Ik wil dus bijvoorbeeld doen 'mycpctl start' en dan start hij mijn CP panel (apache e.d) op poort xxx

Verwijderd

Hat makkelijkste is als je een PHP httpd server opzet. (er zijn al enkele open source projecten die dit hebben). Op deze manier ben je niet afhankelijk van de httpd binarie indien je je server wilt herstarten / updaten.

  • Reptile209
  • Registratie: Juni 2001
  • Laatst online: 01:08

Reptile209

- gers -

Is het dan niet mogelijk om via je control-panel een server-side shell script te starten dat apache voor je stopt en start? Dan ben je van de extra load van een complete tweede server af, en zou het ook moeten (kunnen) werken. Moet je alleen niet je instellingen zo vern**ken dat apache helemaal niet meer start, maar dan heb je altijd telnet nog...
/*nix n00b mode

:)

Zo scherp als een voetbal!


  • whoami
  • Registratie: December 2000
  • Laatst online: 20:22
Ik zie niet in wat dit met P&W te maken heeft, het gaat nl. niet over programmeren.

P&W -> SA dan maar.

https://fgheysels.github.io/


  • G33rt
  • Registratie: Februari 2002
  • Laatst online: 22-06-2022
Indien we het inderdaad over een linux variant hebben raad ik je aan Webmin te gebruiken, aangezien die precies de functionaliteit heeft die jij wil :)

Webmin download page, en het heeft zelf een ingebouwd servertje dat je op een gewenste port kunt draaien :)

[ Voor 38% gewijzigd door G33rt op 31-12-2003 18:00 ]


  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB/AI

Front verplichte underscores

offtopic:
Als ik het goed begrijp, is je vraag dus meer hoe de boel te starten/stoppen (een tweede apache instantie draaien is AFAIK heel erg simpel) --> een kleine titeledit dus :)

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


  • Rafe
  • Registratie: Mei 2002
  • Laatst online: 27-06-2025
F_J_K was wat vroeg aan de bubbeltjes denk ik (:+), want acid007 wil als G33rt en ik het goed begrijpen met zijn tweede Apache instantie de eerste stoppen/hertsrten etc.
Dus bij deze alsnog de juiste titel (hoop ik). :)

Verwijderd

Topicstarter
Ik weet niet wie het in zijn hoofd haalt om zomaar de titel zonder vragen te veradneren, maar deze titel klopt geen bal van.
[-edit-]
my bad, hij klopt half ;)
[-/edit-]

ik WIL:

1- Apache draaien voor klanten. Poort 80 en 443 (ssl) en alle virtual hosts daarin gooien. Iedereen op poort 80 komt daarop uit.

2- Apache draaien voor mijn CP, op poort 8080 bijvoorbeeld. Dit is dus een GEHEEL andere apache, die ook op een andere user draait dan de gewone apache.

Op de CP (2 dus) de apache (1 dus) kunnen restarten, configtesten en meer. Daarvoor heb je normaal ROOT nodig vandaar dat ik de 2e cp op root wil laten draaien (groep root, user iets anders).

[ Voor 5% gewijzigd door Verwijderd op 01-01-2004 14:01 ]


  • reddevil001
  • Registratie: Januari 2002
  • Laatst online: 02-09 11:18
Laat een scriptje elke 5 minuten kijken of er een nieuw (sub-)domein aangemaakt is in de database. Indien dat het geval is herstart je apache. Dan is er nooit direct root-toegang.
Aan je klanten kan je melden dat binnen 5 minuten het (sub-)domein werkt.

None


  • G33rt
  • Registratie: Februari 2002
  • Laatst online: 22-06-2022
Op de CP (2 dus) de apache (1 dus) kunnen restarten, configtesten en meer. Daarvoor heb je normaal ROOT nodig vandaar dat ik de 2e cp op root wil laten draaien (groep root, user iets anders).
dat staat er toch? Apache restarten mbv een script in een 2e instantie? wat is er fout aan de titel dan? Tevens hebben Rafe en F_J_K je titel veranderd, maar ze mogen dat gewoon zonder vragen hoor :)

Verwijderd

Topicstarter
Is een idee, maar dat is erg omslachtig en zou een goede rede zijn dat concurrenten mij voor zijn.

Ik ben daarom ook erg benieuwd hoe CPANEL en PLESK dit bijvoorbeeld doen, kan alleen nergens er iets over vinden.

geeft er iemand nog enig idee wat betreft de vraag? Hoe start ik een 2e apache instantie ?

---
ik zie net op een ander forum iets over 'sudo' dat ook hoort te werken volgens hun. Klopt dat ? Iemand ervaring mee?

  • G33rt
  • Registratie: Februari 2002
  • Laatst online: 22-06-2022
Verwijderd schreef op 01 januari 2004 @ 14:06:
geeft er iemand nog enig idee wat betreft de vraag? Hoe start ik een 2e apache instantie ?
[rml]G33rt in "[ apache] restarten met script dmv 2e ins..."[/rml] gezien? Het is wel geen 2e instantie, maar doet wel precies wat je wil en je kan meteen je systeem beheren :)

Verwijderd

Topicstarter
G33rt schreef op 01 januari 2004 @ 14:06:
[...]

dat staat er toch? Apache restarten mbv een script in een 2e instantie? wat is er fout aan de titel dan? Tevens hebben Rafe en F_J_K je titel veranderd, maar ze mogen dat gewoon zonder vragen hoor :)
Sorry, het is nog vroeg, de beste wensen voor het nieuwe jaar trouwens ;) niet goed gelezen mn ogen zitten nog wat dicht.


Maar ik moet echt ZSM een oplossing hebben, zit wat druk achter :x

Verwijderd

Topicstarter
gezien? Het is wel geen 2e instantie, maar doet wel precies wat je wil en je kan meteen je systeem beheren
Hoe zou jij het vinden als ik tegen je zeg dat je bij mij een domein krijgt, maar dat je ff moet bellen zodat ik kan inloggen op de webmin interface om de boel te rebooten.

Webmin heb ik wel, maar dit is iets anders. Vergelijkbaar met CPanel en Plesk, alleen dan voor mij persoonlijk.

  • G33rt
  • Registratie: Februari 2002
  • Laatst online: 22-06-2022
Hoe zou jij het vinden als ik tegen je zeg dat je bij mij een domein krijgt, maar dat je ff moet bellen zodat ik kan inloggen op de webmin interface om de boel te rebooten.
leg me dan eens uit wat het wezenlijke verschil is tussen inloggen op een 2e apache instantie om de boel te herstarten of op een webmin interface? volgens mij begrijp ik dan verkeerd wat je precies wil :)

tevens is GoT er niet om je even 'zsm van oplossing' te voorzien, wij zitten hier ook voor onze lol, maar dat terzijde :)

zou je binnen 24 uur na je laatste post als niemand anders gereageerd de edit knop (Afbeeldingslocatie: http://gathering.tweakers.net/global/templates/got/images/icons/edit.gif) willen gebruiken? anders komt het op sommige mensen over alsof je je topic kickt, en dat word niet gewaardeerd :)

[ Voor 23% gewijzigd door G33rt op 01-01-2004 14:13 ]


Verwijderd

Topicstarter
Dat snap ik, ik maak dit ook voor de lol eigelijk maar ik kan nu niets aanpassen op me server :P

Het idee is dat ik op een secure poort zoals bijvoorbeeld 8080 mijn control panel ga draaien. Dit is een panel vergelijkbaar met webmin, maar het lijkt meer op CPANEL of PLESK. Ik kan inmiddels alles in de database zetten (mijn httpd.conf leest de data uit de mysql database ipv de file zelf) en dat gaat allemaal goed. Als ik dus een domein toevoeg en handmatig apache reboot dan werkt het perfect.

Nu wil ik dat iedereen die op mijn CP inlogt, mensen krijgen daar toegang van mij voor, zelf een domein kan toevoegen. Als ze dat gedaan hebben, even een klik op "save now" waardoor de boel gaat reloaden/restarten.

Zou je dat in de ZELFDE apache instantie doen dan krijg je een timeout (niet erg handig denk ik).


Webmin is inderdaad heel handig hiervoor, daar kwam mijn inspiratie ook een beetje vandaan. Maar, dat is een perl script. Erg jammer. Ik ben het nu in PHP aan het schrijven met:
PHP:
1
2
3
<?php
shell_exec("apachectl start/stop/reload");
?>

of zo iets ;)

--
prima, ben nog niet zo thuis met de GOT regels..

[ Voor 5% gewijzigd door Verwijderd op 01-01-2004 14:15 ]


  • G33rt
  • Registratie: Februari 2002
  • Laatst online: 22-06-2022
Webmin is inderdaad heel handig hiervoor, daar kwam mijn inspiratie ook een beetje vandaan. Maar, dat is een perl script. Erg jammer.
Bij Webmin kan je users maken en die alleen toegang geven tot de Apache configuratie, enige nadeel is dan wel dat ze de configuratie van anderen zien als die in httpd.conf staat (maar dat is niet) en ze je server kunnen opblazen, en ik weet niet in hoeverre dat wensenlijk is (en hoe verantwoordelijk je users zijn). En Perl zit gewoon standaard bij elke distro bij hoor :)

Verwijderd

Topicstarter
nogmaals ik wil mijn eigen cp schrijven omdat ik een of andere gare freak ben qua php/linux en het een leuke uitdaging vind. Ik wil dus weten hoe het kan, en zal er ook zolang voor zoeken tot het mogelijk is om te doen wat ik wil.

2 simpele vragen;
- WAT doet sudo precies
- HOE kan ik een 2e apache laten draaien zonder problemen

  • DJSmiley
  • Registratie: Mei 2000
  • Laatst online: 17:02
Volgens mij was/is er ook een addon voor Apache, waarbij ie de vhost config uit een SQL databeest kan halen.

Dan hoef je 'm niet te herstarten, en is het makkelijker te fixen in een mooi paneltje.

Zoiezo vind ik een apache stop-start niet echt netjes: Klant A heeft bezoekers op z'n site, iemand voegt ff domeintje toe, BAM, apache ff herlaarzen.

Verwijderd

Topicstarter
de addon voor apache heb ik want hij haalt nu alles uit mijn MYSQL database

maar wat moet ik dan doen om de boel te reloaden, want het is verplicht om te reloaden als ik een domein toevoeg....

  • reddevil001
  • Registratie: Januari 2002
  • Laatst online: 02-09 11:18
Ik heb nu niet zoveel tijd om er verder in te verdiepen, maar ik kwam via google op iets van "mass vhosting".

http://hypermail.linklord...pd.old/2000/Mar/0301.html

None


  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

Verwijderd schreef op 01 januari 2004 @ 14:41:
de addon voor apache heb ik want hij haalt nu alles uit mijn MYSQL database

maar wat moet ik dan doen om de boel te reloaden, want het is verplicht om te reloaden als ik een domein toevoeg....
verplicht niet, zelf heb ik een vhost aangemaakt:

code:
1
2
3
4
5
6
7
8
<VirtualHost *>
    ServerName insert_server_name

    CustomLog /var/log/apache/vhost_access.log vcommon
    ErrorLog /var/log/apache/vhost_error.log

    VirtualDocumentRoot /var/www/vhosts/%0/htdocs
</VirtualHost>


door nu simpel weg directories te creeren kan ik domains adden.

Als dit niet is wat je wilt zou je ook een page kunnen maken onder je normale apache die bijvoorbeeld een file aanmaakt zodra apache opnieuw gestart moet worden en dan door middel van een cronjob eens in de 5min checken of een "apachectl graceful" nodig is door te kijken of die file bestaat, zodat je ook geen apache als root hoeft te draaien en tevens voorkom je hiermee dat apache te vaak wordt herstart als iemand bijvoorbeeld een foutje maakt :)

Overigens als je even "httpd --help" had gedaan had je zo kunnen zien dat je met -f een andere config file had kunnen aanroepen waarin je je tweede apache instantie kan maken ;)

Verwijderd

Verwijderd schreef op 01 januari 2004 @ 14:15:
Webmin is inderdaad heel handig hiervoor, daar kwam mijn inspiratie ook een beetje vandaan. Maar, dat is een perl script. Erg jammer. Ik ben het nu in PHP aan het schrijven met:
PHP:
1
2
3
<?php
shell_exec("apachectl start/stop/reload");
?>

of zo iets ;)
Ehmmm....misschien mis ik hier iets hoor, maar:

In je 2e instantie kun je toch mooi de volgende code gebruiken:
PHP:
1
2
3
<?php
shell_exec("su - <user> -c \"apachectl start/stop/reload\"");
?>


(Over die \" ben ik niet zeker: ben geen PHP-coder :*) maar in shell, Perl, e.d. werkt de \" zo)....

BTW: Ik zou Apache nooit als root draaien (root exploits, buffer overflows, etc.)

  • smoking2000
  • Registratie: September 2001
  • Laatst online: 02-09 06:28

smoking2000

DPC-Crew

dpkg-reconfigure reality

Apache suExec
De Apache-daemon scripts laten runnen met root rechten

| [Folding@Home] Announce: Client monitor voor Linux (fci) | fci-1.8.4 | Fatal Error Group |


  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

Verwijderd schreef op 01 januari 2004 @ 22:45:
In je 2e instantie kun je toch mooi de volgende code gebruiken:
PHP:
1
2
3
<?php
shell_exec("su - <user> -c \"apachectl start/stop/reload\"");
?>
ik zou dan een sudo gebruiken waarbij je geen password hoeft in te voeren voor dat commando, op die manier is alleen _dat_ commando te gebruiken.
(Over die \" ben ik niet zeker: ben geen PHP-coder :*) maar in shell, Perl, e.d. werkt de \" zo)....
klopt, maar je kan ook 'single' quotes gebruiken zodat je niet hoeft te escapen :)

Verwijderd

Topicstarter
Erkens schreef op 01 januari 2004 @ 22:44:
[...]

verplicht niet, zelf heb ik een vhost aangemaakt:

code:
1
2
3
4
5
6
7
8
<VirtualHost *>
    ServerName insert_server_name

    CustomLog /var/log/apache/vhost_access.log vcommon
    ErrorLog /var/log/apache/vhost_error.log

    VirtualDocumentRoot /var/www/vhosts/%0/htdocs
</VirtualHost>


door nu simpel weg directories te creeren kan ik domains adden.

Als dit niet is wat je wilt zou je ook een page kunnen maken onder je normale apache die bijvoorbeeld een file aanmaakt zodra apache opnieuw gestart moet worden en dan door middel van een cronjob eens in de 5min checken of een "apachectl graceful" nodig is door te kijken of die file bestaat, zodat je ook geen apache als root hoeft te draaien en tevens voorkom je hiermee dat apache te vaak wordt herstart als iemand bijvoorbeeld een foutje maakt :)

Overigens als je even "httpd --help" had gedaan had je zo kunnen zien dat je met -f een andere config file had kunnen aanroepen waarin je je tweede apache instantie kan maken ;)
Waarvoor staat de %0 in de document root? Wat denk jij dat de veiligste oplossing is voor zo'n CP.. wat adviseer jij. Je komt over als iemand die al meer ervaring heeft met linux ;)

  • G33rt
  • Registratie: Februari 2002
  • Laatst online: 22-06-2022
Verwijderd schreef op 02 januari 2004 @ 12:58:
[...]


Waarvoor staat de %0 in de document root? Wat denk jij dat de veiligste oplossing is voor zo'n CP.. wat adviseer jij. Je komt over als iemand die al meer ervaring heeft met linux ;)
Bekijk de docs over mod_vhost_alias even, daar staat de %0 uitgelegd
http://httpd.apache.org/docs-2.1/en/mod/mod_vhost_alias.html]For simple name-based virtual hosts you might use the following directives in your server configuration file:
code:
1
2
UseCanonicalName Off
VirtualDocumentRoot /usr/local/apache/vhosts/%0

A request for http://www.example.com/directory/file.html will be satisfied by the file /usr/local/apache/vhosts/www.example.com/directory/file.html.
je had het kunnen vinden door in de apache docs te zoeken op "VirtualDocumentRoot", daar was het de eerste hit :)

[ Voor 8% gewijzigd door G33rt op 02-01-2004 13:09 ]


Verwijderd

Topicstarter
Heel erg bedankt voor de hulp. Lang leve GoT :)

Iedereen een prettig nieuwjaar ik hoop dat ik er zo uitkom :)


Nog 1 klein vraagje, kan zo'n virtual host ook een bepaalde user meekrijgen? Zodat de permissions goed staan. Anders zit ik alsnog met het permission probleempje ;)

[ Voor 44% gewijzigd door Verwijderd op 02-01-2004 13:09 ]


  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

Verwijderd schreef op 02 januari 2004 @ 13:07:
Nog 1 klein vraagje, kan zo'n virtual host ook een bepaalde user meekrijgen? Zodat de permissions goed staan. Anders zit ik alsnog met het permission probleempje ;)
hoe bedoel je?
zelf heb ik in mijn /var/www/vhosts/ directory symlinks gemaakt naar homedirs zodat dat geen probleem is :)

Verwijderd

Topicstarter
als je daar wat meer over wilt uitleggen, graag ;) ik ben benieuwd wat dat voor mij kan betekenen.


Als ik de aanpassing voor Virtual host doe (VirtualDocumentRoot) krijg ik errors van de SQL module die ik gebruik. Hij trekt alles uit mijn MYSQL database namelijk, dus dat valt af.

Ik denk dat ik maar even een perl script schrijf die onder root ieder uur een 'graceful' doet. Dit kan geen kwaad lijkt mij ?

  • G33rt
  • Registratie: Februari 2002
  • Laatst online: 22-06-2022
Nog 1 klein vraagje, kan zo'n virtual host ook een bepaalde user meekrijgen? Zodat de permissions goed staan. Anders zit ik alsnog met het permission probleempje
wat voor permissieprobleem? hoe komen de permissies dan te staan en waarom is dat fout?
als je daar wat meer over wilt uitleggen, graag ik ben benieuwd wat dat voor mij kan betekenen.
tik eens 'man ln' in, of bekijk een online manpage :)

[ Voor 33% gewijzigd door G33rt op 02-01-2004 13:19 ]


  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

Verwijderd schreef op 02 januari 2004 @ 13:16:
Als ik de aanpassing voor Virtual host doe (VirtualDocumentRoot) krijg ik errors van de SQL module die ik gebruik. Hij trekt alles uit mijn MYSQL database namelijk, dus dat valt af.
zou best kunnen dat dat niet samen werkt, heb ik geen idee van.
Ik denk dat ik maar even een perl script schrijf die onder root ieder uur een 'graceful' doet. Dit kan geen kwaad lijkt mij ?
kan geen kwaad, mits je maar zorgt dat er _geen_ fouten in je conf file zitten

Verwijderd

Topicstarter
als men mijn tool gebruikt is het bijna onmogelijk om fouten in de config te creeren.. als men dingen niet goed invult word er ook niets opgelsagen..


Thnx voor alle hulp!

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

Verwijderd schreef op 02 januari 2004 @ 13:20:
als men mijn tool gebruikt is het bijna onmogelijk om fouten in de config te creeren.. als men dingen niet goed invult word er ook niets opgelsagen..
overigens, misschien een klein tipje om je conf file wat overzichtelijker te houden zou ik met "Include" een andere conf file includen zodat je script niet aan je originele httpd.conf hoeft te rommelen :)

Verwijderd

Erkens schreef op 01 januari 2004 @ 22:50:
[...]

ik zou dan een sudo gebruiken waarbij je geen password hoeft in te voeren voor dat commando, op die manier is alleen _dat_ commando te gebruiken.
Eens! Dat is een betere oplossing.
[...]

klopt, maar je kan ook 'single' quotes gebruiken zodat je niet hoeft te escapen :)
Ook eens! Ik zei al: ben geen PHP-coder ;)
smoking2000 schreef op 01 januari 2004 @ 22:50:
Apache suExec
De Apache-daemon scripts laten runnen met root rechten
Dit is ook een goede oplossing! Zoals je ziet zijn er een aantal mogelijkheden om dit op te lossen!

Succes met je CP! Krijgen we het resultaat nog te zien?

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

Verwijderd schreef op 02 januari 2004 @ 13:25:
Dit is ook een goede oplossing! Zoals je ziet zijn er een aantal mogelijkheden om dit op te lossen!
helaas :P
# Is the target user NOT superuser?

Presently, suEXEC does not allow root to execute CGI/SSI programs.

Verwijderd

Topicstarter
De CP zal online komen natuurlijk, zodra ik iets heb wat er een beetje goed uit ziet. Het werkt nu wel, maar nog niet zo als ik het wil hebben.

Op dit moment ben ik de berg informatie die ik van jullie verkreeg nog even aan het verwerken ;) Door de bomen het bos niet zien is denk ik een goede omschrijving hiervoor.

Jullie horen ongetwijfelt nog van mij ;)

-- edit
ik heb nu even in de cron een hourly apachectl graceful gezet.. tijdelijk.

[ Voor 11% gewijzigd door Verwijderd op 02-01-2004 13:31 ]


Verwijderd

Topicstarter
Ik wil iedereen hier allereerst bedanken voor de hulp. Maar ik wil graag van jullie weten wat zien jullie als de beste oplossing, denk hierbij vooral aan de veiligheid. Of ik me hele linux machine moet verbouwen maakt me weinig, maar ik wil dat alles veilig blijft.

Wat is beter, waarom? Voordelen? Nadelen?

Verwijderd

Topicstarter
Even een update,

ik heb een 2e apache met andere naam weten te maken in een nieuwe map, geheel los van de eigen apache (op poort 80).

Die draait nu onder een andere naam (van de cp) op de achtergrond op een andere poort.

Nu probeer ik op een user (user zit in de root groep) de apache te stoppen via shell, hij geeft geen kik dat het niet lukt maar apache is ook niet down.


Gekheid ten top.

Zijn er dingen die ik over het hoofd zie misschien.
Pagina: 1