Ahojte,
skutocne velmi potrebujem od niekoho skuseneho radu. Ako mozem restartovat Apache cez prikaz exec(); .. skusal som exec("/etc/init.d/apache restart") ale odmieta prikaz vykonat asi kvoli pravam.. Asi ho treba spustit pod root-om.. ktory mam.. pls poradte.. google som prehladaval cely den, ale nic poriadne som nenasiel,. :(
dik
Fórum › PHP
Restart Apache cez PHP
To KIIV : si frajer... vyzera ze to slape.. (pouzil som sudo) .. ohladom bezpecnosti by si navrhoval co??..
To marioff : noo to je tezky .. protoze je to tak jak tak riziko.. mozna sluzbu, ktera by jednou za dejme tomu 60s zkontrolovala nejakou tabulku akci (kam by byl extra pristup), ale i to je napadnutelny ...
jj riziko si uvedomujem, bohuzial potrebujem moznost reloadu Apachu Apachom. Potrebujem proste nacitavat pri pridani novej domeny vhosty do apacha. Uvazoval som aj nad tvojim navrhom, ale nejak ma trocha brzdi ta zbytocna zataz (aj ked je urcite zanedbatelna), kedze domena sa prida malokedy... Neviem ci to daco zmeni na napadnutelnosti, ale nikto nebude mat moznost spustat svoje kody na serveri (nie je to klasicky hosting), ale budu tam bezat iba moje.
To Prog. : to som uz prestudoval.. jedina pouzitelna moznost je vyuzitie konfiguracne suboru (vhost.map) s ktoreho by sa "asi" vytvarali" tie vhost containery.. ale bohuzial som doteraz nerozchodil mysql-clienta ktory je nato asi nutny.. a problem je aj to ze to potrebujem reloadovat len vtedy ked pribudne nova domena, ale okamzite.. preto mi to nevyhuje (spustanie napr.cronom)
ps: zabudol som podstatne: vacsina domen bude mat rovnaky documentroot..
Ja som to poriešil tak, že sa spolieham na prvý definovaný virtualhost. Ten sa použije keď sa nenájde ten podľa požiadavky. Docroot je namierený do adresára v ktorom beží php cms, ktorý sám rozlíši doménu a nové v ňom "naklikám" online.
Ak sem tam potrebujem samostatný virtual host (nezavislý na cms), tak mu vytvorím samostatný adresár, samostatný *.conf súbor a urobím ručný restart.
To by sa ale dalo zjednodušiť práve pomocou tej direktívy VirtualDocumentRoot v sekcii "Simple dynamic virtual hosts". čiže pre kadú novú doménu bude stačiť vytvoriť adresár. Ak budeš chcieť viac domén na ten istý documentroot tak jednoducho vytvoríš len jeden adresár, a ostatné len na neho nalinkuješ...
Ďalšia možnosť ktorá ma napadá je všetko namieriť do jedného adresára a v ňom pomocou htaccess a mod_rewrite kontrolovať doménu a na základe nej robiť rewrajty do iných adresárov...
To Prog. : presne tak isto som to riesil ja (prve 2 odseky), lenze prisiel problem.. chcem aby kazda domena.sk a www.domena.sk mala rovnaky docroot, ale zaroven potrebujem aby webmail.domena.sk mala zase iny docroot.. (+ ine subdomeny pre stats, webftp... atd..) .. viem ze by nebol problem pomocou superglobalnych _SERVER presmerovavat (teda v nom includovat subory ktore potrebujem) prip. pouzit htaccess.. ale na druhu stranu nato pouzivat PHP je blbost.. spolu s Apachom to bude tvorit zase len zbytocnu zataz.. lepsie je nech si robi svoju robotu apache ako do toho vtahovat pomale php...
a ako povedal moj znamy: je to ako pouzivat kamion na oranie zemiakov, sice sa to da, ale efektivita je nulova...
aspon podla mna..
(ak som ta prehovoril, poskytnem navod na moje riesenie :) )
Ide o to, že ak apache nejakým spôsobom vyberie konkrétny php script ktorý sa potom naloaduje, tak to si mohol apachu ušetriť prácu a vraziť riešenie domény rovno do php... záleží, čo beží na tých vhostoch. U mňa je to primárne cms, v ktorom si pridám doménu aj celý web bez potreby zásahu do configu apacha, takže rozhodovanie na úrovni php mi vyhovuje. Spracovanie stále rieši to cms...
Kamion na zemiaky by som skôr prirovnal k reštartu servera kôli jednej domene...
teraz však "nejde o tooo"...
Skús pozrieť VirtualDocumentRoot, ak apache nebude namietať na linkované adresáre, tak máš univerzálne riešenie. Vytvoríš jeden adresár, napr. /web/domeny/, do konfigu pridáš VirtualDocumentRoot /web/domeny/%0/ a resetneš. Potom pre každú doménu vytvoríš, alebo prelinkuješ documentroot do toho adresára a doména existuje... prípadne, ak máš tých domén veľa
tak VirtualDocumentRoot /web/domeny/%3+/%2.1/%2.2/%2.3/%2 [http://httpd.apache.org/docs/2.2/mod/mod_vhost_alias.html]
Hej a ak v tom máš nejaký logický systém, napríklad:
<webftp>.<hocijakadomena> smeruje do spoločného /srv/www/utils/webftp/
<phpmyadmin>.<hocijakadomena> smeruje do spoločného /srv/www/utils/phpmyadmin/
www.<hocijakadomena> smeruje do vlastného /srv/www/webs/<hocijakadomena>/
<hocijakadomena> sa redirectuje na www.<hocijakadomena>
...
tak to všetko veľmi ľahko poriešiš pomocou zopár mod_rewrite riadkov...
bude tam bezat aplikacia, ktora si z db podla domeny vyberie parametre na jej "spravanie". Teda na kazdej domene bude bezat stale dokola ten isty kod.. samozrejme pre kazdu trosku inak... Predpokladam velmi vysoku zataz na server (aby bola aplikacia schopna zarobku), preto musi byt co najrychlejsia... a nechcem riesit nieco cez PHP ak nemusim.. vytvarat zbytocne priecinky ktore by som mal este linkovat na docroot ktory potrebujem sa mi tiez nechce...
co som tak do teraz studoval riesenia mojho "specifickeho" problemu, mi vyslo ze najlepsie bude ako to mam teraz...
ale velmi pekne ti dakujem za ochotu, to si ja vazim, mas u mna 2 piva :smile1:
edit:
Kamion na zemiaky by som skôr prirovnal k reštartu servera kôli jednej domene...
asi narazas na prvy prispevok... som sa pomylil, samozrejme som myslel reload.. :)
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Restart apache — založil Forest
Php + apache — založil Antonín Daněk
Apache 2.2.15 + PHP 5.2.13 — založil Kall_Ell
Apache + PHP - Nefunguje. — založil DeathHumanCZ
Apache,MySQl a PHP — založil Decide
Moderátoři diskuze