Správa hostingu na VPS přes ISPConfig a Nette
- buffus
- Člen | 101
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
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. :-)
- buffus
- Člen | 101
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.
- buffus
- Člen | 101
@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)
- buffus
- Člen | 101
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
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 :)
- Melmen
- Člen | 132
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)
- Melmen
- Člen | 132
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)
- ras
- Člen | 135
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
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 :)
- Melmen
- Člen | 132
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
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.
- Melmen
- Člen | 132
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
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)