Portál AbcLinuxu, 30. dubna 2025 12:48
Dnes si přečtete o tom, jak nastavit Apache, abyste nemuseli používat safe_mode, open_basedir a podobné bezpečnostní obezličky, když Apache je nastavený na mass hosting, taky padne něco o finálním nastavení mého hostingového serveru (o kterém jsem psal dříve a ještě tady) a ještě pár komentářů k současnému dění na Ábíčku :)
Problém už možná znáte, pokud chcete vědět podrobně, o co se jedná, přečtěte si linkovaný článek, jinak v krátkosti shrnu:
Apache spouští své procesy s právy určitého uživatele a skupiny - třeba apache:apache, ww-data:www-data a podobně. Pokud používáme mod_php, tak samozřejmě s těmito právy běží i PHP interpret a ze skriptu se tudíž můžeme podívat na kterýkoliv jiný skript, který lze s právy daného uživatele přečíst. I skript z jiného hostitele, třeba ten konfigurační, který obsahuje přístupová data pro databázi a další citlivé informace. Z tohoto důvodu byly vynalezeny safe_mode a open_basedir direktivy PHP (teda myslím; nic jiného mě nenapadá). To ale pořád není nic moc, protože dejme tomu soubory nahrané přes FTP mají práva virtuálního FTP uživatele (třeba alquaknaa:alquaknaa), zatímco ty PHP skripty pořád běží s právy webserveru a dělá to neplechu (někde taky ne, nevím, podle jakých pravidel se to chová). Řešení tedy spočívá v tom, spouštět php interpreta (ať už mod_php a nebo php-cgi jako CGI nebo FastCGI) s právy uživatele specifického (unikátního) pro každého hostitele.
Nejdříve jsem to vyřešil pomocí kombinace SuExec a mod_fcgid - to sice funguje, ale musím pro každého hostitele (pro každou sekci VHost) nastavit zvlášť SuExecUserGroup (aby věděl, za jakého uživatele:skupinu to PHP spouštět) a taky pokaždé znova nastavovat FCGIWrapper, aby věděl, jaký program spouštět (a taky aby se SuExec nezlobil, že musí spouštět skript vlastněný jiným uživatele; respektive - aby to vůbec celé fungovalo). Toto řešení má hlavní nevýhodu v tom, že pro každou změnu v nastavení se musí restartovat Apache.
Takže - co s tím? Jelikož už jsem nemohl čekat, vybral jsem řešení s mod_fcgid, ale hledal jsem dál, protože pro mass hosting je předchozí řešení vážně nepoužitelné. A v pondělí jsem taky něco našel :) Řešení se jmenuje mod_ruid. Je to modul do Apache, který se nastavuje velmi snadno a dělá asi tohle: jakmile má Apache obsloužit nějaký soubor (odeslat ho, zpracovat), zjistí si vlastníka zpracovávaného souboru/adresáře a udělá suid (změní vlastníka procesu) na vlastníka souboru/adresáře. To mi přijde skoro dokonalé ... pokud provozuji velké množství hostů třeba pomocí mod_vhost_alias, tzn. pro přidání hostitele mi stačí vytvořit odpovídající adresář v dříve specifikovaném adresáři (který slouží jako kořen pro ty virtuální hostitele), tak všechno už funguje - mod_ruid zajistí, že už nemusím dále nic nastavovat ani restartovat Apache. Jinak jsem pro mod_ruid vytvořil ebuild a David byl tak hodný, že ho po mně opravil a zařadil do své overlaye, kterou má teď ale rozbitou (nebo je to možná jen WebSVN, co je rozbitý, nevím).
jak jsem tak hledal, narazil jsem na pár zajímavých projektů, hlavně tedy co se týká onoho mass hostingu:
Tyhle všechny přemety a "hacky" dělám proto, že bych chtěl na svém serveru provozovat takovou drobnou službu ... myslím, že mi můžete pomoci třeba jen tím, že řeknete, zda se vám zdá užitečná.
Myslím, že už hodně z vás někdy instalovalo nějaký redakční systém. Já jsem začínal na freehostingu Webzdarma, který je jistě kvalitní, ale trpí některými neduhy. Nebudu zde psát, že je přetížené a často pomalé - je to koneckonců zadarmo. Ale třeba upload několika tisíců malých php souborů redakčního systému púřes FTP trval vcelku dlouho, nikdo vám nezaručí, že zrovna _tenhle_ redakční systém tam pojede a tak dále. Takže - co takhle udělat freehosting, kde bude na výběr několik (čím více podporovaných, tím lépe) redakčních systémů a vy si prostě vyberete, který chcete, a on se vám sám nainstaluje, včetně veškerého nastavení databáze a podobně? Současně by na stránkách vycházely třeba designy pro dané redakční systémy, nějaké návody, tipy a tak. Další předností by mohla být podpora těch exotičtějších redakčních systémů - těch, co třeba běží na teď populárních Ruby on Rails, nebo jsou napsány v Pythonu nebo třeba v Perlu (přes mod_perl a mod_python).
Takže postup následující - modelový příklad. Chci se s kámošem nějak zkoordinovat při práci na společném projektu. Jednoduché - vytvořím účet (login, heslo, mail) a pomocí radioboxu vyberu třeba Dokuwiki nebo nějaký koordinační projekt, který zrovna vy preferujete. Nebo si chcete založit blog - OK, vyberete WordPress a je hotovo. Žádné uploadování, žádný install wizard, nastavování databáze a podobně. Příjdete k hotovému nastavenému systému, ke kterému vám akorát právě přišlo přihlašovací jméno + heslo. Takže - myslíte, že by to bylo užitečné?
Před nedávnem psal Strider mimojiné o klesající kvalitě Abíčka. No, po tom, co se tam na něj někteří sesypali (hlavně Freshmouse, což mě překvapilo), jsem si uvědomil, že na tom vážně něco bude. Jistě, objevil se tady Vladimír, který úroveň v jakémsi pomyslném průměru snižuje, ale jinak se mi to zdálo v pohodě. Ale proč museli někteří shazovat kultivovaně vyjádřený názor člověka IMHO většinu z diskutujících, to vážně nevím. Ledaže by to byl vážně projev té popisované degradace. Tím rozhodně nechci říct, že bych Ábíčko nepovažoval za nejkvalitnější český portál a že si ho přestanu každý den číst, ale vyjádřit se přece můžu, ne ;) ?
tak to už bylo pro dnešek dost. Jsem zvědavý na vaše názory a podněty, o tom, jak jsem nakonec nakonfiguroval server třeba přiště, bude-li zájem. Pokud ne, napíšu aspoň jedno klíčové slovo: SysCP. To je totiž více-méně dostačující :) Tož zatím ...
Tiskni
Sdílej:
deb http://ftp.cz.debian.org/debian jessie main contrib non-free
No, takže pokud mi pomůžete (všichni) vyřešit ten druhý problém (já se v tom nevyznám :D), tak si myslím, že by to šlo, případně tě kontaktuju, jo?
OK, a hlasis se taky jako pripadny konzultant pro jeho konfiguraci? Bo takove lidi ja budu potrebovat :D
No, s tím už se nějak budu muset porvat já. Potřebuju jenom nakopnout .. třeba bude stačit jenom dokumentace. Ale což, budu to řešit, až bude potřeba.
Ano, pořád přemýšlím, jak to zajistit finančně. V současné době mám server, na kterém bych to chtěl dělat, ale na tom běží i placené stránky a pokud by to začalo být nějak více vytížené, tak bych to musel asi začít omezovat. Na nákup + housing vlastního železa zatím nemám, ale mám příslib, že jakmile se současný server uživí sám, tak se přikoupí další (příslib od toho, který si platí současný server).
Spíš přemýšlím o tom, jak financovat ten hosting - úplně zadarmo (tzn. žádné bannery) to asi nepůjde, leda že by byl ten druhý, placený, hostingový server tak úspěšný, že by uživil oba, s čímž nemůžu počítat. No, nebo teda můžu přidávat bannery - ale s tím nemám vůbec žádnou zkušenost, nevím, co to obnáší právně/ekonomicky (musím mít živnosťák? Od kdy se mnou bude chtít nějaká ta reklamní společnost spolupracovat?) a taky třeba jak to vyřešit technicky, že ano ... už jsem našel mod_layout, ale nevím, jak třeba rozlišit, když by si někdo připlatil, aby se mu bannery nezobrazovaly ... to už mod_layout nerozliší. Respektive - on vkládá nějaký kód za nějakou značku, dá se nastavit, aby pokud ji nenajkde vložil ten kód na natvrdo definované místo. Takže můžu tu fallback volbu vypnout a svěřit se do rukou uživatelů, že si tam opravdu všichni tu značku vloží a že ti, co si připlatili, si ji odstraní. Ha ha ha :/Ale tohle už asi nějak řešitelné bude, takže ... díky za odezvu. Chtěl jsem slyšet váš názor a zatím to vypadá vcelku příznivě. Takže až budu konfigurovat ty frameworky, tak zas napíšu, protože já o tom nevím skoro nic :D Dík
No, já jsem to chtěl dávat všechno zadarmo .. Python, Ruby ... a ty další. Protože právě na to si tady občas někdo stěžuje - že neexistuje dobrý freehosting - a myslí tím freehosting s jejich oblíbeným frameworkem/podporující daný jazyk. Ale spíš kdyby se dalo nějak hezky pořešit to zapínání/vypínání bannerů u jednotlivých uživatelů, nevíte o tom někdo něco?
Peníze se musí někde zdanit - takže potřebuju živnosťák, Protože to mě vcelku štve, příští rok maturuju a doslechl jsem se, že pokud bych si udělal živnosťák, ak sztrácím všechny výhody studenta :(
Tož blbé no. Taky to můžu dělat přes někoho jiného, kdo už živnost má, ale to zas nad tím nemám plnou kontrolu. A účetnictví .. brrr. Co se týče bannerů - asi máte pravdu, já to jen pořád beru ze svého pohledu, když bych se na to asi vykašlal - dejme tomu, že si tam chci jenom hodit tu dokuwiki, a měl bych za to platit? V mém konkrétním případě, měl bych si jít zřizovat kreditku? Učit se platit po netu? No, to radši přetrpím ten upload. Stejně tak, kdybych se chtěl učit python, tak si to asi vyřeším nějak jinak. Ale což, až to bude hotové, tak to nějak pořeším, já myslím, že pokud se to správně postaví a lidi to budou mít rádi, tak třeba něco přispějí. Pokud z toho udělám tošičku komunitní projekt, tak třeba něco dají. Mimochodem, kolem Vánoc běžel na Wikipedii fundraiser, to byl frkot! No, tak to je pro mě hudba budoucnosti, chápete :)
V kontrole se da klidne domluvit, ale problem je spis v tom, ze clovek, na ktereho byste podnikal by nesl zodpovednost za vas hosting. Vemte si, ze se neco stane a vy prijdete o data... A zodpovedny je za to prakticky clovek, na ktereho je ten zivnostak (pripadne firma, pres kterou takto podnikate). Pokud nemate uzavrenou nejakou dalsi smlouvu atd. (nejsem pravnik ani podnikatel, takze spis rikam to, co mi rekli jini a nevim, jestli to je dobre, kdyztak me nekdo opravte).Taky to můžu dělat přes někoho jiného, kdo už živnost má, ale to zas nad tím nemám plnou kontrolu.
Netvrdim, ze je treba platit hned za dokuwiku.. vubec vsechno v php+mysql bych dal zdarma a platit by se zacalo az treba za vetsi prostor na disku... ale to je otazka financovani, ktera je ted 'mozna' i vedlejsi. Bez penez toho stejne moc neudelate ze zacatku :) Rozjeti takoveho projektu stoji nejake penize a ty se hledaji blbe, kdyz nekomu nezarucite, ze se penize vrati. Vubec, pokud je Vam 17-18 let ;) (myslim, ze jsem cetl neco o maturite za rok).Co se týče bannerů - asi máte pravdu, já to jen pořád beru ze svého pohledu, když bych se na to asi vykašlal - dejme tomu, že si tam chci jenom hodit tu dokuwiki, a měl bych za to platit?
Financovani ze strany komunity by urcite fungovalo, ale to az ve stavu, kdyby byl projekt dost rozjety. Nicmene Vam preju vic uspechu, nez jsem mel ja :) Idealne najit sponzora :) nebo o sponzoring pozadat :) Kdo vi.. treba se i s abickem bude dat domluvit :)
No, sponzora už jsem zdá se našel, takže možná budu brzo kontaktovat komunitu ohledně toho, jak to všechno nastavit. Já mám zkušenosti s PHP, s Pythonem a Ruby mi budete asi muset pomoct :)
No, zas tak moc jsem to nestudoval. Spíš vím, že mi to kámoš nedoporučoval. Asi bych neměl nárok na ISIC, žákovskou slevu do ČD a podobné kravinky, nevím, jestli by taky nebyl problém s kolejemi. Ale tak já třeba napíšu zase někdy do blogu, kde si vyžádám reakci všech studentů podnikatelů a podle toho se rozhodnu, jo ;) ?
nárok na ISIC, žákovskou slevu do ČD a podobné kravinkyNo ja nevim, ale minimalne u CD nijak prijem ani zamestnani dokladat nemusis. Potrebujes potvrzeni o studiu a to ve skole dostanes bez ohledu na to, co krome skoly delas. A koleje...u nas to (stejne jako ubytovaci stipendium) zavisi na dojezdne vzdalenosti. Co nam prace/podnikani zhati, je socialni stipendium, ale to je oproti potencialnim vynosum z vlastni prace smesne male.
To zní docela nadějně. No, po prázdninách, se snad už pustím do práce, zatím to půjde přes někoho jiného a časem si třeba ten živnosťák udělám. Taky to není první věc, na kterou bych ho potřeboval. Díky za informace :)
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.