Zprovoznění na produkčním serveru

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

Zdravím,

chtěl bych někoho znalého poprosit, jestli by mi mohl pomoct zprovoznit můj projekt na produkčním serveru. Zkoušel jsem dva hostingy a na obou je chyba 500. Zkoušel jsem už všechno možný, ale pořád se nedaří. Pokud by byl někdo ochotný a znal tuto problematiku, napište mi prosím na spurny9@seznam.cz email, domluvili bychom se tam. Děkuji

Pokud by někoho něco napadlo, klidně to sem napiště. Prošel jsem tady už hodně topiců a nikde nic nepomohlo..

Ještě mě napadlo, na hostingu u Endory mi v logu píše:

[2014-03-17 16-18-25] Fatal error: Allowed memory size of 67108864 bytes exhausted (tried to allocate 2 bytes) in /home/users/blizard/nette.jecool.net/web/libs/Nette/Loaders/RobotLoader.php:304  @  http://nette.jecool.net/  @@  exception-2014-03-17-16-18-25-c0aef6b05fed4c7f32f25574a35f14dd.html
[2014-03-17 16-20-05] Fatal error: Allowed memory size of 67108864 bytes exhausted (tried to allocate 32 bytes) in /home/users/blizard/nette.jecool.net/web/libs/Nette/Loaders/RobotLoader.php:304  @  http://nette.jecool.net/  @@  exception-2014-03-17-16-20-05-de55fe707b40c7a21903bb8123e09448.html
[2014-03-18 07-41-58] Fatal error: Allowed memory size of 67108864 bytes exhausted (tried to allocate 72 bytes) in /home/users/blizard/nette.jecool.net/web/libs/Nette/Loaders/RobotLoader.php:304  @  http://nette.jecool.net/  @@  exception-2014-03-18-07-41-58-3c7a3d2226fee14c022077d0e1344d82.html
[2014-03-18 07-42-56] Fatal error: Allowed memory size of 67108864 bytes exhausted (tried to allocate 4 bytes) in /home/users/blizard/nette.jecool.net/web/libs/Nette/Loaders/RobotLoader.php:304  @  http://nette.jecool.net/  @@  exception-2014-03-18-07-42-56-a54fe64dcc4fb817249d72c1055498b6.html
[2014-03-18 08-45-08] Fatal error: Allowed memory size of 67108864 bytes exhausted (tried to allocate 72 bytes) in /home/users/blizard/nette.jecool.net/web/libs/Nette/Loaders/RobotLoader.php:304  @  http://nette.jecool.net/  @@  exception-2014-03-18-07-41-58-3c7a3d2226fee14c022077d0e1344d82.html

na druhém hostingu mi to v logu nepíše vůbec nic..

voda
Člen | 561
+
0
-

Co všechno máš nastavený aby procházel RobotLoader? Nemáš tam nějakou velkou knihovnu (fpdf,..)?

Blizard
Člen | 45
+
0
-

voda napsal(a):

Co všechno máš nastavený aby procházel RobotLoader? Nemáš tam nějakou velkou knihovnu (fpdf,..)?

mám tam mpdf pro tvorbu faktur, to mě napadlo že by to mohlo být ono, ale nevím jak to pořešit

Pavel Macháň
Člen | 282
+
0
-

Blizard napsal(a):

voda napsal(a):

Co všechno máš nastavený aby procházel RobotLoader? Nemáš tam nějakou velkou knihovnu (fpdf,..)?

mám tam mpdf pro tvorbu faktur, to mě napadlo že by to mohlo být ono, ale nevím jak to pořešit

mpdf musíš dát mimo RobotLoader a includuj ho ručně

voda
Člen | 561
+
0
-

Pro knihovny použij composer.

one-two
Člen | 80
+
0
-

https://packagist.org/…pdf-response tohle mam vyzkoušený

Blizard
Člen | 45
+
0
-

EIFEL napsal(a):

Blizard napsal(a):

voda napsal(a):

Co všechno máš nastavený aby procházel RobotLoader? Nemáš tam nějakou velkou knihovnu (fpdf,..)?

mám tam mpdf pro tvorbu faktur, to mě napadlo že by to mohlo být ono, ale nevím jak to pořešit

mpdf musíš dát mimo RobotLoader a includuj ho ručně

Tento problém je vyřešen. Nyní stále 500 a v logu vůbec nic. Hodím sem pro jistotu .htaccess a bootstrap a config.

#
# SECURITY WARNING: it is CRITICAL that this file & directory are NOT accessible directly via a web browser!
# https://nette.org/en/security-warning
#
common:
	php:
		date.timezone: Europe/Prague
		zlib.output_compression: yes

	nette:
		application:
			errorPresenter: Error

		session:
			expiration: 14 days

		debugger:
			bar:
					- Nette\DI\Diagnostics\ContainerPanel
	parameters:
		database:
			host: localhost
			username: Blizard
			password: xx
			database: test
			charset: utf8
			substitutes:
				"prefix": eshop_
			profiler:
				run: true
				file: libs/log/dibi.log
			lazy: TRUE

	services:
		database:
			class: \DibiConnection(%database%)
		authenticator:
			class: \AdminModule\Authenticator(@database)
			#arguments: [@dibi.connection]
		authorizator:
			class: \AdminModule\AccessList
		baseModel:
			class: \AdminModule\BaseModel(@database)
			arguments: [@database]
		frontBaseModel:
			class: \FrontModule\FrontBaseModel(@database)
			arguments: [@database]

production < common:

development < common:

console < common:
# Apache configuration file (see httpd.apache.org/docs/current/mod/quickreference.html)
# disable directory listing
Options -Indexes

# disable access to read folder


# enable cool URL
<IfModule mod_rewrite.c>
	RewriteEngine On
	# RewriteBase /

	# prevents files starting with dot to be viewed by browser
	RewriteRule /\.|^\. - [F]

	# front controller
	RewriteCond %{REQUEST_FILENAME} !-f
	RewriteCond %{REQUEST_FILENAME} !-d
	RewriteRule !\.(pdf|js|ico|gif|jpg|png|css|rar|zip|tar\.gz)$ index.php [L]
</IfModule>

# enable gzip compression
<IfModule mod_deflate.c>
	AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/x-javascript text/javascript application/javascript application/json
</IfModule>
<?php

use Nette\Application\Routers\Route,
    Nette\Application\Routers\RouteList,
    Nette\Application\Routers\SimpleRouter,
    Nette\Diagnostics\Debugger,
    Nette\Environment;

// Load Nette Framework or autoloader generated by Composer
require LIB_DIR . '/autoload.php';

// Konfigurátor aplikace
$configurator = new Nette\Config\Configurator;

// Enable Nette Debugger for error visualisation & logging
//Debugger::$logDirectory = WWW_DIR . '/log';
//Debugger::$strictMode = TRUE;
//Debugger::enable();
$configurator->setDebugMode(TRUE);
// Enable Nette Debugger for error visualisation & logging
$configurator->enableDebugger(LOG_DIR);

// Nastavení ukládání dočasných souborů
$configurator->setTempDirectory(WWW_DIR . '/temp');
$configurator->createRobotLoader()
	->addDirectory(WWW_DIR . '/app')
	->addDirectory(WWW_DIR . '/libs')
	->register();

// Vygenerujeme DI contejner
$configurator->addConfig(APP_DIR . '/config/config.neon');

// Načtení knihovny dibi
$configurator->onCompile[] = function ($configurator, $compiler) {
	    $compiler->addExtension('dibi', new DibiNetteExtension);
	};

$container = $configurator->createContainer();

// Setup router using mod_rewrite detection
if (function_exists('apache_get_modules') && in_array('mod_rewrite', apache_get_modules())) {
    // Základní routa pro frontEnd
    $container->router[] = new Route('index.php', 'Front:Default:default', Route::ONE_WAY);
    // Základní routa pro backEnd
    $container->router[] = new Route('admin/login', 'Admin:Login:default', Route::ONE_WAY);
    // Základní routa pro instalaci
    $container->router[] = new Route('install', 'Admin:Install:default', Route::ONE_WAY);

    // Styl adresa administrace
    $container->router[] = $adminRouter = new RouteList('Admin');
    $adminRouter[] = new Route('admin/<presenter>/<action>[/<id>]', 'Default:default');

    // Aktivace účtu
    $container->router[] = $frontRouter = new RouteList('Front');
    $frontRouter[] = new Route('loginActivation ? idUser=<idUser [0-9]> & activationKey=<activationKey>', array(
	'presenter' => 'Default',
	'action' => 'loginActivation'
    ));
    // Zapomenuté heslo
    $container->router[] = $frontRouter = new RouteList('Front');
    $frontRouter[] = new Route('passwordChange ? id=<idUser [0-9]> & hash=<activationKey>', array(
	'presenter' => 'Registration',
	'action' => 'passwordChange'
    ));
    $frontRouter[] = new Route('Category/<name>', array(
	'presenter' => array(
	    Route::VALUE => 'Category',
	    Route::FILTER_TABLE => array(
// řetězec v URL => presenter
		'kategorie' => 'Category'
	    ),
	),
	'action' => 'view',
	'name' => NULL,
    ));
    $frontRouter[] = new Route('<presenter>/<action>[/<id>]', array(
	'presenter' => array(
	    Route::VALUE => 'Default',
	    Route::FILTER_TABLE => array(
// řetězec v URL => presenter
		'registrace' => 'Registration'
	    ),
	),
	'action' => 'default',
	'id' => NULL,
    ));
} else {
    $container->router = new SimpleRouter('Front:Default:default');
}

$session = $container->session;

$sessionFront = $session->getSection('front');
$sessionAdmin = $session->getSection('admin');

/* MULTIPLE FILE UPLOAD */
//\Nette\Forms\Controls\MultiUploadControl::register();

// Run application.
$container->application->run();

Editoval Blizard (24. 3. 2014 9:50)

Jan Mikeš
Člen | 771
+
0
-

Pokud mas error 500 a v logu vubec nic, pak nemas spravny chmod na adresari log :)

Blizard
Člen | 45
+
0
-

Lexi napsal(a):

Pokud mas error 500 a v logu vubec nic, pak nemas spravny chmod na adresari log :)

Chmod mam nastaveny dobře.

Jan Mikeš
Člen | 771
+
0
-

Tak si zapni debug mod a misto 500 erroru uvidis konkretni problem na cem to pada.

Blizard
Člen | 45
+
0
-

Lexi napsal(a):

Tak si zapni debug mod a misto 500 erroru uvidis konkretni problem na cem to pada.

Podívej se do bootstrap co jsem tady vložil. Panel nefunguje.

Blizard
Člen | 45
+
0
-

EIFEL napsal(a):

Blizard napsal(a):

voda napsal(a):

Co všechno máš nastavený aby procházel RobotLoader? Nemáš tam nějakou velkou knihovnu (fpdf,..)?

mám tam mpdf pro tvorbu faktur, to mě napadlo že by to mohlo být ono, ale nevím jak to pořešit

mpdf musíš dát mimo RobotLoader a includuj ho ručně

Provedl jsem, chyba odstraněna ale nyní stále 500 bez logu.

Jan Mikeš
Člen | 771
+
0
-

@Blizard: ano na boostrap se divam a nikde tam nevidim toto:

$configurator->setDebugMode(TRUE);

Takze prosim zapnout a podel se o chybovou hlasku.

A mas nette 500 error a nebo serverovou obrazovku s 500?

Editoval Lexi (19. 3. 2014 16:08)

Blizard
Člen | 45
+
0
-

Lexi napsal(a):

@Blizard: ano na boostrap se divam a nikde tam nevidim toto:

$configurator->setDebugMode(TRUE);

Takze prosim zapnout a podel se o chybovou hlasku.

A mas nette 500 error a nebo serverovou obrazovku s 500?

Změnil jsem to na

// Enable Nette Debugger for error visualisation & logging
//Debugger::$logDirectory = WWW_DIR . '/log';
//Debugger::$strictMode = TRUE;
//Debugger::enable();
$configurator->setDebugMode(TRUE);
// Enable Nette Debugger for error visualisation & logging
$configurator->enableDebugger(LOG_DIR);

stále nic.

Přesně to vypisuje:

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, support@profiwh.eu and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log

Dávám zde i hlavičky:
Požadavek:
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0
Host: eshop.lamipromed.cz.web13.profiwh.com
Connection: keep-alive
Cache-Control: max-age=0
Accept-Language: cs,en-us;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8
Odpověď:
Vary: Accept-Encoding
Server: Apache
Date: Mon, 24 Mar 2014 08:51:13 GMT
Content-Type: text/html; charset=iso-8859–1
Content-Length: 400
Content-Encoding: gzip
Connection: close

tomhrb
Člen | 23
+
0
-

mne u profiwh pomohlo nasledujici:

  • ve vsech .htaccess se vyvarovat konstrukcim <IfModule...
  • napsat na podpora [zavinac] profiwh.eu, at ti povoli AllowOverride