Imagen con GNU/Linux Debian10, Apache2.4.38, PHP7.4.5, ODBC17, Drivers PHP SQLServer2019 y MariaDB.
85
Dockerfile respectivosEs una imagen generada con el sistema operativo GNU/Linux Debian 10 "buster", el servicio Apache 2.4.38, integrado con PHP 7.4.5, el driver Microsoft ODBC17 para SQL Server y los drvier para PHP de Microsoft SQL Server 2019, asi como los modulos para conexion con base de datos MariaDB o MySQL.
GNU/Linux Debian 10 "buster "
Los siguientes ficheros se encunetran ubucados en la ruta /var/www/html/ dentro del contenedor generado.
<?php
phpinfo();
?>
<?php
$serverName = "localhost"; // Cambiar localhost por datos del servidor MS SQL Server [serverName\instanceName, portNumber (por defecto es 1433)].
$connectionOptions = array(
"database" => "def.db", // Cambiar def.db por nombre de la base de datos.
"uid" => "def.user", // Cambiar def.user por el usuario de la base de datos.
"pwd" => "def.password" // Cambiar def.password por la clave de acceso del usuario con permisos en la base de datos.
);
// Establece la conexión.
$conn = sqlsrv_connect($serverName, $connectionOptions);
if ($conn === false) {
die(formatErrors(sqlsrv_errors()));
}
// Seleccionar consulta
$tsql = "SELECT @@Version AS SQL_VERSION";
// Ejecuta la consulta
$stmt = sqlsrv_query($conn, $tsql);
// Manejo de errores
if ($stmt === false) {
die(formatErrors(sqlsrv_errors()));
}
?>
<h1> Resultado : </h1>
<?php
while ($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)) {
echo $row['SQL_VERSION'] . PHP_EOL;
}
sqlsrv_free_stmt($stmt);
sqlsrv_close($conn);
function formatErrors($errors)
{
// Mostrar errores
echo "<h1 align='center'>Fallo la conexion </h1>";
echo "<p><strong>Informacion de error: </strong></p>";
foreach ($errors as $error) {
echo "<strong>SQLSTATE</strong>: ". $error['SQLSTATE'] . "<br/>";
echo "<strong>Codigo</strong>: ". $error['code'] . "<br/>";
echo "<strong>Mensaje</strong>: ". $error['message'] . "<br/>";
}
}
?>
Los siguientes ficheros se encunetran ubucados en la ruta /etc/apache2/sites-available dentro del contenedor generado.
Estos dos ficheros deben ser creados por medio de OpenSSL con la informacion de su sitio web (Consultar en Internet como habilitar SSL en Apache), estos dos ficheros fueron generados por medio del comando openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout <ruta_local>/ssl-cert-snakeoil.key" -out <ruta_local>/ssl-cert-snakeoil.pem
Iniciando contenedor basico con exposicion de los puertos 80 y 443:
docker container run -itd -p 80:80 -p 443:443 dsalazar1982/debian:10
Despues de inciar contenedor, editar el fichero conexion_mssql.php mencionado en la seccion de
Ficheros adicionalescon la informacion de su servidor MS SQL Server para probar conexion con su servidor MS SQL Server, sin embargo se recomienda montar un volumen para contar con persistencia de informacion (Recuerde que la edicion de ficheros en un contenedor es temporal)
Iniciando contenedor con persistencia de informacion y exposicion de los puertos 80 y 443:
docker container run -v <su_ruta>:/var/www/html -itd -p 80:80 -p 443:443 dsalazar1982/debian:10
Content type
Image
Digest
Size
254.3 MB
Last updated
over 6 years ago
docker pull dsalazar1982/debian:10