web/config.php
changeset 0 7f95f8617b0b
equal deleted inserted replaced
-1:000000000000 0:7f95f8617b0b
       
     1 <?php
       
     2 
       
     3 if (!isset($_SERVER['HTTP_HOST'])) {
       
     4     exit('This script cannot be run from the CLI. Run it from a browser.');
       
     5 }
       
     6 
       
     7 if (!in_array(@$_SERVER['REMOTE_ADDR'], array(
       
     8     '127.0.0.1',
       
     9     '::1',
       
    10 ))) {
       
    11     header('HTTP/1.0 403 Forbidden');
       
    12     exit('This script is only accessible from localhost.');
       
    13 }
       
    14 
       
    15 $majorProblems = array();
       
    16 $minorProblems = array();
       
    17 $phpini = false;
       
    18 
       
    19 // minimum
       
    20 if (!version_compare(phpversion(), '5.3.2', '>=')) {
       
    21     $version = phpversion();
       
    22     $majorProblems[] = <<<EOF
       
    23         You are running PHP version "<strong>$version</strong>", but Symfony
       
    24         needs at least PHP "<strong>5.3.2</strong>" to run. Before using Symfony, install
       
    25         PHP "<strong>5.3.2</strong>" or newer.
       
    26 EOF;
       
    27 }
       
    28 
       
    29 if (!is_writable(__DIR__ . '/../app/cache')) {
       
    30     $majorProblems[] = 'Change the permissions of the "<strong>app/cache/</strong>"
       
    31         directory so that the web server can write into it.';
       
    32 }
       
    33 
       
    34 if (!is_writable(__DIR__ . '/../app/logs')) {
       
    35     $majorProblems[] = 'Change the permissions of the "<strong>app/logs/</strong>"
       
    36         directory so that the web server can write into it.';
       
    37 }
       
    38 
       
    39 // extensions
       
    40 if (!class_exists('DomDocument')) {
       
    41     $minorProblems[] = 'Install and enable the <strong>php-xml</strong> module.';
       
    42 }
       
    43 
       
    44 if (!defined('LIBXML_COMPACT')) {
       
    45     $minorProblems[] = 'Upgrade your <strong>php-xml</strong> extension with a newer libxml.';
       
    46 }
       
    47 
       
    48 if (!((function_exists('apc_store') && ini_get('apc.enabled')) || function_exists('eaccelerator_put') && ini_get('eaccelerator.enable') || function_exists('xcache_set'))) {
       
    49     $minorProblems[] = 'Install and enable a <strong>PHP accelerator</strong> like APC (highly recommended).';
       
    50 }
       
    51 
       
    52 if (!(!(function_exists('apc_store') && ini_get('apc.enabled')) || version_compare(phpversion('apc'), '3.0.17', '>='))) {
       
    53     $majorProblems[] = 'Upgrade your <strong>APC</strong> extension (3.0.17+)';
       
    54 }
       
    55 
       
    56 if (!function_exists('token_get_all')) {
       
    57     $minorProblems[] = 'Install and enable the <strong>Tokenizer</strong> extension.';
       
    58 }
       
    59 
       
    60 if (!function_exists('mb_strlen')) {
       
    61     $minorProblems[] = 'Install and enable the <strong>mbstring</strong> extension.';
       
    62 }
       
    63 
       
    64 if (!function_exists('iconv')) {
       
    65     $minorProblems[] = 'Install and enable the <strong>iconv</strong> extension.';
       
    66 }
       
    67 
       
    68 if (!function_exists('utf8_decode')) {
       
    69     $minorProblems[] = 'Install and enable the <strong>XML</strong> extension.';
       
    70 }
       
    71 
       
    72 if (PHP_OS != 'WINNT' && !function_exists('posix_isatty')) {
       
    73     $minorProblems[] = 'Install and enable the <strong>php_posix</strong> extension (used to colorize the CLI output).';
       
    74 }
       
    75 
       
    76 if (!class_exists('Locale')) {
       
    77     $minorProblems[] = 'Install and enable the <strong>intl</strong> extension.';
       
    78 } else {
       
    79     $version = '';
       
    80 
       
    81     if (defined('INTL_ICU_VERSION')) {
       
    82         $version =  INTL_ICU_VERSION;
       
    83     } else {
       
    84         $reflector = new \ReflectionExtension('intl');
       
    85 
       
    86         ob_start();
       
    87         $reflector->info();
       
    88         $output = strip_tags(ob_get_clean());
       
    89 
       
    90         preg_match('/^ICU version (.*)$/m', $output, $matches);
       
    91         $version = $matches[1];
       
    92     }
       
    93 
       
    94     if (!version_compare($version, '4.0', '>=')) {
       
    95         $minorProblems[] = 'Upgrade your <strong>intl</strong> extension with a newer ICU version (4+).';
       
    96     }
       
    97 }
       
    98 
       
    99 if (!class_exists('SQLite3') && !in_array('sqlite', PDO::getAvailableDrivers())) {
       
   100     $majorProblems[] = 'Install and enable the <strong>SQLite3</strong> or <strong>PDO_SQLite</strong> extension.';
       
   101 }
       
   102 
       
   103 if (!function_exists('json_encode')) {
       
   104     $majorProblems[] = 'Install and enable the <strong>json</strong> extension.';
       
   105 }
       
   106 
       
   107 if (!function_exists('session_start')) {
       
   108     $majorProblems[] = 'Install and enable the <strong>session</strong> extension.';
       
   109 }
       
   110 
       
   111 if (!function_exists('ctype_alpha')) {
       
   112     $majorProblems[] = 'Install and enable the <strong>ctype</strong> extension.';
       
   113 }
       
   114 
       
   115 // php.ini
       
   116 if (!ini_get('date.timezone')) {
       
   117     $phpini = true;
       
   118     $majorProblems[] = 'Set the "<strong>date.timezone</strong>" setting in php.ini<a href="#phpini">*</a> (like Europe/Paris).';
       
   119 }
       
   120 
       
   121 if (ini_get('short_open_tag')) {
       
   122     $phpini = true;
       
   123     $minorProblems[] = 'Set <strong>short_open_tag</strong> to <strong>off</strong> in php.ini<a href="#phpini">*</a>.';
       
   124 }
       
   125 
       
   126 if (ini_get('magic_quotes_gpc')) {
       
   127     $phpini = true;
       
   128     $minorProblems[] = 'Set <strong>magic_quotes_gpc</strong> to <strong>off</strong> in php.ini<a href="#phpini">*</a>.';
       
   129 }
       
   130 
       
   131 if (ini_get('register_globals')) {
       
   132     $phpini = true;
       
   133     $minorProblems[] = 'Set <strong>register_globals</strong> to <strong>off</strong> in php.ini<a href="#phpini">*</a>.';
       
   134 }
       
   135 
       
   136 if (ini_get('session.auto_start')) {
       
   137     $phpini = true;
       
   138     $minorProblems[] = 'Set <strong>session.auto_start</strong> to <strong>off</strong> in php.ini<a href="#phpini">*</a>.';
       
   139 }
       
   140 ?>
       
   141 <!DOCTYPE html>
       
   142 <html>
       
   143     <head>
       
   144         <meta http-equiv="content-type" content="text/html; charset=utf-8" />
       
   145         <link href="bundles/sensiodistribution/webconfigurator/css/install.css" rel="stylesheet" type="text/css" media="all" />
       
   146         <title>Symfony Configuration</title>
       
   147     </head>
       
   148     <body>
       
   149         <div id="symfony-wrapper">
       
   150             <div id="symfony-content">
       
   151                 <div class="symfony-blocks-install">
       
   152                 <div class="symfony-block-logo">
       
   153                     <img src="bundles/sensiodistribution/webconfigurator/images/logo-big.gif" alt="sf_symfony" />
       
   154                 </div>
       
   155 
       
   156                 <div class="symfony-block-content">
       
   157                     <h1>Welcome!</h1>
       
   158                     <p>Welcome to your new Symfony project.</p>
       
   159                     <p>This script will guide you through the basic configuration of your project. You can also do the same by editing the ‘<strong>app/config/parameters.ini</strong>’ file directly.</p>
       
   160 
       
   161                     <?php if (count($majorProblems)): ?>
       
   162                         <h2>
       
   163                             <span><?php echo count($majorProblems) ?> Major problems</span>
       
   164                         </h2>
       
   165                         <p>Major problems have been detected and <strong>must</strong> be fixed before continuing :</p>
       
   166                         <ol>
       
   167                             <?php foreach ($majorProblems as $problem): ?>
       
   168                                 <li><?php echo $problem; ?></li>
       
   169                             <?php endforeach ?>
       
   170                         </ol>
       
   171                     <?php endif ?>
       
   172 
       
   173                     <?php if (count($minorProblems)): ?>
       
   174                         <h2>Recommendations</h2>
       
   175                         <p>
       
   176                             <?php if ($majorProblems): ?>
       
   177                                 Additionally, to
       
   178                             <?php else: ?>
       
   179                                 To<?php endif; ?>
       
   180                             enhance your Symfony experience, it’s recommended that you fix the following :
       
   181                         </p>
       
   182                         <ol>
       
   183                             <?php foreach ($minorProblems as $problem): ?>
       
   184                             <li><?php echo $problem; ?></li>
       
   185                             <?php endforeach; ?>
       
   186                         </ol>
       
   187                     <?php endif ?>
       
   188 
       
   189                     <?php if ($phpini): ?>
       
   190                             <a id="phpini"></a>
       
   191                                 <p>*
       
   192                                     <?php if (get_cfg_var('cfg_file_path')): ?>
       
   193                                         Changes to the <strong>php.ini</strong> file must be done in "<strong><?php echo get_cfg_var('cfg_file_path') ?></strong>".
       
   194                                     <?php else: ?>
       
   195                                         To change settings, create a "<strong>php.ini</strong>".
       
   196                                     <?php endif; ?>
       
   197                                 </p>
       
   198                             </div>
       
   199                     <?php endif; ?>
       
   200 
       
   201                     <ul class="symfony-install-continue">
       
   202                         <?php if (!count($majorProblems)): ?>
       
   203                             <li><a href="app_dev.php/_configurator/">Configure your Symfony Application online</a></li>
       
   204                             <li><a href="app_dev.php/">Bypass configuration and go to the Welcome page</a></li>
       
   205                         <?php endif ?>
       
   206                         <li><a href="config.php">Re-check configuration</a></li>
       
   207                     </ul>
       
   208                 </div>
       
   209             </div>
       
   210         </div>
       
   211         <div class="version">Symfony Standard Edition</div>
       
   212     </body>
       
   213 </html>