Správa hostingu na VPS přes ISPConfig a Nette

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
buffus
Člen | 101
+
0
-

Dobrý den, na Wedosu jsem si nainstaloval VPS podle tutoriálu
The Perfect Server – Ubuntu 11.10 [ISPConfig 3]
http://www.howtoforge.com/…-ispconfig-3

  • Vše perfektně funguje pro jednoduché weby nebo RS Joomla! nebo WordPress. Nyní však nevím, jak vyřešit problém s webovou aplikací, která by měla fungovat na Nette. Pomocí ISPConfig vytvořím klienta – čili snadno naklikám vše potřebné pro web stránky klienta (jeho doménu,Redirect domény, SSL, Stats, Backup, Options, FTP User, Databázi, Webdav, Cron úlohy, Statistiku), paráda a poklona ISPConfigu.

Po prvotním přihlášení je pro klienta vytvořen pomocí ISPConfig tento strom adresářů:

cgi-bin
log
ssl
tmp
web kde adresář web je rootem (public složkou) webu.

Nyní nevím, jak dál řešit tento požadavek:

Přijde klient, který by rád využil takto nastavený hosting pro webovou aplikaci na Nette (s využitím složky sandbox)

Jak tento problém optimálně vyřešit? Nechce se mi měnit konfiguraci ISPConfigu, tím myslím defaultně vytvořené názvy kořenů domén virtuálních uživatelů Apache (je to hodně provázaný na další služby).

Jádro dotazu:
sandbox obsahuje složky:
app
libs
log
temp
tests
www kde adresář www je rootem (public složkou) webu

Lze do složky web (vytvořenou v ISPConfigu) nahrát obsah složky www (která je obsažena sandboxu), aby Nette bez problému fungoval?

Patrik Votoček
Člen | 2221
+
0
-

buffus napsal(a):

Lze do složky web (vytvořenou v ISPConfigu) nahrát obsah složky www (která je obsažena sandboxu), aby Nette bez problému fungoval?

ano jen musíš upravit cesty v index.php. :-)

ViPEr*CZ*
Člen | 817
+
0
-

Přesně tak, na takovém řešení bude potřeba vždy upravit index.php a možná za zvážení (pokud by nette klientů bylo více) dát samotné nette i někam do privátní složky a klienti by si to odtamtud (z jednoho místa všichni) includovali.

buffus
Člen | 101
+
0
-

Díky.

buffus
Člen | 101
+
0
-

Tak jsem sice poděkoval, ale až teď jsem se k problému zase dostal. Pořád nemůžu Nette rozběhnout v rootu webu. Cesty v index.php se mi zdají v pořádku. Udělal jsem dočasný ftp přístup, pokud by jste někdo byl tak ochotný a podíval se na to.
FTP:
31.31.75.22
User:buffusnette
Pass:netteforum

DocumentRoot pro http://buffus.cz/ v Apache je složka web (nastavení Apache a ISPConfig se mi nechce měnit). V té bych chtěl rozběhnout Nette, ale nedaří se.

Pokud se pokouším rozběhnout Nette v nějaké další složce složky web, tak se to podaří. Např.:
http://buffus.cz/TADYTOJDE/web/

Klidně to na tom ftp třeba všechno smažte a nainstalujte znova (teď tam mám Nette Framework 0.9.7 pro PHP 5.3), jen když se to podaří rozběhnout.

Melmen
Člen | 132
+
0
-

Máš tam špatný práva např log adresáře, asi si ho smazal… z ISPCONFIG tu doménu smaž, a přidej jí znova

buffus
Člen | 101
+
0
-

@Melmen
Díky, ale já jsem asi tatar. Doménu jsem smazal a přidal znova. V rootu ftp ISPConfig automaticky vygeneroval složky:
cgi-bin, log, ssl, tmp a web.

Proti tomu mám obsah adresáře sandbox (app, libs, log, temp, tests a www).

Připojil jsem se přes FTP jako uživatel buffusnette, do složky web nahrál obsah adresáře www ze sandboxu a všechny ostatní složky sandboxu do rootu FTP + do libs složku Nette. Jenže mi to stejně neběželo. Teď je FTP zase čistý – znovu jsem odebral a přidal doménu v ISPConfig. Jak bych měl teď postupovat? Nebo si to klidně někdo zkuste..

Editoval buffus (9. 11. 2011 19:18)

Melmen
Člen | 132
+
0
-

Co máš v /var/log/apache2/error.log ?

Něco děláš špatně. Na serveru mám taky ISPConfig, a všechno frčí suprově. Mimochodem mám to taky u wedosu :D

buffus
Člen | 101
+
0
-

Melmen napsal(a):

Co máš v /var/log/apache2/error.log ?

Error.log jsem nahrál na FTP: 31.31.75.22 User:buffusnette Pass:netteforum

Já už do něj koukal dopoledne, ale nic mi to neříká. Pak jsem ho smazal a restartoval apache, tak je čerstvý. Pokud se tam něco kvůli problému s Nette zapsalo, tak by to tam mělo být zachyceno.

Melmen
Člen | 132
+
0
-

buffus napsal(a):

Error.log jsem nahrál na FTP: 31.31.75.22 User:buffusnette Pass:netteforum

Já už do něj koukal dopoledne, ale nic mi to neříká. Pak jsem ho smazal a restartoval apache, tak je čerstvý. Pokud se tam něco kvůli problému s Nette zapsalo, tak by to tam mělo být zachyceno.

Zkoušel jsi to ftp? Nejde se přihlásit :)

buffus
Člen | 101
+
0
-

Sorry, heslo je forumnette
FTP: 31.31.75.22 User:buffusnette Pass:forumnette

Melmen
Člen | 132
+
0
-

Jojo už jsem tam…
Ještě zkus v ISPConfig Stránky/tvujweb/volby a do políčka PHP open_basedir napiš jen lomítko. /

buffus
Člen | 101
+
0
-

/
je tam

bylo tam
/var/www/clients/client1/web7/web:/var/www/clients/client1/web7/tmp:/var/www/buffus.cz/web:/srv/www/buffus.cz/web:/usr/share/php5:/tmp:/usr/share/phpmyadmin:/etc/phpmyadmin:/var/lib/phpmyadmin

Melmen
Člen | 132
+
0
-

Tradááááá http://buffus.cz/

Akorát ty jsi tam měl předtím starou verzi, já mám v pc jen novou, takže tam máš novou :) (2.0)

buffus
Člen | 101
+
0
-

Congratulations! Klobouk dolů za ochotu. Co jsem dlužen?

Paráda, to bylo jenom tím lomítkem v PHP open_basedir ? Zahlédl jsem tam před pár vteřinama ještě laděnku?

Melmen
Člen | 132
+
0
-

jj laděnka tam byla kvůli chmodu temp adresáře. Akorát sem v bootstrap nastavil zobrazování laděnky, tak si to kdyžtak vypni. Jo a ještě něco. V bootstrapu si musíš nastavit jiný adresář pro logování chyb, protože už tam složku /log máš, ale nemáš k ní práva. Takže si vytvoříš složku třeba /logger, dáš jí práva 777 a do bootstrapu dáš něco jako tohle:
Debugger::enable(Debugger::DETECT, __DIR__ . '/logger');
Od teď budeš mít chyby nette v /logger/error.log a chyby apache v /log/error.log :)

Jo v pohodě, rád pomůžu. Sám sem se s tim patlal skoro celej den :D

Editoval Melmen (9. 11. 2011 20:13)

buffus
Člen | 101
+
0
-

Tak ještě jednou díky moc!

ras
Člen | 135
+
0
-

Dovolil bych si jeste poznamenat neco ze sveho ISPc, byt je to tu vyreseno.

Protoze, pokud jsem doporuceni od Davida spravne pochopil, tak by pouze adresar WWW mel byt primo pristupny z webu → tj. umistit vse ze sandboxu do ISPc adresare WEB se mi jevilo jako spatna cesta (byt .htaccess soubory to asi poresi).

Tudiz moje standardni struktura je, ze obsah sandbox WWW kopiruji do ISPc WEB a pridavam na stejne urovni jako je ISPc WEB adresare web_app, web_logs, web_temp (prefix „web_“ je jen kvuli razeni za sebou). K tomu samozrejme musim upravit cesty v index.html a bootstrap.php a nastavit prava pro web_logs a web_temp (ikdyz ted si nutnosti prav na web_temp nejsem uplne jisty → budu muset otestovat).

Nasraveni ISPc pro open_base_dir nemusim modifikovat, kdyz nastavim v ISPc SITES > WEBSITE > <nejaka domena> nastavim pro PHP FAST-CGI → zatim jsem nenarazil na duvod to delat jinak.

Pokud mate nekdo jeste s ISPc a Nette nejake zkusenosti, tak se prosim o ne podelte.

Treba by me zajimalo, jak jednoduse si zaridit, aby pro X webu bylo pouzito jedno NETTE, resp. jeden adresar LIBS → a ty weby mohli byt i pro vice klientu ???

Aurielle
Člen | 1281
+
0
-

Jednoduše, nasymlinkuješ libs pro každého klienta. Jinak já mám upravený open_basedir na root webu (třeba /var/www/clients/client1/web1) a v této složce mám normálně app, libs, temp, logs (log nepoužívám, protože je symlinkovanej jinam a v souvislosti s basedirem by s tím byly zase jen problémy) a web. Pak ani nemusím měnit cesty v index.php a vše funguje :)

ras
Člen | 135
+
0
-

Ale to je zasah mimo ISPc ne … myslim to symlinkovani .. nebo je to resitelne nejak „systemove“ → ja bych nerad delal neco mimo system ISPc, protoze pak se vse komplikuje v budoucnu, napr. pri UPGRADEu

Melmen
Člen | 132
+
0
-

Když teďka založím fiktivní doménu, ISPConfig mi nastaví open_basedir zhruba takto:

/var/www/clients/client1/web3/web
/var/www/clients/client1/web3/tmp
/var/www/zrcadluj.cz/web
/srv/www/zrcadluj.cz/web
/usr/share/php5
/tmp
/usr/share/phpmyadmin
/etc/phpmyadmin
/var/lib/phpmyadmin

Jelikož sandbox nette potřebuje „šáhnout“ o adresář vejš než je /var/www/domena.cz/web, možná by stačilo do open_basedir přidat /var/www/domena.cz

Co se týče toho nasymlinkování, možná bych to radši hodil do /usr/share/nette a tuhle cestu bych dal do open_basedir

ras
Člen | 135
+
0
-

A netusite nekdo, jak/kde globalne nastavit, co se v tom INPUT policku pro open_base_dir ma nabizet ?

Protoze doplnit tam dalsi mi jiz vzhledem k delce nejde a nektere obsazene cesty jsou zbytecne, takze globalne to poladit (aby se s tim jedne pak nemusel u kazde nove website crcat znovu a porad na to myslet) se mi jevi jako optimalni reseni.

ras
Člen | 135
+
0
-

Jinak, co se tyce to share, tak je tu jeden drovny zadrhel. Jak se Nette porad neustale bourlive meni, tak pro ruzne domeny pouzivam ruzne verze NETTE → tj. jak ve sdilenem prostoru udrzet X verzi nette bez kolizi ?

Melmen
Člen | 132
+
0
-

Doplnit další tam jde bez problému. Každopádně zkus se mrknout do /etc/apache2/sites-enabled/domena.conf. Někde tam je možnost nastavit php open_basedir. – Defaultní cesta na Debian based systémech (Ubuntu, Mint atd…)

Jinak mrknu se kde se da nastavit defaultni open_basedir, a dám vědět.

Melmen
Člen | 132
+
0
-

ras napsal(a):

Jinak, co se tyce to share, tak je tu jeden drovny zadrhel. Jak se Nette porad neustale bourlive meni, tak pro ruzne domeny pouzivam ruzne verze NETTE → tj. jak ve sdilenem prostoru udrzet X verzi nette bez kolizi ?

Pokud dáš Nette do /usr/share/nette a tuhle cestu zahrneš do open_basedir, tak budeš využívat jen jednu verzi Nette. Pokud Nette stáhneš z Gitu, můžeš vytvořit cron na automatickou aktualizaci Nette u všech domén najednou.

Editoval Melmen (20. 11. 2011 22:02)