Přesunutí projektu na server
- jackm
- Člen | 54
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
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
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
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:
...
- Mikulas Dite
- Člen | 756
development < common:
znamená „sekce development dědící
od common“. Myslel jsem common
, sekce nedědící od ničeho.
- jackm
- Člen | 54
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)
- jackm
- Člen | 54
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
Chyba je v
1. production < common:
2.
3. username:
4. password:
5. database:
chybí ti tam database:
na řádku 2
- jackm
- Člen | 54
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
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
- Twista
- Člen | 48
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
- Twista
- Člen | 48
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
- llook
- Člen | 407
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žkylib
. - Smazat
Nette
ze složkylib
. - Smazat
temp/cache
. - Přepsat
bootstrap.php
, aby místoNette/loader.php
nahrávalnette.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)