简体   繁体   中英

Symfony change dev to prod

I have the following problem, I put symfony on the server, I changed it in app_dev.php debug on false, and in app.php on true and now I should in information php bin/console about get information that I have a set version of prod, why does dev show me all the time? Of course, the debug bar will not appear, and after going under the url app_dev.php/_profiler I get an error

Error: Can not redeclare class Symfony\Component\Debug\ErrorHandler

however, after entering example.com/_profiler I get the error:

No route found for "GET /_profiler"

php bin/console about result, when i change dev to false, prod to true

  Symfony
 -------------------- ---------------------------------
  Version              3.4.8
  End of maintenance   11/2020
  End of life          11/2021
 -------------------- ---------------------------------
  Kernel
 -------------------- ---------------------------------
  Type                 AppKernel
  Name                 app
  Environment          dev
  Debug                true
  Charset              UTF-8
  Root directory       ./app
  Cache directory      ./var/cache/dev (3.0 MiB)
  Log directory        ./var/logs (32.0 MiB)
 -------------------- ---------------------------------
  PHP
 -------------------- ---------------------------------
  Version              5.6.33-0+deb8u1
  Architecture         64 bits
  Intl locale          pl_PL
  Timezone             UTC (2018-10-07T09:30:23+00:00)
  OPcache              true
  APCu                 false
  Xdebug               false
 -------------------- ---------------------------------

my app.php

    <?php

use Symfony\Component\HttpFoundation\Request;

require __DIR__.'/../vendor/autoload.php';
if (PHP_VERSION_ID < 70000) {
    include_once __DIR__.'/../var/bootstrap.php.cache';
}

$kernel = new AppKernel('prod',true);
if (PHP_VERSION_ID < 70000) {
    $kernel->loadClassCache();
}
//$kernel = new AppCache($kernel);

// When using the HttpCache, you need to call the method in your front controller instead of relying on the configuration parameter
//Request::enableHttpMethodParameterOverride();
$request = Request::createFromGlobals();
$response = $kernel->handle($request);
$response->send();
$kernel->terminate($request, $response);

app_dev.php

<?php

use Symfony\Component\Debug\Debug;
use Symfony\Component\HttpFoundation\Request;

// If you don't want to setup permissions the proper way, just uncomment the following PHP line
// read https://symfony.com/doc/current/setup.html#checking-symfony-application-configuration-and-setup
// for more information
//umask(0000);

// This check prevents access to debug front controllers that are deployed by accident to production servers.
// Feel free to remove this, extend it, or make something more sophisticated.
/*if (isset($_SERVER['HTTP_CLIENT_IP'])
    || isset($_SERVER['HTTP_X_FORWARDED_FOR'])
    || !(in_array(@$_SERVER['REMOTE_ADDR'], ['127.0.0.1', '::1'], true) || PHP_SAPI === 'cli-server')
) {
    header('HTTP/1.0 403 Forbidden');
    exit('You are not allowed to access this file. Check '.basename(__FILE__).' for more information.');
}*/

require __DIR__.'/../vendor/autoload.php';
Debug::enable();

$kernel = new AppKernel('dev', false);
if (PHP_VERSION_ID < 70000) {
    $kernel->loadClassCache();
}
$request = Request::createFromGlobals();
$response = $kernel->handle($request);
$response->send();
$kernel->terminate($request, $response);

If you want to debug code in a production server, or something similar, I'd say there's at least a golden rule: Don't modify app_dev.php nor app.php. You can keep your prod env as usual, and meanwhile, you can run the webserver bundle with the corresponding environment (ie 'dev', you already have 'prod') and port. As you surely know, any changes in the code are compiled on-the-fly in dev, and in prod you have to clear the cache (and even give the proper webserver permissions). As far as I've understood, you don't want anything different to this, so I suggest revert the changes to the app*.php scripts and run the webserver bundle accordingly.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM