Portál AbcLinuxu, 26. dubna 2024 16:35


Dotaz: Reload apache přes Web

26.2.2008 10:01 Greeg | skóre: 2
Reload apache přes Web
Přečteno: 524×
Odpovědět | Admin
Zdarec,

mám takovou prosbičku, přes php script se mi generujou virtualhosti do apache, masshosting nemůžu použit, protože má kařdej virtual zcela specifické nastavení.

Potřebuji nějak docílit toho, aby se mi po přidání virtuálhosta vždy reloadnul apache, vím že to pujde nějak přes perl/cgi script, jenomže nevim jak nato...

Vždy když se na to někoho ptám tak mi vnucuje ten masshosting, jenomže ten opravdu nemůžu použít!

TJ: potřebuji něco jako http://mojedomena/nastaveni/cgi-bin/reload.pl

jenomže perl neumim, a nějak to nemůžu rozchodit.

Díky moc
Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

26.2.2008 10:31 Ripper | skóre: 31
Rozbalit Rozbalit vše Re: Reload apache přes Web
Odpovědět | | Sbalit | Link | Blokovat | Admin
A co vyzkoušt webmin - www.webmin.com, odinstalovat všechny moduly, kromě Apache. To dělá přesně to, co chcete.
26.2.2008 10:41 Greeg | skóre: 2
Rozbalit Rozbalit vše Re: Reload apache přes Web
Já vim, jenomže tam jsem zase omezenej přihlášením do webminu, potřebuji aby se to dělo automaticky, reakcí na jinej script...

Ukázka:

muj vlastní administrační systém vytvoří:

uživatele, virtualhosta, databázi, ftp přístup,a domovský adresář

nyní potřebuji reloadnout apache, aby načetl nastavení, děje se to automaticky, bez zásahu uživatele.

proto nemůže být webmin, spíš bych potřeboval ten cgi script, wlastně to co dělá webmin po kliknutí na znovunačtení apache.

Jenomže we wbminu to nikde nemůžu najít abych to z toho vykuchal...

Dík
Johny z Podoli avatar 26.2.2008 10:54 Johny z Podoli | skóre: 26 | blog: rocfdebian
Rozbalit Rozbalit vše Re: Reload apache přes Web
no, co napsat nějakej script typu:


#!/bin/sh

ls -l /etc/apache/sites-enable/ > /tmp/ln-1
ZMENA=`diff /tmp/ln-1 /tmp/ln-0 | grep ">" -C`

if [ ZMENA == "0" ];
exit
fi;

/etc/init.d/apache2 restart
ls -l /etc/apache/sites-enable/ > /tmp/ln-0

jde jen o nápad, nezkoušel sem to, nejspíš bude plné chyb, v bashi neprogramuju. Nicméně tohle upravit aby to prošlo, pak to dát po minutě do cronu. Zátěž 0,0000 nic a funguje to. Výhoda je, že nehrozí nějakej DoS útok na tvůj pl script... navíc nemám rád když kdokoliv může nějak "rebootnout" cokoliv :)
Můj web o táborech: Letní dětské tábory, Hudební tábor , Můj nový blog na Nul.cz
26.2.2008 11:01 Greeg | skóre: 2
Rozbalit Rozbalit vše Re: Reload apache přes Web
Aby se k tomu nikdo nedostal, to mám ošetřený, přístup k souborum cgi má pouze localhost a script kterej volá restart předává dost ověřovacích informací, tak aby se k tomu nikdo nedostal, plus pokud dojde k porušení ověřovacích informací, ip adresu to na hoďku zabanuje + pokud nedojde k dokončení scriptu během 10 sekund stane se to samé, takže neni ani čas, aby někdoo skoušel spustit ten script jinak než by měl běžet...,

a pokud by se k tomu někdo jako localhost dostal, asi nebude řešit zrovna restart apache....

j ale s tim cronem je to dobrej nápad...

Pokud by měl někdo ještě nějaký nápad, tak napište

Dík
26.2.2008 13:02 Zdeněk Burda | skóre: 61 | blog: Zdendův blog | Praha
Rozbalit Rozbalit vše Re: Reload apache přes Web
Restart apache uživatele skutečně ocení :-) Spíš bych zkusil něco jako httpd -k graceful (nebo /etc/init.d/apache reload) a před provedením bych udělal kontrolu na správnost konfgiuračního souboru.

Určitě bych nedělal reload serveru při každém prdu, ale počkal bych nějakou rozumnou dobu.
-- Nezdar není hanbou, hanbou je strach z pokusu.
Johny z Podoli avatar 26.2.2008 10:58 Johny z Podoli | skóre: 26 | blog: rocfdebian
Rozbalit Rozbalit vše Re: Reload apache přes Web
ale pokud na tom trváš tak, jak to píšeš ty, tak stačí do /usr/lib/cgi-bin/restart.sh hodit něco jako
#!/bin/bash

echo Content-type: text/html

/etc/init.d/apache2 restart
pak tomu nastav práva na 444 a setuid na roota :) Snad to bude taky co chceš. Popřípadě si tam nastav sudo pro www-data, jak je libo.
Můj web o táborech: Letní dětské tábory, Hudební tábor , Můj nový blog na Nul.cz
26.2.2008 11:08 Greeg | skóre: 2
Rozbalit Rozbalit vše Re: Reload apache přes Web
Ještě drobnost, jak to zavolám přes prohlížeč, tak aby se to spustilo a nesnažilo uložit aplikaci typu x-sh ?
26.2.2008 12:16 Greeg | skóre: 2
Rozbalit Rozbalit vše Re: Reload apache přes Web
Ještě jeden dotázek, jak donutit apache2 aby do logu neukládal reload apache ?

jelikož jsem tedy nakonec udělal ten cron, a nastavil ho na každou minutu, budu mít za pár dní plnej systém logů :)
Johny z Podoli avatar 26.2.2008 12:43 Johny z Podoli | skóre: 26 | blog: rocfdebian
Rozbalit Rozbalit vše Re: Reload apache přes Web
no, pokud ten cron, tak jako kontroluj zda došlo k úpravě. Pokud došlo tak reload, jinak ne!! Pak log bude tak plnej jak často si lidi udělají úpravu :)

Johny
Můj web o táborech: Letní dětské tábory, Hudební tábor , Můj nový blog na Nul.cz
26.2.2008 13:45 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: Reload apache přes Web
Ani reload konfigurace není zadarmo – musí se zahodit všechny předforkované procesy, všechny cache atd. a začíná se od začátku. Na výkon Apache to rozhodně nebude mít dobrý vliv.
26.2.2008 12:56 Zdeněk Burda | skóre: 61 | blog: Zdendův blog | Praha
Rozbalit Rozbalit vše Re: Reload apache přes Web
Seš si jistý, že skript v bashi bude se suid bitem skutečně fungovat tak jak chceš?
-- Nezdar není hanbou, hanbou je strach z pokusu.
Johny z Podoli avatar 26.2.2008 14:48 Johny z Podoli | skóre: 26 | blog: rocfdebian
Rozbalit Rozbalit vše Re: Reload apache přes Web
jistej si nejsem, však píšu že to je třeba poladit že to není vyzkoušené. Pokud setuid nepojede, pak bych jsem navrhl sudo, což už pujde.

Johny
Můj web o táborech: Letní dětské tábory, Hudební tábor , Můj nový blog na Nul.cz
26.2.2008 22:55 Greeg | skóre: 2
Rozbalit Rozbalit vše Re: Reload apache přes Web
imho, můžete mi tedy prosím nějak shrnout, jak to tedy má být?

zas tak moc se v tom nevyznám.

Děkuji

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.