ispconfig – nette 3.0 apache hází err 500 i při nově vytvořeném projektu s právy problém není

před 4 měsíci

Altimit
Člen | 82
+
-1
-

Ahoj, mám aktuálně problém..
Chtěl jsem aktualizovat nette na nejnovější verzi a web přestal kompletně fungovat. Když jsem hledal a zkusil jsem nahodit úplně čisté nette na nově vytvořený folder přes ispconfig tak mně to vyhodilo s errorem 500 (ne od nette, ale od apache) a v logu isp mám tohle:

[Mon Apr 29 14:02:55.957319 2019] [fcgid:warn] [pid 14167] [client *] mod_fcgid: stderr: PHP Fatal error:  Uncaught Error: Class 'App\\Bootstrap' not found in /var/www/clients/client0/web9/web/www/index.php:7
[Mon Apr 29 14:02:55.957348 2019] [fcgid:warn] [pid 14167] [client *] mod_fcgid: stderr: Stack trace:
[Mon Apr 29 14:02:55.957353 2019] [fcgid:warn] [pid 14167] [client *] mod_fcgid: stderr: #0 {main}
[Mon Apr 29 14:02:55.957358 2019] [fcgid:warn] [pid 14167] [client*] mod_fcgid: stderr:   thrown in /var/www/clients/client0/web9/web/www/index.php on line 7

php mám na verzi 7.3.2

PHP 7.3.2-3 (cli) (built: Feb  8 2019 15:05:54) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.2, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.3.2-3, Copyright (c) 1999-2018, by Zend Technologies

nevíte kde může být chyba?
jiný web na starší verzi nette funguje, ale na 3.0 nějak ne..

před 4 měsíci

Mysteria
Člen | 742
+
+1
-

Přečetl sis vůbec tu chybu? Hláška Class 'App\\Bootstrap' not found je totiž poměrně jasná.

Nedávno se měnil bootstrap Nette a už to není jenom soubor, ale je to nově třída. Pokud jsi třeba aktualizoval jenom index.php, ale ne bootstrap.php, tak by ti tohle mohlo vzniknout.

před 4 měsíci

Altimit
Člen | 82
+
0
-

@Mysteria zkusil jsem nahodit úplně čisté nette na nově vytvořený folder přes ispconfig tak mně to vyhodilo ten error byl ten samý jako když jsem to aktualizoval. btw. tu chybu mi vyskočila právě u nově čisté nahozené verze. Tudíž to není chyba v aktualizaci.

před 4 měsíci

Mysteria
Člen | 742
+
0
-

V tom případě sem dej obsah souboru app/Bootstrap.php a composer.json.

před 4 měsíci

tkn
Člen | 12
+
-1
-

Nemělo by být v index.php tohle:

App\Booting

? Ty tam máš

App\Bootstrap

před 4 měsíci

Altimit
Člen | 82
+
0
-

je to přesně jak to je po stažení tak to bylo rozbalené a nahrané na server a přidělené oprávnění pro čtení
index.php

<?php

declare(strict_types=1);

require __DIR__ . '/../vendor/autoload.php';

App\Bootstrap::boot()
    ->createContainer()
    ->getByType(Nette\Application\Application::class)
    ->run();

app/bootstrap.php

<?php

declare(strict_types=1);

namespace App;

use Nette\Configurator;


class Bootstrap
{
    public static function boot(): Configurator
    {
        $configurator = new Configurator;

        //$configurator->setDebugMode('23.75.345.200'); // enable for your remote IP
        $configurator->enableTracy(__DIR__ . '/../log');

        $configurator->setTimeZone('Europe/Prague');
        $configurator->setTempDirectory(__DIR__ . '/../temp');

        $configurator->createRobotLoader()
            ->addDirectory(__DIR__)
            ->register();

        $configurator->addConfig(__DIR__ . '/config/common.neon');
        $configurator->addConfig(__DIR__ . '/config/local.neon');

        return $configurator;
    }
}

composer.json

 {
    "name": "nette/web-project",
    "description": "Nette: Standard Web Project",
    "keywords": ["nette"],
    "type": "project",
    "license": ["MIT", "BSD-3-Clause", "GPL-2.0", "GPL-3.0"],
    "require": {
        "php": ">= 7.1",
        "nette/application": "^3.0",
        "nette/bootstrap": "^3.0",
        "nette/caching": "^3.0",
        "nette/database": "^3.0",
        "nette/di": "^3.0",
        "nette/finder": "^2.5",
        "nette/forms": "^3.0",
        "nette/http": "^3.0",
        "nette/mail": "^3.0",
        "nette/robot-loader": "^3.0",
        "nette/security": "^3.0",
        "nette/utils": "^3.0",
        "latte/latte": "^2.5",
        "tracy/tracy": "^2.6"
    },
    "require-dev": {
        "nette/tester": "^2.0"
    },
    "autoload": {
        "classmap": ["app/Bootstrap.php"]
    },
    "minimum-stability": "stable",
    "config": {
        "platform": {
            "php": "7.1"
        }
    }
}

před 4 měsíci

tomat
Backer | 11
+
-1
-

Já mám pro inspiraci v Nette 3:

index.php

<?php

declare(strict_types=1);

require __DIR__ . '/../vendor/autoload.php';

App\Booting::boot()
    ->createContainer()
    ->getByType(Nette\Application\Application::class)
    ->run();

app/Booting.php – místo Bootstrap.php

<?php

declare(strict_types=1);

namespace App;

use Nette\Configurator;


class Booting
{
    public static function boot(): Configurator
    {
        $configurator = new Configurator;

        //$configurator->setDebugMode('23.75.345.200'); // enable for your remote IP
        $configurator->enableTracy(__DIR__ . '/../log');

        $configurator->setTimeZone('Europe/Prague');
        $configurator->setTempDirectory(__DIR__ . '/../temp');

        $configurator->createRobotLoader()
            ->addDirectory(__DIR__)
            ->register();

        $configurator
            ->addConfig(__DIR__ . '/config/common.neon')
            ->addConfig(__DIR__ . '/config/local.neon');

        $configurator->addParameters([
                                         'rootDir' => realpath(__DIR__ . '/..'),
                                         'appDir' => __DIR__,
                                         'wwwDir' => realpath(__DIR__ . '/../www'),
                                     ]);

        return $configurator;
    }


    public static function bootForTests(): Configurator
    {
        $configurator = self::boot();
        \Tester\Environment::setup();
        return $configurator;
    }
}

Porovnej a otestuj @Altimit. Mělo by fungovat, taky jsem na to ze začátku chvíli koukal ;-)

Editoval tomat (29. 4. 18:29)

před 4 měsíci

Mysteria
Člen | 742
+
+1
-

Tak jsem to naschvál taky vyzkoušel a normálně funguje (obsah souborů je stejný jako tvůj výše uvedený). Zkus tu čistou instalaci provést takhle:

composer create-project nette/web-project:dev-master some/directory

U tebe to vypadá jako kdyby se nevygeneroval správně autoloading.

před 4 měsíci

Šaman
Člen | 2308
+
0
-

Zkusil jsem stáhnout tu zazipovanou verzi a dělá to totéž. Je to nějaký hapr v composer mapováni. Stačí dát composer install, nic nového se nestáhne, ale ta classmap se přegeneruje správně.

před 23 dny

Ondra Cháb
Člen | 1
+
0
-

Dnes jsem řešil stejný problém, na localu fungovalo vše, na hostingu ne. Chyba byla v tom, že autoloader hledal Bootstrap v app/ s malým a, i když všude jinde jsem měl App/.

Editoval Ondra Cháb (1. 8. 7:19)

před 23 dny

Mysteria
Člen | 742
+
0
-

Jn, Windowsu jiná velikost písmen nevadí, ale Linuxu ano, proto se ti to projevilo až na hostingu.