DevProTalk

DevProTalk (http://www.devprotalk.com/index.php)
-   Web Hosting, web serveri i operativni sistemi (http://www.devprotalk.com/forumdisplay.php?f=11)
-   -   najbolji setup za multi-user hosted resenje? (http://www.devprotalk.com/showthread.php?t=7300)

ivanhoe 25. 03. 2009. 23:16

najbolji setup za multi-user hosted resenje?
 
Treba da uradim hosted web servis, gde ce korisnici imati svoje virtuelne hostove, baze i FTP pristup svaki svom folderu (i naravno nasu aplikaciju preinstaliranu). E sad, zbog lakse distribucije software-a, ne mogu da koristim apache suexec + php CGI/fastCGI varijantu, koja bi verovatno bila najbolja, pa se sad lomim kako da odradim to najbolje u plain vanilla apache+mod_php varijanti...

Da li mi je bolje da pokusavam da to izvedem kastomizacijom nekog gotovog web panela (i koji bi mi preporucili?), ili da odradim neku svoju DIY varijantu? Ja vise naginjem ka tome da sam to isprogramiram, jer mi ne treba najveci deo funkcija kontrolnih panela, zapravo samo mi treba nacin da resim kreiranje accounta i privilegije nad fajlovima, i to je to, nista drugo mi ne treba..

Jednostavno resenje koje mi je palo na pamet je da kreiram za svakog usera po jedan account, bazu i vhost, dodam im apacha u grupu tako da php ima pristup svim fajlovima, a FTP ogranicim preko chroota na par foldera po useru, u kojima ce biti iskljucena podrska za bilo kakav skripting (cisto da mogu da uploaduju slike i templejte i nista drugo). Koje su rupe u takvom resenju? Da li moze neko da mi predlozi nesto bolje?

Koji su limiti jednog hosting servera? Koliko baza i sajtova moze da se digne na jednom mysql-u i apachu, a da taj broj ne krene da utice na perfomanse?

cvele 26. 03. 2009. 12:51

Da li korisnike otvaras na samom sistemu ?
Aplikacija je zamisljena kao platform independent ili linux based ?

ivanhoe 26. 03. 2009. 21:15

1) da, zbog jednostavnosti bih isao na kreiranje sistemskih usera. Mislio sam da to odradim pomocu skripte sa root privilegijama koju pokrene cron zvakih par minuta, i onda skript pokupi taskove iz baze i odradi ih (naravno uz neke dodatne sigurnosne provere). Ideja je da se aplikacija prodaje dalje, pa bih se sto je moguce manje oslanjao na externe aplikacije (ldap i slicno), vec samo standarne linux servise, mysql, apache i neki ftp.

2) linux based, bar za sada, jer mi se cini preobimnim da se pravi dupli sistem, a prevelike su razlike izmedju linux i windows sistema da to moze lako da se upakuje u jedan skript.

cvele 26. 03. 2009. 23:44

Onda to moze relativno jednostavno i bezbolno da se uradi, makar iz moje perspektive.
Dakle kako bih ja uradio:

Svakom sistemskom korisniku postavis home folder tamo gde treba na fs (gde app ocekuje), chrootuj sve korisnike u njihov home, nemoj im setovati shell.

Napravis apache vhost koji ce svakom sistemskom korisniku dati docroot u njegovom home. Po defaultu je to ~user ali se moze menjati kako zelis.

Sistemske korisnike i sve taskove mozes odradjivati preko neke quer skripte, na jednom projektu na kome sam radio je pisan poseban softver u javi dok sam na drugom koristio taskspooler. Ovako nesto je relativno lako uraditi i u cli php-u. Jedina mana takspoolera je sto ne zna da radi callback, tako da ti ne moze potvrditi da je akcija izvrsena... Napravio sam neki budz za njega tako da uradi callback, ako ti zatreba vici.

Sad, dal ces korisnike dodavati u apache grupu ili ces postaviti da je apache grupa users grupa, nije tolko bitno... efekat je isti. Ako insistiras na mod_php, a ne cgi (sto bi bio moj izbor) onda vodi racuna da se php skriptovi izvrsavaju pod istim korisnikom, koji ima pravo da cita sve fajlove (i nije chrootovan).

Ftp serveri takodje znaju da sistemskim korisnicima daju ftp pristup do njihovih home foldera.

Sto se tice broja sajtova/baza/usera po serveru to zavisi od jacine servera, tako da ti ne mogu dati konkretan odgovor.

Sad sve sto sam gore napisao mozes da tweakujes prema svojim potrebama relativno lako.

Nije to neka mudrost i nema tu mnogo razlicitih nacina da se izvede, sve su varijacije na istu temu. Sve ovo prakticno svi web paneli rade na istu foru koju sam gore napisao.

Kada ne bi toliko bio ogranicen na platformu, mogao bi da ti predlozim nesto kompleksnije resenje. Ono bi ukljucivalo fuse, tako da bi fs umesto iz fajlova citao sve sto mu treba iz baze i time bi imao potpunu kontrolu na aplikativnom nivou.

Kada bi imao mogucnost za nesto robusniju platformu, ne bi bilo lose i razmisljati o cloud arhitekturi, ali ovako su ti opcije veoma suzene.

ivanhoe 27. 03. 2009. 03:01

Ok, to je pretty much bila i moja ideja, tako da cu najverovatnije to i uraditi. Sto se tice platforme, da imam potpuno odresene ruke sta bi mi preporucio kao resenje? Recimo, da kazemo da hocu da celu stvari u buducnosti mogu i da skaliram/balansiram po potrebi..

Ono oko broja sajtova/baza po hostingu, to sam pitao jer se secam da sam procitao negde da recimo apache ima silnih problema sa virtuelnim hostovima, kad se broj popne na par hiljada (naravno sto je jaci server manje je to primetno)...autor je predlagao neki hack pomocu mod_rewrite da bi prevazisao ta ogranicenja... e sad ne znam da li je to bila matora knjiga, ili to recimo jos vazi?

misk0 27. 03. 2009. 12:36

Mozda nisam skontao sta zelis tacno, ali cPanel ima svoj API (pisan u perlu, ali mislim da ima i PHP verzija) koji mozes da pozivas iz svoje app i da uredjujes / upravljas sa serverom kako zelis. Nije dzabe, kosta, ali radi posao i radi ga dobro.

ivanhoe 27. 03. 2009. 13:31

Koliko je komplikovano odraditi plugin za cPanel, nisam se sa tim igrao do sad ? Perl znam dobro, jel imas ideju koliko vremena bi trebalo okvirno da se uradi plugin za manipulaciju nalozima (add/delete i automatsko instaliranje jedne aplikacije na nalog (da se doda vhost, baza, FTP account, i iskopiraju potrebni fajlovi gde treba). To bi u stvari bilo kao reseller account, samo sa default instalacijom naseg software-a.

LiquidBrain 27. 03. 2009. 15:10

Sto se tice razdvajanja korisnika pogledaj suPHP...

zira 27. 03. 2009. 19:37

Nisam probao, samo mi ostalo u sjecanju posto jednom jednom bilo govora da cemo koristiti nesto slicno:

Pogledaj http://www.phpclasses.org/browse/package/3534.html za primjer rada PHP-a za upravljanje CPanelom. Sto se tice instalacije aplikacije, mislim da postoji neki podesivi skeleton u koji stavis ono sto zelis i koji se automatski stavlja pri pravljenju naloga.

lurker 27. 03. 2009. 20:33

Po mom misljenju :

Lxadmin HostInABox » World's lightest and Full featured Hosting on 15MB RAM.

http://lxlabs.com/software/lxadmin/

gde cak mozes da razdvojis ko koristi suexec + php CGI/fastCGI a ko mod php


Vreme je GMT +2. Trenutno vreme je 16:20.

Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.

Mišljenja, saveti, izjave, ponude ili druge informacije ili sadržaji nastali na Sajtu su vlasništvo onoga ko ih je kreirao, a ne DevProTalk.com, tako da ne morate da se oslanjate na njih.
Autori poruka su jedini odgovorni za ovakve sadržaje. DevProTalk.com ne garantuje tačnost, kompletnost ili upotrebnu vrednost informacija, stavova, saveta ili datih izjava. Ne postoje uslovi pod kojima bi mi bili odgovorni za štetu ili gubitak koji je posledica bilo čijeg oslanjanja na nepouzdane informacije, ili bilo kakve informacije nastale kroz komunikaciju između registrovanih članova.
Web sajt može sadržavati linkove na druge web sajtove na Internetu ili neke druge sadržaje. Ne kontrolišemo niti podržavamo te druge web sajtove, niti smo pregledali bilo kakve sadržaje na takvim sajtovima. Mi nećemo biti odgovorni za legalnost, tačnost ili prikladnost bilo kog sadržaja, oglasa, proizvoda, usluga ili informacije lociranim na ili distribuiranih kroz druge web sajtove, niti za bilo kakvu štetu nastalu kao posledica takvih informacija. DevProTalk.com drži i čuva druga prava vlasništva na web sajtu. Web sajt sadrže materijale zaštićene copyright-om, zaštitne znakove i druge informacije o pravu vlasništva ili softver. Članovi mogu poslatu informacije zaštićene pravima vlasništva njihovih nosilaca i ona ostaju zaštićena bez obzira da li su oni koji prenose te informacije to naveli ili ne. Osim informacija koje su u javnom vlasništvu ili za koje dobijete dozvolu, nemate pravo da kopirate, modifikujete ili na bilo koji način menjate, objavljujete, prenosite, distribuirate, izvršavate, prikazujete ili prodajte bilo koju informaciju zaštićenu pravima vlasništva. Slanjem informacija ili sadržaja na bilo koji deo DevProTalk.com, Vi automatski dozvoljavate i predstavljate garanciju da imate pravo da dozvolite DevProTalk.com ili članovima DevProTalk.com bespovratnu, kontinualnu, neograničenu, globalnu dozvolu da koriste, kopiraju, izvršavaju, prikazuju i distribuiraju takve informacije i sadržaje i da iz takvih sadžaja koriste bilo koji deo u bilo koje svrhe, kao i pravo i dozvolu da koriste gore navedene sadržaje. Svi zaštitni znakovi (trademarks), logotipi, oznake usluga, firme ili imena proizvoda koji se pominju na ovom web sajtu su vlasništvo kojim raspolažu njihovi vlasnici.