Sign inSign up

dsalazar1982/debian

By dsalazar1982

•Updated over 6 years ago

Imagen con GNU/Linux Debian10, Apache2.4.38, PHP7.4.5, ODBC17, Drivers PHP SQLServer2019 y MariaDB.

Image
0

85

dsalazar1982/debian repository overview

⁠Referencia rapida

⁠Etiquetas compatibles y enlaces Dockerfile respectivos

⁠Que es dsalazar1982/debian:10?

Es 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.

⁠Sistema base

GNU/Linux Debian 10 "buster "

⁠Paquetes instalados

  • vim
  • curl
  • apt-transport-https
  • wget
  • lsb-release
  • locales
  • php7.4
  • php7.4-dev
  • php7.4-xml
  • php7.4-intl
  • msodbcsql17
  • unixodbc-dev
  • sqlsrv
  • pdo_sqlsrv
  • apache2
  • libapache2-mod-php7.4
  • php7.4-mysql
  • openssl
  • apache2-ssl-dev

⁠Ficheros adicionales

Los siguientes ficheros se encunetran ubucados en la ruta /var/www/html/ dentro del contenedor generado.

  • phpinfo.php:
<?php
    phpinfo();
?>
  • conexion_mssql.php
<?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.

  • ssl-cert-snakeoil.pem
  • ssl-cert-snakeoil.cert

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

⁠Crear contenedor con base en la imagen

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 adicionales con 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

Tag summary

Content type

Image

Digest

Size

254.3 MB

Last updated

over 6 years ago

docker pull dsalazar1982/debian:10