Prázdná $basePath na produkčním serveru při updatu Nette
- twingosh
- Člen | 10
Nazdarte,
Včera jsem si stáhnul poslední Nette (Nette Framework 2.0-alpha 2 ze dne 22. 11. 2010) z tohoto webu a rozchodil jsem to na localhostu.
Pokud ale přesunu Nette i na produkční server, kde mi běží funkční web, naskočí mi 404 (měním jen knihovnu, htaccess zůstává stále stejný). Po delším testování jsem zjistil, že mám prázdnou proměnou $basePath.
url na produkci je:
http://www.domena.cz:81/nazev_projektu
Předchozí verze Nette byla (co si pamatuju) někdě z října (taky php5.3 a Nette 2 alfa).
Fakt netuším, kde může být problém.
Díky za rady.
- twingosh
- Člen | 10
dump $_SERVER:
array(43) {
"REDIRECT_SCRIPT_URL" => "/muj_projekt/" (8)
"REDIRECT_SCRIPT_URI" => "http://www.mojedomena.cz:81/muj_projekt/" (31)
"REDIRECT_HANDLER" => "application/x-httpd-php5" (24)
"REDIRECT_STATUS" => "200" (3)
"SCRIPT_URL" => "/muj_projekt/" (8)
"SCRIPT_URI" => "http://www.mojedomena.cz/muj_projekt/" (28)
"HTTP_HOST" => "www.mojedomena.cz:81" (16)
"HTTP_USER_AGENT" => "Mozilla/5.0 (Windows; U; Windows NT 6.1; cs; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13" (87)
"HTTP_ACCEPT" => "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" (63)
"HTTP_ACCEPT_LANGUAGE" => "cs,en-us;q=0.7,en;q=0.3" (23)
"HTTP_ACCEPT_ENCODING" => "gzip,deflate" (12)
"HTTP_ACCEPT_CHARSET" => "windows-1250,utf-8;q=0.7,*;q=0.7" (32)
"HTTP_KEEP_ALIVE" => "115" (3)
"HTTP_CONNECTION" => "keep-alive" (10)
"HTTP_REFERER" => "http://www.mojedomena.cz:81/muj_projekt/front/login/?_fid=ed03" (53)
"HTTP_COOKIE" => "__utma=196204988.1738788884.1294355872.1295979176.1296516047.4; __utmz=196204988.1294355872.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); PHPSESS ... " (214)
"HTTP_CACHE_CONTROL" => "max-age=0" (9)
"PATH" => "/usr/local/bin:/usr/bin:/bin" (28)
"SERVER_SIGNATURE" => "<address>Apache/2.2.9 (Debian) PHP/5.2.6-1+lenny9 with Suhosin-Patch mod_ssl/2.2.9 OpenSSL/0.9.8k Server at www.mojedomena.cz Port 80</address>
" (140)
"SERVER_SOFTWARE" => "Apache/2.2.9 (Debian) PHP/5.2.6-1+lenny9 with Suhosin-Patch mod_ssl/2.2.9 OpenSSL/0.9.8k" (88)
"SERVER_NAME" => "www.mojedomena.cz" (13)
"SERVER_ADDR" => "81.91.84.237" (12)
"SERVER_PORT" => "80" (2)
"REMOTE_ADDR" => "95.82.189.78" (12)
"DOCUMENT_ROOT" => "/data/www/virtuals" (18)
"SERVER_ADMIN" => "praha@web4u.cz" (14)
"SCRIPT_FILENAME" => "/data/www/virtuals/mojedomena.cz/muj_projekt/index.php" (45)
"REMOTE_PORT" => "60995" (5)
"REDIRECT_URL" => "/muj_projekt/index.php" (17)
"GATEWAY_INTERFACE" => "CGI/1.1" (7)
"SERVER_PROTOCOL" => "HTTP/1.1" (8)
"REQUEST_METHOD" => "GET" (3)
"QUERY_STRING" => ""
"REQUEST_URI" => "/muj_projekt/" (8)
"SCRIPT_NAME" => "/muj_projekt/index.php" (17)
"ORIG_SCRIPT_FILENAME" => "/opt/php-5.3.5/bin/php-cgi" (26)
"ORIG_PATH_INFO" => "/muj_projekt/index.php" (17)
"ORIG_PATH_TRANSLATED" => "/data/www/virtuals/mojedomena.cz/muj_projekt/index.php" (45)
"ORIG_SCRIPT_NAME" => "/php-bin/php-cgi" (16)
"PHP_SELF" => "/muj_projekt/index.php" (17)
"REQUEST_TIME" => 1298414307
"argv" => array(0)
"argc" => 0
}
- David Grudl
- Nette Core | 8221
Detekce $basePath se změnila a ta nová se nedokáže správně vypořádat s nastavením tvého serveru. Otázka ale je, jestli je chyba v detekci nebo v nastavení serveru. Tj. je docela možné, že předchozí detekce (přebraná ze Zend Frameworku) byla chybná a správné detekování byl jen vedlejší efekt.
Můžeš se prosím dotázat na admina, jestli je v pořádku, že
nastavení DOCUMENT_ROOT neobsahuje část /mojedomena.cz
?
Rychlý prozatimní fix by byl přidat do bootstrap:
$_SERVER['DOCUMENT_ROOT'] .= '/mojedomena.cz';
- twingosh
- Člen | 10
Tak jsem položil server adminovi tvou otázku a v pořádku to podle něj je (viz odpověď níže).
Dobrý den,
DOCUMENT_ROOT je takto nastaven úmyslně. Je možné jej změnit,
nicméně by to
znamenalo masivnější zásah do konfigurace. Předpokládám, že Nette bude
mít
nějaké konfigurační volby, které upraví cestu instalace (jinak by
nebylo
možné řešit situaci, kdy je framework použit v podadresáři
například).
Takže to na web4u považují za standard.
Nicméně tvá berlička funguje, takže budu používat zatím ji.
Díky Davide.
Editoval twingosh (23. 2. 2011 12:31)