Změna výchozí složky aplikace
- weckho
- Člen | 94
Ahoj,
mám na hostingu nastavenou jako výchozí složku aplikace nazevdomeny.cz. Nahrál jsem do ní celou aplikaci a napsal na podporu, jestli by mohli změnit výchozí složku na nazevdomeny.cz/document_root. Řekli mi, že to z bezpečnostních důvodů nedělají. Nevím, jak to mám řešit. U zahraničních hostingů mi to vždycky změnili.
Děkuji za radu.
- JakubKohout
- Člen | 92
No většina hostingu ma pravé kvůli tomuto smerovanou doménu do nejaký složky. Ale nic ti nebrání obsah document root nahazet do hlavní složky a v index.PHP jenom změnit umístěni bootstrapu a konstant pro adresáře.
- weckho
- Člen | 94
Díky za odpověď, potřeboval bych ještě pomoc:
Naházel jsem obsah document_root do složky /nazevdomeny.cz.
Adresáře lib a app jsou umístěny /data/lib a /data/app.
V /nazevdomeny.cz/index.php jsem změnil původní:
define('WWW_DIR', dirname(__FILE__)); // path to the web root
define('APP_DIR', WWW_DIR . '/../app'); // path to the application root
define('LIBS_DIR', WWW_DIR . '/../libs'); // path to the libraries
require APP_DIR . '/bootstrap.php'; // load bootstrap file
Na:
define('WWW_DIR', dirname(__FILE__)); // path to the web root
define('APP_DIR', WWW_DIR . '/../data/app'); // path to the application root
define('LIBS_DIR', WWW_DIR . '/../data/libs'); // path to the libraries
require APP_DIR . '/bootstrap.php'; // load bootstrap file
Web nefunguje a zobrazí se jen bílá stránka. Je potřeba udělat (změnit) ještě něco?
- JakubKohout
- Člen | 92
Nevidím celej kód (blby fórum :/) ale už na zacatku mas chybu
/../data/ přepis u obou na /data/
Editoval dRaGen (9. 10. 2009 13:16)
- Radek Pašta
- Člen | 8
Máš asi špatně cesty v konstantách adresářů pro APP_DIR a
LIBS_DIR
Jak píšeš svoje umístění, tak by jsi měl nastavit cesty na:
<?php
define('APP_DIR', WWW_DIR . '/data/app'); // path to the application root
define('LIBS_DIR', WWW_DIR . '/data/libs'); // path to the libraries
?>
- weckho
- Člen | 94
Zkusil jsem a nefungujue. A ani si nemyslím, že by to tak bylo správně. Mám přece ten adresář „data“ vně té složky „nazevdomeny.cz“ která obsahuje ten index, ve kterém to měním. Tudíž by tam ty tečky měly zůstat ne? Musím se přece dostat o úroveň výš, než vstoupím do adresáře data. Nebo se mýlím?
- Ondřej Mirtes
- Člen | 1536
A pokud to nepíše žádnou chybu, tak je možné, že se bootstrap načte,
Nette detekuje produkční prostředí a chybu nezobrazí a pokud máš
adresář app/log, tak jí zaloguje. Zapni si laděnku
(Debug::enable(Debug::DEVELOPMENT)
) nebo jukni do toho logu.
- weckho
- Člen | 94
I po zapnutí laděnky stále prázdná bílá stránka. V logu taky nic není. Kompletní adresářová struktura vypadá nějak takto:
/data/app
/data/lib
/nazevdomeny.cz/css
/nazevdomeny.cz/images
/nazevdomeny.cz/index.php
/nazevdomeny.cz/.htaccess
Ty složky app a lib rozepisovat nebudu, jejich obsah je asi jasný (defaultní). Ten index vypadá následovně:
define('WWW_DIR', dirname(__FILE__)); // path to the web root
define('APP_DIR', WWW_DIR . '/../data/app'); // path to the application root
define('LIBS_DIR', WWW_DIR . '/../data/libs'); // path to the libraries
require APP_DIR . '/bootstrap.php'; // load bootstrap file
Nic jiného jsem neměnil (je to defaultní).
Díky moc.
Editoval weckho (9. 10. 2009 15:00)
- Radek Pašta
- Člen | 8
Ve všech příspěvcích píšeš, že máš složku
/data/lib, ale v konstantě nastavuješ složku
/../data/libs.
Nemáš pouze chybu, že máš vytvořen adresář lib a máš
mít libs?
- weckho
- Člen | 94
Obě složky (log i temp) jsou zapisovatelné. To s tím lib x libs je můj překlep tady na fóru, jinak to mám správně.
Jinak temp je prázdnej. Opravdu není potřeba změnit ty cesty ještě jinde, když mám tu adresářovou strukturu trošku jinak, než má být? Stačí pouze ty cesty v index.php, který už jsem změnil?
Díky za pomoc.
- JakubKohout
- Člen | 92
podle mě webserver nemá přístup do složky data. A bylo by to
i logický aby tam neměl přístup …
Jak si ověřil že jsou zapisovatelné ?
- weckho
- Člen | 94
Ověřil jsem to tak, že jsem na ně klikl v FTP klientovi pravým tlačítkem myši / chmod a koukl, že jsou všechna práva zaškrtnutá.
Jinak, data měla nastavena práva špatně, ale ani po opravě to neběží:( Pořád stejný problém. Na podpoře hostingu mi napsali:
„DocumentRoot ze systemovych duvodu nemenime. Pokud chcete chcete neco ukladat mimo DocumentRoot, muzete pro to vyuzit adresar data.“
Takže by do složky data měl mít webserver přístup, nebo ne? Já už vážně nevím..:(
- Radek Pašta
- Člen | 8
Ještě vyzkoušej dát všechny složky dovnitř adresáře /nazevdomeny.cz/. Pokud se ti to rozběhne, tak bude opravdu problém s přístupem webserveru do složky data.
- weckho
- Člen | 94
Tak jsem přistoupil k neprofesionální možnosti :) Ale nějaké výsledky to má – když zkouším v bootstrapu vypsat testovací text, tak na této pozici už to nic nevypíše (před Debugem ještě ano):
<?php
// Step 1: Load Nette Framework
// this allows Nette to load classes automatically so that
// you don't have to litter your code with 'require' statements
require_once LIBS_DIR . '/Nette/loader.php';
//Autoload
$loader = new RobotLoader();
$loader->addDirectory(APP_DIR);
$loader->addDirectory(LIBS_DIR);
$loader->register();
//Config load
Environment::loadConfig();
// Step 2: Enable Nette\Debug
// for better exception and error visualisation
Debug::enable(Debug::DEVELOPMENT);
echo "TEST";
// Step 3: Get the front controller
$application = Environment::getApplication();
//Simple routing
$router = $application->getRouter();
...nějaký další kód.
Jinak adresářová struktura je nyní taková:
/nazevdomeny.cz/app
/nazevdomeny.cz/lib
/nazevdomeny.cz/css
/nazevdomeny.cz/images
/nazevdomeny.cz/index.php
/nazevdomeny.cz/.htaccess
A index.php vypadá takto:
define('WWW_DIR', dirname(__FILE__)); // path to the web root
define('APP_DIR', WWW_DIR . '/app'); // path to the application root
define('LIBS_DIR', WWW_DIR . '/libs'); // path to the libraries
require APP_DIR . '/bootstrap.php'; // load bootstrap file
Díky moc všem za pomoc.
Editoval weckho (9. 10. 2009 20:43)
- Patrik Votoček
- Člen | 2221
Múžeš sem pls postnout odkaz na PHPInfo? Mám takové tušení že bude asi problém v ini_set nebo možná i když hodně málo pravděpodobné zakázána funkce pro nastavování úrovně zobrazování errorů.
- weckho
- Člen | 94
Ten requirements checker jsem nezkoušel, protože odkaz na jeho stažení
nefunguje.
Odkaz na phpinfo: http://www.profieuro.eu/phpinfo.php
Díky moc
- _Martin_
- Generous Backer | 679
weckho napsal(a):
Ten requirements checker jsem nezkoušel, protože odkaz na jeho stažení nefunguje.
Odkaz na phpinfo: http://www.profieuro.eu/phpinfo.phpDíky moc
Spíš tam nefunguje odkaz na stažení Nette, který má správně být https://nette.org/cs/packages. Requirements checker najdeš přímo v distribuci.
Nicméně při pohledu do konfigurace je vidět, že je zakázaná funkce
ini_set
. Každopádně zkus ten checker.
- weckho
- Člen | 94
Tak Requirements checker je k nahlédnutí zde: http://www.profieuro.eu/…/checker.php
Nedokážu z toho sám nic odvodit, pomůže mi někdo?
Díky moc!
- Patrik Votoček
- Člen | 2221
Odovození je jednoduché na tomto serveru nefungují soubory .htaccess (mod_rewrite) a je zakázána funkce ini_set. Takže to asi nepojede.
- David Grudl
- Nette Core | 8227
weckho napsal(a):
Tak jsem docílil toho, že mám na serveru povolený mod_rewrite, ale ini_set mi povolit z bezpečnostních důvodů nechtějí. Web stále nejede. Je to tím ini_set, nebo toto důležité pro chod webu není?
Může to být tím. Pokud nechtějí povolit ini_set, je to špatný hosting a budeš mít v budoucnu hodně problémů. Šel bych jinam.