Přesunutí projektu na server

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

Mám projekt (web) v Nette. Verze 2.0 Alpha pro PHP 5.2. Na svém serveru s PHP 5.2 jsem si tedy vytvořil projekt v Nette. Prvně jsem si to chtěl přesunout na internet konkrétněji server Endora, používá PHP 5.3.6. Chyba může být i v tom, že nevím jak se má přesunout Nette projekt na server, v případě, že chci abych neměl složku WWW, ale index.php rovnou v rootu.
Mám to tedy takto: http://www.load.borec.cz/…a%20webu.png
Dále může být chyba v neshodě PHP verzí.
Chybová hláška:

Warning: require(/home/users/nokiac1/nokiac1.funsite.cz/web/../appbootstrap.php): failed to open stream: No such file or directory in /home/users/nokiac1/nokiac1.funsite.cz/web/index.php on line 22 Fatal error: require(): Failed opening required '/home/users/nokiac1/nokiac1.funsite.cz/web/../appbootstrap.php' (include_path='.:/usr/share/pear:/usr/share/php') in /home/users/nokiac1/nokiac1.funsite.cz/web/index.php on line 22
Pavel Kouřil
Člen | 128
+
0
-

Přesuň celý obsah www do rootu a uprav cesty k adresářům a souborům…

můj index.php vypadá např. takto (taky mám všecko v rootu)

<?php

define('SITE', '');

define('WWW_DIR', dirname(__FILE__));

define('APP_DIR', WWW_DIR . '/app');

define('LIBS_DIR', WWW_DIR . '/libs');

define('TEMP_DIR', WWW_DIR . '/temp');

require APP_DIR . '/bootstrap.php';

Jen si nyní dej pozor, aby složky app/, log/, apod. NEBYLY přístupné přes prohlížeč a také možná budeš muset upravit v .htaccessu RewriteBase (odkomentovat/zakomentovat).

jackm
Člen | 54
+
0
-

Děkuji, zatím se mi to nepovedlo ještě spustit, jelikož nastala chyba v Dibi.

Fatal error: Uncaught exception 'InvalidArgumentException' with message 'Configuration must be array, string or object.' in /home/users/nokiac1/nokiac1.funsite.cz/web/libs/dibi/libs/DibiConnection.php:80 Stack trace: #0 /home/users/nokiac1/nokiac1.funsite.cz/web/libs/dibi/dibi.php(160): DibiConnection->__construct(NULL, 0) #1 /home/users/nokiac1/nokiac1.funsite.cz/web/app/bootstrap.php(40): dibi::connect(NULL) #2 /home/users/nokiac1/nokiac1.funsite.cz/web/index.php(13): require('/home/users/nok...') #3 {main} thrown in /home/users/nokiac1/nokiac1.funsite.cz/web/libs/dibi/libs/DibiConnection.php on line 80

A config mám v rootu (na mém serveru mi fungoval, samozřejmě údaje jsem přizpůsobil serveru):

#
# SECURITY WARNING: it is CRITICAL that this file & directory are NOT accessible directly via a web browser!
#
# If you don't protect this directory from direct web access, anybody will be able to see your passwords.
# https://nette.org/en/security-warning
#
common:
	php:
		date.timezone: Europe/Prague
	service:
		Nette\Security\IAuthenticator: UsersModel
		Nette\Loaders\RobotLoader:
			option:
				directory: [%appDir%, %libsDir%]
			run: true
production < common:
development < common:
	database:
		driver: mysql
		host: localhost
		username: xxx
		password: xxx
		database: xxx
		charset: utf8
		profiler: true
console < common:

Editoval jackm (16. 4. 2011 16:00)

Mikulas Dite
Člen | 756
+
0
-

Přemísti

	database:
		driver: mysql
		host: localhost
		charset: utf8
		profiler: true

do common a potom stačí username, pass a databáze pro production a development.

production < common:
	database:
                username: xxx
                password: xxx
                database: xxx
development < common:
        ...
jackm
Člen | 54
+
0
-

Jsou tam ale tři common, tak nevím do které to přesunout, ale nejspíše do console, když do production a development mám dát username, pass a db.

Mikulas Dite
Člen | 756
+
0
-

development < common: znamená „sekce development dědící od common“. Myslel jsem common, sekce nedědící od ničeho.

jackm
Člen | 54
+
0
-

Děkuji, bohužel chyba setrvává.
aktuální config:

#
# SECURITY WARNING: it is CRITICAL that this file & directory are NOT accessible directly via a web browser!
#
# If you don't protect this directory from direct web access, anybody will be able to see your passwords.
# https://nette.org/en/security-warning
#
common:
	php:
		date.timezone: Europe/Prague
	service:
		Nette\Security\IAuthenticator: UsersModel
		Nette\Loaders\RobotLoader:
			option:
				directory: [%appDir%, %libsDir%]
			run: true
        database:
                driver: mysql
                host: localhost
                charset: utf8
                profiler: true

production < common:
                username:
                password:
                database:
development < common:
                username:
                password:
                database:
console < common:

Editoval jackm (16. 4. 2011 16:21)

Mikulas Dite
Člen | 756
+
0
-

Pošli bootstrap, načítáš asi špatně config.

jackm
Člen | 54
+
0
-

Možná že jo, načítání DB tam mám ještě z toho jiného configu, a teď se trochu změnil.

<?php

/**
 * My Application bootstrap file.
 */



// Load Nette Framework
// this allows load Nette Framework classes automatically so that
// you don't have to litter your code with 'require' statements
require LIBS_DIR . '/Nette/loader.php';


// Enable Debug for error visualisation & logging, comment for OFF
/*Debug::$strictMode = TRUE;
Debug::enable();
*/

// Load configuration from config.neon file
Environment::loadConfig();


// Configure application
$application = Environment::getApplication();
$application->errorPresenter = 'Error';
//$application->catchExceptions = TRUE;


// Setup router
{
	$router = $application->getRouter();

	$router[] = new Route('index.php', 'Homepage:default', Route::ONE_WAY);

	$router[] = new Route('<presenter>/<action>[/<id>]', 'Homepage:default');
};

//conn to the DB
dibi::connect(Environment::getConfig('database'));
// Run the application!
$application->run();
Mikulas Dite
Člen | 756
+
0
-

Chyba je v

1. production < common:
2.
3.                username:
4.                password:
5.                database:

chybí ti tam database: na řádku 2

jackm
Člen | 54
+
0
-

Připsal jsem, pořád ta chyba. :(

jackm
Člen | 54
+
0
-

Já vůl jak jsem zkoušel to různě dávat na FTP, tak jsem si dal config.neon i do rootu, a ono to čte config.neon z app, tak jsem tedy nahrál ten z rootu do app a mám novou chybovou hlášku.

Fatal error: Uncaught exception 'NeonException' with message 'Either tabs or spaces may be used as indenting chars, but not both. on line 15, column 13.' in /home/users/nokiac1/nokiac1.funsite.cz/web/libs/Nette/tools/Neon.php:314 Stack trace: #0 /home/users/nokiac1/nokiac1.funsite.cz/web/libs/Nette/tools/Neon.php(211): Neon->error('Either tabs or ...') #1 /home/users/nokiac1/nokiac1.funsite.cz/web/libs/Nette/tools/Neon.php(222): Neon->parse(3) #2 /home/users/nokiac1/nokiac1.funsite.cz/web/libs/Nette/tools/Neon.php(222): Neon->parse(2) #3 /home/users/nokiac1/nokiac1.funsite.cz/web/libs/Nette/tools/Neon.php(222): Neon->parse(1) #4 /home/users/nokiac1/nokiac1.funsite.cz/web/libs/Nette/tools/Neon.php(114): Neon->parse(0) #5 /home/users/nokiac1/nokiac1.funsite.cz/web/libs/Nette/Config/ConfigAdapterNeon.php(51): Neon::decode('#??# SECURITY W...') #6 [internal function]: ConfigAdapterNeon::load('/home/users/nok...', 'production') #7 /home/users/nokiac1/nokiac1.funsite.cz/web/libs/Nette/Config/Config.php(64): call_user_func(Array in /home/users/nokiac1/nokiac1.funsite.cz/web/libs/Nette/tools/Neon.php on line 314
Pavel Kouřil
Člen | 128
+
0
-

Either tabs or spaces may be used as indenting chars, but not both – můžeš odsazovat buď tabulátory nebo mezerami, ale né obojím. takže si odmaž všechny odsazení v neonu a pak to odtabuj do správné hierarchie

jackm
Člen | 54
+
0
-

Děkuji Vám mnohokrát, už to jde. :)
Super, že ani není problém, že to je v Nette pro PHP 5.2 a na serveru je 5.3, a jde to.

Twista
Člen | 48
+
0
-

omlouvam se za oziveni mrtveho tematu, ale chci se zeptat, jak vyresit presunuti na ostrou tak abych bud nemusel presouvat obsah www do rootu, nebo abych v adrese nemel www

a jak presne rozjet minfied verzi, mel jsem s tim vcera problem na localhostu.. zkusil jsem nahrat minified do lib a nette hlasilo chyby

dekuji

Ani
Člen | 226
+
0
-

Nette hlásilo chyba… Sem napiš jaký chyby, nebo si zavolej večer těm věštcům na primě, ty to třeba uhádnou… ;)

Twista
Člen | 48
+
0
-

myslel jsem obecne co a kam nakopirovat,

k minfieldu, prvni jsem nakoprival do lib/ slozku Nette-minified/
a slozku nette smazal

Fatal error: require() [function.require]: Failed opening required 'C:\wwwm\_nette\project\www/../libs/Nette/loader.php'

potom jsme zlosku Nette-minified prejmenoval na nette a soubor nette.min.php na loader.php
a tak vyskocila ladenka s

Fatal Error

Class 'Nette\Config\Configurator' not found

loader.php(puvodni nette.min.php) jsem prejmenoval zpatky na nette.min.php a nakopiroval loader z full nette verze

Fatal error: require_once() [function.require]: Failed opening required 'C:\wwwm\_nette\projekt\libs\Nette/common/exceptions.php'

chyba je urcite nekde u me, nikdy jsem nenasel jak presne pouzit minified verzi, tak tapu

diky za odpoved

Ani
Člen | 226
+
0
-

Doporučil bych promazávat cache.

llook
Člen | 407
+
0
-

Twista napsal(a):

omlouvam se za oziveni mrtveho tematu, ale chci se zeptat, jak vyresit presunuti na ostrou tak abych bud nemusel presouvat obsah www do rootu, nebo abych v adrese nemel www

a jak presne rozjet minfied verzi, mel jsem s tim vcera problem na localhostu.. zkusil jsem nahrat minified do lib a nette hlasilo chyby

dekuji

Problém s www by měl vyřešit soubor .htaccess v rootu webu s následujícím obsahem:

RewriteEngine On
RewriteRule (.*) www/$1 [L]

Při přechodu na minified bys měl udělat několik věcí:

  • Nahrát nette.min.php do složky lib.
  • Smazat Nette ze složky lib.
  • Smazat temp/cache.
  • Přepsat bootstrap.php, aby místo Nette/loader.php nahrával nette.min.php:
// Původní kód: require $params['libsDir'] . '/Nette/loader.php';
require $params['libsDir'] . '/nette.min.php';

Editoval llook (19. 1. 2012 8:50)