Por ahi hay un detalle en el manejo de decisiones.
Código PHP:
Ver original<?php
die("<strong>El sistema ya esta instalado</strong>"); }
else if($_POST['submit']){
.
.
.
.
.
//Dentro de esta misma decisión
$config_info = "<?php\n/* Archivo config.php generado por el sistema */\n\n\$bdhost = \"".$_POST["db-host"]."\";\n\$bdname = \"".$_POST["db-name"]."\";\n\$bduser = \"".$_POST["db-user"]."\";\n\$bdpass = \"".$_POST["db-pass"]."\";\n?>";
$keys_file = fopen("config.php","w"); fwrite($keys_file, $config_info); echo "<br />Se ha completado la instalación con éxito<br /><a href=\"index.php\">Volver al Inicio</a>";
}
?>
El fopen lo estas haciendo bien.
Aunque tu código no está en un error si debes cambiar la forma en la que haces las decisiones para que no se te presenten otros errores.
Por ejemplo, si el archivo ya estaba en el directorio no estabas restringiendo que el usuario ejecutará nuevamente el formulario, aunque restringías que no se mostrará el codigo HTML del formulario.
2.- En la misma linea donde estas creando las bases de datos, puedes crear el archivo config o puedes primero "Validar si las bases de datos fueron creadas.... De ser así crear el archivo config
Saludos