hostování Nette aplikace na Heroku

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

Zdravím,

chtěl bych zeptat jestli tu někdo nemá zkušenosti s hostování Nette aplikace na Heroku a jestli to vůbec jde. Vzhledem k tomu, že je tamní filesystem read-only tak aplikace spadne na nedostupnosti složek log a temp. Neměl by pro to někdo nějaký typ jestli se to dá řešit přes některý z dostupných add-onů?

Předem děkuji za odpovědi.

Šaman
Člen | 2665
+
-1
-

Addonů Nette, nebo toho hostingu? Nette na to žádné addony nemá a imho taková podmínka zní na hostingu hodně podezřele. Šel bych jinam.

Majkl578
Moderator | 1364
+
+2
-

Šaman napsal(a):

imho taková podmínka zní na hostingu hodně podezřele

Heroku není standardní hosting, je to cloudové řešení. Funguje podobně jako Google AppEngine, ten je taky readonly. Výhodou je výkon a škálovatelnost, vše se řeší přes databázi/memcache/síť.

hrach
Člen | 1838
+
+1
-

Co nekdo kdysi psal analyzu, tak jedina spolehliva reseni jsou:

  • logy presmerovat jinam (db, 3rd party, …)
  • sablony kompilvoat pred deployem.
Majkl578
Moderator | 1364
+
0
-

Když jsem posledně zkoušel AppEngine, problém byl primárně v místech, kde je/bylo hardcodované použití file systemu přímo v Nette. Prvně by byly potřeba změny přímo v Nette.

Lavka
Člen | 8
+
+1
-

Děkuji za komentáře.
Po dlouhém zkoumání jsem se dobral k výsledku. Zjistil jsem, že na Heroku jde zapisovat do složek v případě, že jsou verzované v gitu (podle dokumentace to mělo jít jen do vyhrazených složek v rootu). Jediné s čím člověk musí počítat je, že se ty zapsané data dalším deployem přemažou. Což u temporary souborů nevadí, ale u logů už trochu jo. Takže pro logování využiji nejspíš některé z 3rd party řešení, nebo si je před deployem vytáhnu scriptem.

MajklDev
Člen | 2
+
0
-

Ano, opravdu je v dokumentaci napsáno že v rootu (/) je povolen zápis do adresářů: tmp. Změnit adresáře se dá takto v bootstrap.php

<?php
	$configurator = new Nette\Configurator
	$configurator->enableDebugger('/tmp');
	$configurator->setTempDirectory('/tmp');
?>

Tohle mi ale nepříjde jako cool řešení, už z důvodu, že pokud request skončí dobře, tak se tmp promaže.

Někdo má lepší nápad?

Editoval MajklDev (19. 8. 2014 14:46)

simPod
Člen | 383
+
+1
-

bump. nikdo nic? pouzivate nejakou alternativu heroku?