Dependency problemy, Error 500, RobotLoader, Cache.php
- ondrejkopicka
- Člen | 8
Ahoj,
nejsem si jisty, jestli prizpivam do spravneho vlakna, kdyztak mne prosim
presmerujte.
Me nastaveni: LAMP php 5.6, Apache/2.4.18, Ubuntu 16.04
Snazim se na localhostu rozebehnout nette aplikaci a stale dostavam HTTP ERROR
500.
Zvlastni je na tom to, ze se mi nedari najit nic v log souborech. Ani
v projektu, ani v /var/log/apache2/access.log nebo /var/log/apache2/access.log
nebo var/log/syslog.
Nemam problem rozchodit nette sandbox, pada pouze tato aplikace.
Snazil jsem se nalezt pricinu pomoci die() a nakonec jsem skoncil u funkce load
v ramci vendor/nette/caching/src/Caching/Cache.php na radku 97.
<?php
92 public function load($key, $fallback = NULL)
93 {
94 $data = $this->storage->read($this->generateKey($key));
95 if ($data === NULL && $fallback) {
96 return $this->save($key, function (& $dependencies) use ($fallback) {
97 return call_user_func_array($fallback, array(& $dependencies));
98 });
99 }
100 return $data;
101 }
?>
ktera se vola z funkce register v ramci RobotLoader, kdyz nastavuji configurator v bootstrap.php
<?php
$configurator->createRobotLoader()
->addDirectory(__DIR__)
->addDirectory(__DIR__ . '/../vendor/others/')
->register();
?>
pres die() jsem si zjistil parametry call_user_func_array, kde to pada
<?php
json_encode( $fallback ) = [{"ignoreDirs":".*, *.old, *.bak, *.tmp, temp","acceptFiles":"*.php, *.php5","autoRebuild":true},"rebuildCallback"]
json_encode( array(& $dependencies) ) = [null]
?>
prava mam nastavene nasledovne (html je root projektu)
<?php
chown -R www-data.www-data html
chmod -R 755 html
chmod -R 777 html/temp html/log
?>
composer update/composer install probehne bez chyb.
chyba je stejna u „minimum-stability“: „stable“ i
„minimum-stability“: „dev“ v composer.json
Vyzkousel jsem promazat cache v projektu i v prohlizeci.
Mam povolene veskera chybova hlaseni v php.ini
Mate nekdo napad cim by to mohlo byt a jak dale postupovat? Pres die() uz se bohuzel nejsem schopen dostat dal.
- Myiyk
- Člen | 321
Ve složce log by něco mohlo být.
V bootstrapu si můžeš zapnout development mod, a nebude to vyhazovat stránku s chybou 500, ale zobrazí se laděnka. https://tracy.nette.org/cs/#…
- ondrejkopicka
- Člen | 8
David Matějka napsal(a):
ahoj, mas nastavena prava pro zapis na slozky log a temp?
Jak uz jsem psal v prispevku, nastavoval jsem prava nasledovne:
chown -R www-data.www-data html
chmod -R 755 html
chmod -R 777 html/temp html/log
nyni jsem jeste pridal
chmod -R 777 html
a zkusil jsem i zmenit ownera, nicmene vystup je beze zmeny.
- ondrejkopicka
- Člen | 8
Myiyk napsal(a):
Ve složce log by něco mohlo být.
V bootstrapu si můžeš zapnout development mod, a nebude to vyhazovat stránku s chybou 500, ale zobrazí se laděnka. https://tracy.nette.org/cs/#…
pracuji na localhostu a je tam defaultni nastaveni. zkusel jsem explicitne do
bootstrap.php pridat presne takto
use Tracy\Debugger;
Debugger::enable(Debugger::DEVELOPMENT, __DIR__ . ‚/../log‘);
ale nepomohlo to.
zkusil jsem i upravit
$configurator->setDebugMode(‚debugMode‘);
se stejnym vysledkem
configurator je nastaveny v drivejsi casti jako
$configurator = new \Nette\Config\Configurator;
- David Matějka
- Moderator | 6445
a je to 500 od nette nebo od apache?
debug mode kdyztak zapnes pres
$configurator->setDebugMode(TRUE);
- ondrejkopicka
- Člen | 8
David Matějka napsal(a):
a je to 500 od nette nebo od apache?
debug mode kdyztak zapnes pres
$configurator->setDebugMode(TRUE);
upravil jsem v bootstrap.php
$configurator->setDebugMode(TRUE);
a je to 500 od nette nebo od apache?
Jak to zjistim? V chromu dostanu pouze:
This page isn’t working
localhost is currently unable to handle this request.
HTTP ERROR 500
Ve firefoxu prazdna stranka.
access.logg:
<?php
127.0.0.1 - - [16/Jul/2017:16:27:40 +0200] "GET /www/ HTTP/1.1" 500 185 "http://localhost/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:54.0) Gecko/20100101 Firefox/54.0"
127.0.0.1 - - [16/Jul/2017:16:27:47 +0200] "GET /www/ HTTP/1.1" 500 185 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36"
?>
error.log nic
syslog nic
<?php
Jul 16 16:27:15 ondrejkopicka gnome-session[2202]: [14:27:15][void AbstractOnlineStatus::handleOnlineStatusResult(bool):179] handleOnlineStatusResult no change : true
Jul 16 16:28:00 ondrejkopicka gnome-session[2202]: [14:28:00][virtual bool OnlineStatus::platformSpecificHasInternetConnectivity():38] org.freedesktop.NetworkManager interface is valid
?>
- Oli
- Člen | 1215
Takhle vypadá error page nette: https://www.google.cz/search?…:
Pokud vidíš cokoli jiného, tak je špatně nastaven server.
- ondrejkopicka
- Člen | 8
Oli napsal(a):
Takhle vypadá error page nette: https://www.google.cz/search?…:
Pokud vidíš cokoli jiného, tak je špatně nastaven server.
Jak je potom ale mozne, ze kdyz umistim do toho sameho adresare nette sandbox a nastavim prava uplne stejne, tak ze mi funguje? A kdyz do toho sameho adresare soupnu tu druhou aplikaci a zrekapituluji ty same prikazy (composer update/instal, nastaveni chown a chmod), tak dostanu E500? Kdyby byl problem na serveru, tak bych predpokladal, ze nepojede ani sandbox.
- ondrejkopicka
- Člen | 8
Zdravim,
chtel bych vam podekovat za snahu a rychle odpovedi. Problem mi nakonec pomohl
vyresit jeden clovek osobne.
Jednalo se o sled nekolika veci, ktere problem zpusobovaly:
Bylo mi sdeleno, ze u aplikace nemam spoustet composer update, ale pouze
composer install. Diky tomu se zjistilo, ze mi chybi php5.6-gd. Dale bylo nutne
povolit a2enmod ssl, rewrite, deflate, include a expires.
Dale nainstalovat nodejs a spustit
npm install -g bower gulp-cli yarn
sudo npm install -g grunt-cli
nakonec bylo nutne do /etc/apache2/sites-enabled-000.default.conf pridat
<Directory /var/www/html>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
a v aplikaci upravit app/router/RouterFactory.php tak, aby neodkazovalo
defaultne na SECURED stranky a v app/config/config.local.neon upravit
parameters: basePath: /www/
pote se aplikace konecne rozebehla.