Browse Source

Add database port to installation procedure and configuration file - refs #7819

Yannick Warnier 9 years ago
parent
commit
a2d3f1c99c
3 changed files with 39 additions and 6 deletions
  1. 2 0
      main/install/configuration.dist.php
  2. 12 4
      main/install/index.php
  3. 25 2
      main/install/install.lib.php

+ 2 - 0
main/install/configuration.dist.php

@@ -28,6 +28,8 @@
  */
 // Database host
 $_configuration['db_host'] = '{DATABASE_HOST}';
+// Database port
+$_configuration['db_port'] = '{DATABASE_PORT}';
 // Database name
 $_configuration['main_database'] = '{DATABASE_MAIN}';
 // Database username

+ 12 - 4
main/install/index.php

@@ -213,6 +213,7 @@ if (!isset($_GET['running'])) {
     $dbUsernameForm = 'root';
     $dbPassForm = '';
     $dbNameForm = 'chamilo';
+    $dbPortForm = 3306;
 
     // Extract the path to append to the url if Chamilo is not installed on the web root directory.
     $urlAppendPath = api_remove_trailing_slash(api_get_path(REL_PATH));
@@ -439,6 +440,7 @@ if (empty($installationProfile)) {
     <input type="hidden" name="pathForm"           value="<?php echo api_htmlentities($pathForm, ENT_QUOTES); ?>" />
     <input type="hidden" name="urlForm"            value="<?php echo api_htmlentities($urlForm, ENT_QUOTES); ?>" />
     <input type="hidden" name="dbHostForm"         value="<?php echo api_htmlentities($dbHostForm, ENT_QUOTES); ?>" />
+    <input type="hidden" name="dbPortForm"         value="<?php echo api_htmlentities($dbPortForm, ENT_QUOTES); ?>" />
     <input type="hidden" name="dbUsernameForm"     value="<?php echo api_htmlentities($dbUsernameForm, ENT_QUOTES); ?>" />
     <input type="hidden" name="dbPassForm"         value="<?php echo api_htmlentities($dbPassForm, ENT_QUOTES); ?>" />
     <input type="hidden" name="dbNameForm"         value="<?php echo api_htmlentities($dbNameForm, ENT_QUOTES); ?>" />
@@ -476,6 +478,7 @@ if (@$_POST['step2']) {
         $dbUsernameForm,
         $dbPassForm,
         $dbNameForm,
+        $dbPortForm,
         $installationProfile
     );
 } elseif (@$_POST['step4']) {
@@ -489,7 +492,8 @@ if (@$_POST['step2']) {
             $dbHostForm,
             $dbUsernameForm,
             $dbPassForm,
-            $dbNameForm
+            $dbNameForm,
+            $dbPortForm
         );
 
         $tmp = get_config_param_from_db('platformLanguage');
@@ -594,6 +598,7 @@ if (@$_POST['step2']) {
     <?php echo get_lang('AdminPhone').' : '.$adminPhoneForm; ?><br />
     <?php echo get_lang('MainLang').' : '.$languageForm; ?><br /><br />
     <?php echo get_lang('DBHost').' : '.$dbHostForm; ?><br />
+    <?php echo get_lang('DBPort').' : '.$dbPortForm; ?><br />
     <?php echo get_lang('DBLogin').' : '.$dbUsernameForm; ?><br />
     <?php echo get_lang('DBPassword').' : '.str_repeat('*', api_strlen($dbPassForm)); ?><br />
     <?php echo get_lang('MainDB').' : <strong>'.$dbNameForm; ?></strong><br />
@@ -675,7 +680,8 @@ if (@$_POST['step2']) {
             $dbHostForm,
             $dbUsernameForm,
             $dbPassForm,
-            $dbNameForm
+            $dbNameForm,
+            $dbPortForm
         );
 
         $perm = api_get_permissions_for_new_directories();
@@ -749,7 +755,8 @@ if (@$_POST['step2']) {
             $dbHostForm,
             $dbUsernameForm,
             $dbPassForm,
-            null
+            null,
+            $dbPortForm
         );
 
         $dbNameForm = preg_replace('/[^a-zA-Z0-9_\-]/', '', $dbNameForm);
@@ -761,7 +768,8 @@ if (@$_POST['step2']) {
             $dbHostForm,
             $dbUsernameForm,
             $dbPassForm,
-            $dbNameForm
+            $dbNameForm,
+            $dbPortForm
         );
 
         $metadataList = $manager->getMetadataFactory()->getAllMetadata();

+ 25 - 2
main/install/install.lib.php

@@ -325,6 +325,7 @@ function set_file_folder_permissions()
 function write_system_config_file($path)
 {
     global $dbHostForm;
+    global $dbPortForm;
     global $dbUsernameForm;
     global $dbPassForm;
     global $dbNameForm;
@@ -342,6 +343,7 @@ function write_system_config_file($path)
 
     $config['{DATE_GENERATED}'] = date('r');
     $config['{DATABASE_HOST}'] = $dbHostForm;
+    $config['{DATABASE_PORT}'] = $dbPortForm;
     $config['{DATABASE_USER}'] = $dbUsernameForm;
     $config['{DATABASE_PASSWORD}'] = $dbPassForm;
     $config['{DATABASE_MAIN}'] = $dbNameForm;
@@ -523,14 +525,16 @@ function get_config_param_from_db($param = '')
  * @param string  $dbUsernameForm DB username
  * @param string  $dbPassForm DB password
  * @param string  $dbNameForm DB name
+ * @param int     $dbPortForm DB port
  *
  * @return EntityManager
  */
-function connectToDatabase($dbHostForm, $dbUsernameForm, $dbPassForm, $dbNameForm)
+function connectToDatabase($dbHostForm, $dbUsernameForm, $dbPassForm, $dbNameForm, $dbPortForm = 3306)
 {
     $dbParams = array(
         'driver' => 'pdo_mysql',
         'host' => $dbHostForm,
+        'port' => $dbPortForm,
         'user' => $dbUsernameForm,
         'password' => $dbPassForm,
         'dbname' => $dbNameForm
@@ -1298,6 +1302,7 @@ function displayDatabaseParameter(
  * @param string $dbUsernameForm
  * @param string $dbPassForm
  * @param string $dbNameForm
+ * @param int    $dbPortForm
  * @param string $installationProfile
  */
 function display_database_settings_form(
@@ -1306,6 +1311,7 @@ function display_database_settings_form(
     $dbUsernameForm,
     $dbPassForm,
     $dbNameForm,
+    $dbPortForm = 3306,
     $installationProfile = ''
 ) {
     if ($installType == 'update') {
@@ -1314,6 +1320,7 @@ function display_database_settings_form(
         $dbUsernameForm     = $_configuration['db_user'];
         $dbPassForm         = $_configuration['db_password'];
         $dbNameForm         = $_configuration['main_database'];
+        $dbPortForm         = $_configuration['db_port'];
 
         echo '<div class="RequirementHeading"><h2>' . display_step_sequence() .get_lang('DBSetting') . '</h2></div>';
         echo '<div class="RequirementContent">';
@@ -1342,6 +1349,20 @@ function display_database_settings_form(
             <div class="col-sm-3"><?php echo get_lang('EG').' localhost'; ?></div>
             <?php } ?>
         </div>
+        <div class="form-group">
+            <label class="col-sm-4"><?php echo get_lang('DBPort'); ?> </label>
+            <?php if ($installType == 'update'){ ?>
+            <div class="col-sm-5">
+                <input type="hidden" name="dbPortForm" value="<?php echo htmlentities($dbPortForm); ?>" /><?php echo $dbPortForm; ?>
+            </div>
+            <div class="col-sm-3"></div>
+            <?php }else{ ?>
+            <div class="col-sm-5">
+                <input type="text" size="25" maxlength="50" name="dbPortForm" value="<?php echo htmlentities($dbPortForm); ?>" />
+            </div>
+            <div class="col-sm-3"><?php echo get_lang('EG').' 3306'; ?></div>
+            <?php } ?>
+        </div>
         <div class="form-group">
             <?php
                 //database user username
@@ -1400,7 +1421,8 @@ function display_database_settings_form(
                 $dbHostForm,
                 $dbUsernameForm,
                 $dbPassForm,
-                null
+                null,
+                $dbPortForm
             );
             $databases = $manager->getConnection()->getSchemaManager()->listDatabases();
             if (in_array($dbNameForm, $databases)) {
@@ -1415,6 +1437,7 @@ function display_database_settings_form(
             <?php echo $database_exists_text ?>
             <div id="db_status" class="alert alert-success">
                 Database host: <strong><?php echo $manager->getConnection()->getHost(); ?></strong><br />
+                Database port: <strong><?php echo $manager->getConnection()->getPort(); ?></strong><br />
                 Database driver: <strong><?php echo $manager->getConnection()->getDriver()->getName(); ?></strong><br />
 
             </div>