944 063 154

Blog

Categoría: Sistemas TI

¿El fin de los departamentos de IT?

Publicado enSistemas TI

La semana pasada hubo bastante revuelo con un post de 37Signals en el que se exponía el fin de los departamentos de IT en favor de servicios en la nube. Algo que se deja entrever en dicho post es que con servicios como Google Apps, no tiene sentido tener un equipo de IT dedicado a administrar servidores Microsoft Exchange.

Un error que se comete a menudo al juzgar la labor de los administradores de sistemas es que no se sabe visualizar ni evaluar la dimensión, importancia, prioridad e incluso la criticidad que tiene en una empresa; ya sea tecnológica o no.

Este error lo puede cometer cualquiera en la empresa. Desde directivos no técnicos, hasta el equipo de desarrollo que trabaja normalmente de forma mucho más cercana.

El porqué de no valorar adecuadamente los departamentos de IT

El principal motivo de que se cometa el error de infravalorar los departamentos de IT suele ser que cuando un administrador de sistemas hace bien su trabajo, la percepción del usuario es que no hace falta a nadie que se encargue de mantener algo que ya está funcionando «por sí solo».

Adicionalmente, en el sector de internet a veces nos olvidamos de que existen otro tipo de empresas mucho más grandes en las que su estructura y directivas empresariales son mucho más complejas. Estas compañías son difíciles de gestionar y hace falta implementar tecnologías que faciliten el trabajo entre departamentos. 

Por tanto, el trabajo de los consultores y administradores de sistemas es clave; sino, el día a día en empresas de este tipo sería un absoluto infierno.

¿Se pueden solucionar los problemas técnicos de una empresa con las opciones de cloud computing que existen en la actualidad? ¿Podemos olvidarnos de tener en nuestra empresa a alguien contratado, o a una empresa que ofrezca servicios de sistemas TI,  que se encargue de administrar redes, hardware, servidores, backups.. y se asegure de que todo esté apunto para resistir nuestras jornadas de trabajo? Rotundamente no, ni ahora ni dentro de 10 años.

¿Es imprescindible el soporte?

Imaginemos por un momento una empresa que se dedique a la automoción y que tenga un departamento de I+D. En él, trabajan ingenieros diseñando piezas para automóviles que posteriormente patentarán y venderán a las marcas interesadas. Estos profesionales van a necesitar hardware potente para diseñar sus prototipos. Empezando con una red local que les permita mover alta cantidad de datos entre sus equipos y los servidores, pasando por servidores de almacenamiento que garanticen seguridad y políticas de backup bien diseñadas.

Es posible que necesiten también comunicarse con proveedores de todo el mundo por correo, vo-ip u otro tipo de medios. En el caso del correo es vital que no existan problemas de spam, falsos positivos o emails que no lleguen a su destino. Sería bueno que si uno de estos profesionales pierde su terminal móvil o el portátil en alguno de sus viajes, el dispositivo quede inutilizado y sus datos sean inaccesibles. Además, puede que tengan algún problema con el software instalado en su equipo y que necesiten para hacer su trabajo; y es por ello que necesitan un soporte que les permita solventar cualquier duda. Por muchos servicios que implementemos o externalicemos parte de estas problemáticas, necesitaremos que exista alguien que piense, mantenga y coordine todos estos puntos. Y esa persona es el administrador de sistemas (o sysadmin).

Entonces, ¿necesito contratar un sysadmin?

Aunque se diese el caso de que no contemos con ningún servidor en nuestra empresa, y que todos los datos y aplicaciones estén en la nube, en cuanto nuestro negocio crezca un mínimo vamos a empezar a necesitar a alguien que se asegure de que todo nuestro trabajo está disponible y atienda las necesidades tecnológicas que vayan surgiendo. Y ahí es donde se ubican los departamentos de IT.

Actualmente disponemos de soluciones increíbles que reducen aparentemente nuestros costes de sistemas;  tenemos Amazon EC2, Google Apps, Exchange Online, Windows Azure y un largo etc. Aún así, cabe destacar que nuestros usuarios siguen sin tener los conocimientos suficientes; tanto para diseñar una implantación y mantenimiento adecuados como para prescindir de profesionales cuya labor es precisamente esa. ¿Ya ves de otra forma a los departamentos de IT?

Usar Hyper-V con un adaptador de red inalámbrico

Publicado enSistemas TI

Hyper-V, el programa de virtualización para todo tipo de servidores de Microsoft, ha ido incorporando nuevas funcionalidades a lo largo de los años. Hasta el punto de que en la actualidad permite el almacenamiento en máquinas virtuales dinámicas; a la par que ha mejorado su compatibilidad con los diferentes procesadores y redes.

En los últimos días nos hemos dado cuenta de que Hyper-V no soporta redes inalámbricas a la hora de conectar las máquinas virtuales. Así, mientras que en entornos de producción no supone ningún problema el uso de Hyper-V, ya que todos los servidores siempre van conectados por cable; cuando nos disponemos a utilizarlos para otros propósitos las necesidades cambian y ahora parece que Hyper-V ya no es capaz de satisfacerlas. Este puede ser, por ejemplo, el caso de instalar Hyper-V en un dispositivo portátil.

Como solución a este problema, hemos optado por crear una nueva red virtual de tipo interna. A continuación, a dicha red le hemos añadido un puente de red que permita la conexión entre la red inalámbrica y la red interna que acabamos de crear. Si tú también estás teniendo este problema, y quieres ponerle solución y no sabes cómo, te contamos paso a paso qué es lo que tienes que hacer.

Usar Hyper-V con un adaptador de red inalámbrico

En primer lugar, accede al administrador de Hyper-V. Una vez allí, haz click en la pestaña del administrador de redes virtuales y pincha en la opción Nueva red virtual Interna. A continuación haz click, en primer lugar en el botón de agregar, y a continuación pulsa en aceptar.

Hyper-V-wlan1

Inmediatamente después tendrás que abrir las Conexiones de red.  Allí selecciona tanto la red inalámbrica como la red interna que habremos tenido que crear. Con el botón derecho de tu ratón selecciona la opción de agregar puente de red. Nuevamente, tendras que aceptar los cambios.

En la ventana de propiedades de puente de red, selecciona las opciones que te indicamos en la siguiente captura de pantalla. Para que se guarden los cambios, haz click en aceptar.

Hyper-V-wlan2

Entonces, ve al panel de control de Windows y, en redes e internet, busca el puente de red que acabamos de crear entre las opciones de conexiones de red disponibles.

Hyper-V-wlan3

Con el puente de red ya creado, deberás conectar la interfaz de tu máquina virtual a la red interna. De esta forma conseguirás tener acceso a internet. Finalmente, pulsa en aceptar para que se apliquen todos los cambios correctamente.

Hyper-V-wlan4

Con esto debería ser suficiente para que puedas utilizar Hyper-V con un dispositivo de red inalámbrica; como, por ejemplo, puede ser tu ordenador portátil. A pesar de que Hyper-V está configurado para ejecutarse solo en servidores físicos y no en equipos portátiles, con este método haremos que Hyper-V muestre las redes inalámbricas; además de todas las redes fijas.

Ya que mediante el uso de un Puente de red se puede acceder a internet desde una máquina virtual pero utilizando una red inalámbrica. Eso sí, recuerda borrar la conexión puente si vuelves a conectar el dispositivo por cable. De otra forma, no sería posible conectar el dispositivo a internet ya que estaría configurado para redes inalámbricas.

Cómo previsualizar un dominio antes de cambiar los DNS

Publicado enSistemas TI

En ocasiones puede ser de gran utilidad saber la manera de hacer que tu equipo resuelva un dominio a otro servidor. Algo que puede hacerse con independencia de cuáles sean las DNS tenga configuradas. Por ello, en el siguiente post te explicamos cómo puedes previsulizar los dominios antes de realizar ninguna modificación en la zona DNS y qué es lo que tienes que hacer para ello.

Tras migrar una página web de un servidor a otro, sois muchos los que nos preguntáis si al hacer el cambio de DNS para que la web apunte al nuevo servidor la web se verá bien; o si esto puede hacer que la web deje de estar accesible a los usuarios. Por ello, antes de realizar ningún cambio en los DNS, es recomendable que primero hagas el cambio sólo para tu equipo. Una vez hayas comprobado que todo funciona de manera correcta, podrás repitir los pasos para cambiar los DNS del dominio.

Cómo previsualizar un dominio

1. Para poder previsualizar un nombre de dominio antes de proceder a cambiar sus DNS, solo tienes que abrir un editor de texto simple. Como por ejemplo, el bloc de notas o notepad en Windows. En el caso de`que tu equipo utilice Windows Vista, ten en cuenta que, si vas a utilizar el bloc de notas, tendrás que abrirlo como administrador.

notepad-previsualizar un dominio

2. A continuación en el bloc de notas vamos a Archivo > Abrir. De esta forma, podremos abrir el archivo hosts ubicado en la siguiente ruta: c:WindowsSystem32driversetc

notepad-previsualizar-dominio-dns

3. Seguidamente, tenemos que añadir una línea de texto en el archvo en la que se indique la IP y el nombre del dominio que queremos previsualizar. En este ejemplo queremos apuntar «midominio.com» a la IP 82.194.77.166. Para poder previsualizar tus DNS tendrás que hacer lo mismo, sustituyendo los datos de nuestro ejemplo por la información que sea válida en tu caso.

ip-dominio-notepad-previsualizacon del dominio-notepad

Como se puede comprobar, hay que poner el dominio con «www» y sin ellas, para asegurarnos de que el dominio apunte de ambas formas. Si quieres comprobar más de un dominio, puedes hacerlo sin problemas siempre que cada uno de los dominios esté separado correctamente mediante un espacio. Cuando ya tengamos todos los dominios que queremos comprobar, guardaremos el fichero.

Ahora si intentamos abrir midominio.com veremos la página web como si estuviese en el servidor 82.194.77.166, independientemente de dónde se encuentre en realidad.

Cómo ver dónde apunta un dominio en nuestra máquina

Para ello, si probamos a abrir una consola de terminal y ejecutar el comando ping midominio.com veremos desde qué IP responde. Para abrir la consola hay que ir al botón de Windows y escribir CMD. De esta forma, Windows localizará el programa; para cualquier sistema operativos anterior a Windows Vista, deberemos ir a inicio > ejecutar > CMD.

ping-notepad-previsualizacon del dominio

Como vemos en la captura, responde desde la dirección IP 82.194.77.166; a pesar de que los usuarios no lo verán desde ahí. Si en lugar de ser usuario de Windows, utilizas un equipo Linux o Mac, simplemente tienes que editar el archivo /etc/hosts de la misma forma que en este ejemplo para Windows.

Sincronizar automáticamente la hora en SuseLinux

Publicado enSistemas TI

En algunas ocasiones tener mal configurada la hora en nuestro servidor puede causarnos problemas serios. Problemas que pueden darse en cualquiera de nuestras aplicaciones web o incluso en los diferentes servicios que utilicemos. Un ejemplo de ello se da cuando trabajamos con servicios como S3, los servicios en la nube de Amazon. Que la hora que marca nuestro equipo no se corresponda con la hora que realmente es puede hacer que algunas aplicaciones no funcionen correctamente; para hacer que todo vuelva a la normalidad basta con sincronizar la hora del equipo. En este caso, si queremos configurar nuestro servidor para que de forma automática sincronice la hora, podemos hacer que sea posible de forma sencilla. Para ello, basta con recurrir a la utilidad Yast, una aplicación para la distribución SuseLinux que permite sincronizar el horario de nuestro servidor con el de un servidor externo.

SuseLinux, sincronizando con Yast

Para la sincronización de la hora utilizando Yast, en primer lugar deberemos ejecutar la aplicación. Para ello, basta con que escribamos Yast en la línea de comandos. Una vez abierta la aplicación, vamos a System y luego a Date and Time.

suselinux-yast-1

Dentro de la pestaña de Date and Time, tendremos que elegir cuál es la zona horaria en la que nos encontramos. Una vez seleccionada, vamos a Change en la configuración de NTP.

suselinux-yast-2

Aquí, tendremos que indicar un servidor público NTP y seleccionamos que sincronice automáticamente con el mismo. Después de esto vamos a Configurar.

suselinux-yast-4

En la siguiente pantalla que aparezca tenemos que indicar que sincronice en este preciso momento Y también cuando el equipo se arranque.

suselinux-yast-4

A partir de ahora, cada vez que queramos hacer un date en la línea de comandos veremos nuestra hora correctamente.

Más funciones de Yast

Aunque en este caso solo hemos utilizado Yast para sincronizar el horario de un servidor en SuseLinux, la herramienta tiene muchas más funcionalidades. Por ejemplo, Yast es de gran utilidad en la administración de servidores, tanto de servidores cloud como de servidores web como Apache. Además, también puede ayudarnos a realizar configuraciones en nuestro servidor de correo de una forma mucho más sencilla, gestionar usuarios y grupos de usuarios o establecer políticas de seguridad para la protección del alojamiento.

Asimismo, podemos utilizar Yast, tanto en la distribución SuseLinux como en cualquier otra de Linux, para instalar o desintalar programas o aplicaciones en el servidor, generar discos de arranque o cargar controladores de fabricante en un servidor; por ejemplo los ficheros de configuración del sistema operativo. En el caso de que seas un gamer, también puedes utilizar Yast para mejorar tu equipo: configurar tarjetas de sonido, ratones, capturadoras de vídeo para tus streamings… pero también es válido para configuraciones más simples como impresoras, escáners o redes WiFi o conexiones VPN.

Como ves, puedes utilizar esta herramienta para muchas más cosas que sincronizar relojes en SuseLinux.

Importar una base de datos a SQL Azure (II de II)

Publicado enSistemas TI

En un artículo anterior veíamos cómo podíamos importar una base de datos a SQL Azure utilizando un Wizard para ello. En esta ocasión vamos a realizar la operación directamente a través de SQL Server Management Studio (SSMS). Para ello, tendremos que generar un script.

Antes de nada, deberemos comprobar si tenemos compatibilidad con Azure. Para ello, es necesario tener instalada la versión R2 de SQL Server Management Studio. Si no cuentas con la última actualización de esta aplicación, te recomendamos que antes de realizar nada, actualices a R2. Puedes descargar la última versión de SQL Management Studio en su sitio oficial. Algo que también explicábamos en el artículo anterior sobre la importación de una base de datos SQL Azure.

De local a un script

Para poder exportar la base de datos en local y llevarla a un script en un formato que sea compatible con Azure. Pero antes debemos conectarnos desde SSMS a nuestro server local. Una vez realizada la conexión, podremos realizar la exportación de la base de datos en el formato de Azure. Para ello, utilizaremos el asistente de la aplicación que permite la generación de scripts.

En primer lugar, y una vez dentro de Microsoft SQL Server Management Studio, debemos buscar la base de datos «eventos». Recuerda que tú tendrás que elegir el nombre de tu base de datos, «eventos» es el que le hemos dado a nuestra base de datos de ejemplo. A continuación, haciendo click con el botón derecho del ratón, elegiremos tareas > generar scripts de entre las opciones que se despliegan en el menú.

importar una base de datos a sql azure-export

importar una base de datos a sql azure-script

En nuestro caso, vamos a exportar todas las tablas y los usuarios que se encuentran dentro de la base de datos. Si en tu caso solo necesitas exportar unos datos en concreto, este es momento de que lo indiques. De esperar a hacerlo más adelante, ya no será posible y tendrás que descargar todo el contenido de la base de datos.

importar una base de datos a sql azure-objetos

En este paso debemos indicar dónde queremos que se guarde el script que estamos a punto de generar. Para ello, tenemos que acceder a las opciones Avanzadas para especificar qué queremos exportar en el formato para Azure. Así, podremos hacerle saber que queremos incluir tanto el esquema como todos los datos que se recogen en la base de datos.

importar una base de datos a sql azure-scripting

importar una base de datos a sql azure-opciones

Con esto, nuestro script ya está listo. Ahora, es el momento de iniciar la importación de la base de datos que hemos exportado previamente en nuestro servidor SQL Azure.

importar una base de datos a sql azure-resumen

importar una base de datos a sql azure-guardar script

Importar una base de datos a SQL Azure

Una vez hemos descargado la base de datos, deberemos seguir los siguientes pasos para subirla a SQL Azure. Para ello, en primer lugar, debemos conectar nuestro servidor con el servicio SQL Azure. Conectar con el servidor es algo tan simple como iniciar iniciemos sesión.

SQL Server 2008 R2-importar una base de datos a sql azure

Una vez dentro de nuestra suscripción, y al igual que cuando hemos realizado la importación a través de Wizard, necesitamos crear una nueva base de datos. Como en el anterior tutorial, hemos llamado a esta nueva base de datos «eventos». En tu caso puedes ponerle el  nombre que prefieras.

Crear base de datos-importar una base de datos a sql azure

Por último abrimos nuestro script y lo ejecutaremos en el servidor SQL Azure cuando aparezca el mensaje de que los comandos han sido completados de forma correcta.

importar una base de datos a sql azure

De esta forma, nuestra base de datos local en SQL Server, ya estará importada en Azure.

importar una base de datos a sql azure-explorador

Aquí termina nuestro tutorial paso a paso de cómo importar una base de datos a SQL Azure. Y ya sabes, no dudes en escribir si tienes alguna duda o consulta; estaremos encantados de atenderte.

Trabajando con Windows Azure y PHP primer deploy

Publicado enSistemas TI

Una de las primeras dudas que nos entran a la hora de pensar en Azure, es si Windows Azure es algún tipo de instancia virtual a la que podemos acceder vía escritorio remoto y configurar lo que necesitemos en nuestro servidor. Sentimos decirte… que no.

Azure es un concepto distinto a esto; un planteamiento o paradigma nuevo a la hora de pensar en el alojamiento de nuestras aplicaciones web en internet. Exige en un principio estar abiertos a un cambio, un cambio necesario que se impondrá sin ninguna duda durante los próximos años.

Azure es un entorno formado por varios roles a los que subiremos según el tipo de rol de nuestra instancia, nuestra aplicación, nuestra base de datos, nuestros archivos estáticos y nuestros procesos backend. Todo está pensado para ser modular y escalable sin provocar dolores de cabeza al desarrollador. Estos roles se comunicarán entre sí mediante Rest vía HTTP o sockets TCP/IP. El coste será por horas de servicio y, aunque las instancias estén paradas se seguirán cobrando.

En Windows Azure principalmente tenemos los siguientes roles:

  • Web Role: Destinado a servir aplicaciones web frontales, escritas en .NET, PHP, Ruby, Perl, Python o cualquier lenguaje que soporte FastCGI.
  • Worker Role: Destinado a servicios que funcionen en el backend, los primeros que se nos vienen a la mente pueden ser mysql o memcached.

Adicionalmente tenemos estos otros servicios en Windows Azure:

  • SqlAzure: Una versión de SQL Server 2008 implementada en Azure.
  • Storage: Un repositorio de archivos con el que podremos trabajar desde nuestras aplicaciones web.

En este primer acercamiento me voy a centrar en el WebRole y por la naturaleza de nuestra aplicación web, será de tipo FastCGI para poder ejecutar aplicaciones PHP.

Para programar en php bajo entorno Microsoft uso Visual Studio 2008 + vs.php o netbeans (en este caso usaré lo primero). Si no usas visual studio, dispones de herramientas que te permiten trabajar de una forma similar pero utilizando Eclipse. Recuerda que si estás en la universidad o has terminado hace poco, existen descargas gratuitas completas de Visual Studio y horas de servicio Azure en dreamspark.

Lo primero es crear un servicio tipo Windows Azure en el panel de control de la plataforma azure.

windows azure-platform

Una vez creado el servicio vemos que disponemos de dos entornos, uno de integración y otro de producción. Nos cobrarán por tener instancias en ambos entornos, estén levantadas o no.

windows azure-frontal

Para poder trabajar con Azure desde visual studio, nos tenemos que descargar el SP1 y las Windows Azure Tools for Microsoft Visual Studio que nos permitirán disponer de un entorno basado en IIS similar a azure.

Una vez hecho esto, en Visual Studio podremos seleccionar un tipo de proyecto Windows Azure Cloud Service.

Tras seleccionar el tipo de proyecto, nos preguntará qué rol vamos a asignar a este proyecto. En nuestro caso al ser una aplicación php, le asignamos el rol WebCGI role.

windows azure-visual studio

windows azure-proyecto

Una vez completado este paso, se nos crearán dos proyectos en el árbol de soluciones de Visual Studio y se nos mostrará el contenido del archivos de configuración del WebRole: el Web.roleconfig. Este es un archivo xml tipo al Web.config y en el que aparece entre las llaves FastCGI el siguiente comentario:


<-- Set the "Enable Full Trust" property to true on the corresponding
 Web Role in the Cloud Service project.
 -->

<-- Define the fastCgi application here. The application must be located
 under the role root folder or subfolder. The handler is defined in
 the Web.config file.

 Ensure that all of the handler binaries have their "Build Action" Solution
 Explorer file property set to "Content".

<application fullPath="%RoleRoot%approotcgi-handler.exe" arguments="arg1 arg2 ..." />
 -->

Nos pide que realicemos las siguientes tareas:

  • Que subamos la aplicación fastCGI encargada de procesar las peticiones a nuestra aplicación. Los binarios de la aplicación deben estar en el directorio raíz de nuestro proyecto (representado por la constante %RoleRoot%approot) y debemos configurar el handler en el web.config de la aplicación.
  • Tenemos que activar la propiedad «Full Trust» en la configuración del WebRole.

Vamos a ello:

1) Primero nos descargamos los binarios o instalamos el msi (te recomiendo lo segundo) la última versión de PHP en windows.php.net

2) Una vez descargado o instalado php, copiamos sus binarios tal cual al directorio raíz de nuestro proyecto (a un directorio llamado /php). Si has instalado PHP, normalmente te dejará los binarios en «c:archivos de programaphp».

3) Si ya tenemos el directorio PHP en nuestra raíz del proyecto, indicaremos donde se encontrará la aplicación en el Web.roleconfig


<?xml version="1.0"?>
<configuration>
 <system.webServer>
 <fastCgi>
    <application fullPath="%RoleRoot%approotphpphp-cgi.exe" arguments="" />
  </fastCgi>
</system.webServerp>
</configuration>

4) En el web.config descomentamos las líneas dedicadas al Handler FastCGI y las dejamos como siguen:

<add name="FastGGI Handler"
 verb="*"
 path="*.php"
 scriptProcessor="%RoleRoot%approotphpphp-cgi.exe"
 modules="FastCgiModule"
 resourceType="Unspecified" />

5) En las propiedades del Rol WebCgi nos aseguramos que está activada la propiedad Full Trust de .net

windows azure-full trust

6) Subimos nuestra aplicación php. En este caso, subiré una sencilla aplicación que hará una tirada basándose en el bastante poco óptimo sistema aleatorio de PHP para otorgarme puntos en diferentes niveles de ataque y defensa.

Después de hacerlo, escribirá el resultado en un archivo de texto pero estará disponible tan sólo de forma temporal. Si quisiéramos almacenarlo de forma persistente, deberíamos almacenarlo en Azure Storage.

El código es el siguiente:


<php
$poderes = array(
 "resistencia al fuego",
 "resistencia al frio",
 "aguante",
 "formulas de excel",
 "mirada penetrante",
 "escalabilidad",
 "ROI",
 "SEO",
 "SEM",
 "SMO",
 "pensamiento deslumbrante");

$resultado = null;

for($i=1;$i<;10;$i++){

 $puntos     = $i*1E2*rand(5,11);
 $poder      = $poderes[rand(0,10)];
 $resultado .= $puntos . " puntos en " . $poder;
 $resultado .= "n";

 echo "Asier ha obtenido " . $puntos . " puntos en " . $poder . "&<br/>";

}

$fp = fopen("resultados.txt","w+");
fwrite($fp, $resultado, strlen($resultado));
fclose($fp);

7) Si estamos ejecutando Visual Studio como Administrador podemos compilar el proyecto. Sino, lo cerramos y ejecutamos Visual Studio con privilegios de Administrador. Una vez compilada la aplicación se nos abrirá nuestro navegador ejecutando nuestra aplicación php.
Por defecto, si no le indicamos un archivo raíz, nos dará un error que nos detalla que no tenemos permiso para listar el directorio raíz.
Para que nos cargue un archivo inicial, podemos agregarle la clave defaultDocument a la configuración system.webServer en el web.config.

<system.webServer>
<defaultDocument enabled="true">
 <files>
    <add value="index.php"/>
   </files>
 </defaultDocument>

8) Vale en principio tenemos todo funcionando en local, ya que vemos que se ejecuta la aplicación y que escribe las puntuaciones en el archivo de texto.
Ahora necesitamos subir todo esto a Azure.

Si volvemos al panel de control de windows.azure.com, y pulsamos en el botón deploy en el entorno de integración vemos que se nos pide subir dos archivos; El paquete de la aplicación y el archivo de configuraciones.

windows azure-panel de control

Desde Visual Studio podemos generar muy fácilmente estos dos archivos al hacer click en la opción Publicar, que aparece al hacer click en el botón derecho sobre el proyecto de Azure.

Cuando lo hagamos, se nos abrirá la ventana en el navegador del Panel de control de Azure y una ventana en el explorador de windows con la ruta donde se han generado los archivos.

Una vez subidos le damos a Run, e iniciará la instancia. Tarda varios minutos.

Tras la espera podemos ejecutar nuestra aplicación desde la ruta que nos indique el panel de control.

windows azure-ruta

Hay otras herramientas de las que podemos beneficiarnos al crear aplicaciones en Azure, una de ellas es el gran módulo de rewrite de IIS7 con el que podemos utilizar urls amigables en nuestras aplicaciones web.

Vamos a hacer que nuestra aplicación otorgue le de poderes a un usuario que le indiquemos por URL.

Para ello tenemos que añadir una regla de rewrite en el web.config, dentro de system.webserver, en la que le indiquemos por la ruta /user/[nick] se le pasará como parámetro GET al script index.php.


<rewrite>
 <rules>;
    <rule name="Rewrite">
       <match url="^user/([a-z]+)" />
    <action type="Rewrite" url="index.php?user={R:1}" />
    </rules>
 </rules>
</rewrite>

En la aplicación recuperamos el parámetro GET. Tendríamos el siguiente código en el index.php


<php
$poderes = array(
  "resistencia al fuego",
  "resistencia al frio",
  "aguante",
  "formulas de excel",
  "mirada penetrante",
  "escalabilidad",
  "ROI",
  "SEO",
  "SEM",
  "SMO",
"pensamiento deslumbrante");

$resultado = null;

$usuario = "asier";
if(!empty($_GET) ; is_array($_GET) ; key_exist("user", $_GET)){
  $usuario = ucfirst($_GET["user"]);
}

for($i=1;$i < 10;$i++){

  $puntos     = $i*1E2*rand(5,11);
  $poder      = $poderes[rand(0,10)];
  $resultado .= $puntos . " puntos en " . $poder;
  $resultado .= "n";

  echo $usuario . " ha obtenido " . $puntos . " puntos en " . $poder . "<br/>

}

$fp = fopen("resultados.txt","w+");
fwrite($fp, $resultado, strlen($resultado));
fclose($fp);

Una función que me resulta imprescindible también es poder visualizar los logs de nuestra instancia. Esto podemos hacerlo desde el panel de control de Azure y una cuenta de storage.

Con esto hemos visto como ejecutar aplicaciones web sencillas php en Azure, en las próximas entregas veremos como usar los Worker Roles, SQL Azure y cómo trabajar con php azure para almacenar y recuperar archivos en Azure Storage.

Cosas que echamos en falta en Windows Azure

Entre las cosas que he echado en falta, y desconozco por ahora si Azure las permite de forma nativa o con herramientas de terceros, pueden ser las siguientes:

  • Un módo más ágil para hacer deploy de nuestras aplicaciones. Los desarrolladores web php estamos acostumbrados a usar subversion o rsync para hacer deploy de nuestras aplicaciones. El hecho de tener que generar un paquete y luego subirlo, es un paso que estaría genial si se automatizase. Lo más lógico podría ser que desde la opción «publicar» de visual studio se subiesen los cambios al entorno de integración de azure. O al menos, a Azure Storage; para que luego se haga el deploy definitivo con un botón desde el panel de control web de azure.
  • Posibilidad de personalizar el directorio público a la que se tendrá acceso desde el servidor web. En algunos frameworks como Symfony, el directorio público no es el directorio raíz de la aplicación por seguridad.
  • Algún modo para gestionar los permisos de los directorios de la aplicación. No es para nada seguro tener permisos de escritura en todos los directorios de nuestra aplicación.
  • Posibilidad de ejecutar scripts php o powershell vía cmd en la instancia. Imaginemos que necesitamos vaciar un directorio en el que almacenamos archivos de caché o archivos temporales, podemos hacerlo mediante algún script que se ejecute vía web, pero igual puede interesarnos realizar estas gestiones o alguna otra mediante línea de comandos.

Problema con SFTP en OpenSUSE x64

Publicado enSistemas TI

OpenSUSE x64 es una de las múltiples distribuciones de SUSE Linux; una que además cuenta con la colaboración de AMD en su desarrollo, además de un mantenimiento basado en GNU. Actualmente OpenSUSE funciona como una comunidad de ámbito mundial que se encarga de promover el uso del sistema operativo Linux. Por ello, se considera a la distribución como una de las mejores para trabajar en equipo, de forma totalmente transparente y amigable con la comunidad open source.

En relación al control del proyecto, este recae en su totalidad en la comunidad que hay alrededor de openSUSE. Desde los probadores de las nuevas funcionalidades, escritores, los especialistas en usabilidad a cada uno de los desarrolladores que forman parte del proyecto. Todo ello hace que en el proyecto se junten profesionales con experiencia de todos los niveles, cuyas lenguas maternas nada tienen que ver e incluso distintos desde un punto de vista cultural. Y esa es la magia del código abierto.

En las nuevas versiones de openSuse x64 es habitual encontrarnos con problemas relaciondos con el protocolo SFTP. Estos se deben, generalmente, a un problema en la configuración del sshd_config. Por ello, es posible que el error que se obtengas al intentar acceder a tu servidor sea similar al que te mostramos a continuación:


sshd[25558]: error: subsystem: cannot stat /usr/lib/sftp-server: No such file or directory

Solución al problema con SFTP en openSuse x64

La solución a esta incidencia en el servidor es mucho más sencilla de lo que en un primer momento pueda parecer. Si quieres que openSUSE x64 vuelva a funcionar de la forma correcta; solo tienes que localizar el lugar en el que se encuentra el archivo «sftp-server». Una vez allí, busca la ruta en el sshd_config y procede a corregirla. En caso de que no sepas dónde se ubica el archivo, puedes utilizar la línea de comandos para dar con él de la forma más simple. Para ello, utiliza el siguiente script:


find / -name sftp-server

En nuestro caso la ubicación del archivo se encuentra en la ruta /usr/lib64/ssh/sftp-server

Para arreglar el problema basta con hacer un enlace simbólico al archivo como el siguiente:


ln -s /usr/lib64/ssh/sftp-server /usr/lib/sftp-server

Si lo prefieres, también puedes optar por localizar la siguiente línea en el sshd_config y proceder a corregirla:


Subsystem sftp /usr/lib/sftp-server

Finalmente, tendrás que reiniciar el servicio sshd para que se apliquen los cambios introducidos y que se solucione el problema.

Hace unas semanas también hablamos sobre openSUSE. Así que, si te interesa saber cómo instalar LAMP en opensuse 11.2 te enseñamos a hacerlo. Y, si estás interesando en  cualquier otro tema de programación, no dudes en consultar nuestro blog tecnológico.

Plesk 9.x rompe Yast2

Publicado enSistemas TI

Si estás utilizando YaST, la aplicación para la distribución de Linux openSUSE que facilita la adminsitración de un sistema y la instalación de software, es posible que su uso te cause algún que otro problema. Especialmente cuando tratas de instalar Plesk 9.x sobre openSUSE. Es decir, que al tratar de realizar una instalación de Plesk, la ejecución de YaST2 fallará sobre el panel de control.

Lo más probable es que al realizar tal acción te encuentres con un error similar al fragmento de código que te mostramos a continuación:

# yast
//sbin/yast: line 27: //lib/YaST2/bin/yast2-funcs: No such file or directory
//sbin/yast: line 250: set_lang_from_sysconfig: command not found
//sbin/yast: line 279: check_ncurses: command not found
package yast2-qt is not installed
package yast2-gtk is not installed
Something is wrong with the YaST user interface.

Aunque por el momento este error no cuenta con una solución definitiva, es posible realizar algunas modificaciones como solución provisional. Para evitar la aparición de este tipo de mensajes, a continuación te mostramos qué es lo que puedes hacer.

Cómo puedes arreglar el problema de YaST

Al intentar instalar el panel de control Plesk sobre la distribución de openSUSE, Plesk acostumbra a modificar $PATH. Generalmente, el panel de control suele añadir, de forma incorrecta, una doble barra que terminará siendo la causante del error. Para solucionar este problema, basta con quitar dicha barra y, seguidamente, comprobar que todo funciona de la forma correcta. Para ello, tendrás que hacer lo que te indicamos en las siguientes líneas de código:

export PATH=/sbin:/bin:/sbin:/usr/sbin:/usr/local/sbin:/root/bin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/usr/games:/usr/lib/mit/bin:/usr/lib/mit/sbin

Obviamente, lo anterior no es la solución ideal; ya que tan solo es un pequeño parche que sirve de solución al problema de forma momentánea. Es decir, que solo funcionará mientras tengamos la sesión de Plesk abierta y que se perderá cuando salgamos de nuestra suscipción en Plesk. para que se conserven estos cambios que acabamos de introducir; es decir para que se mantengan cuando cerremos sesión, lo que tenemos que hacer es meterlo en el .bashrc. De esta forma incluso cuando cerremos nuestra sesión en el panel de control, las modificaciones que hemos introducido para solucionar el problema de YaST seguirán siendo válidas.

Para ello, deberemos realizar lo siguiente:

echo 'export PATH=/sbin:/bin:/sbin:/usr/sbin:/usr/local/sbin:/root/bin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/usr/games:/usr/lib/mit/bin:/usr/lib/mit/sbin' >> ~/.bashrc

Este problema es un bug que afecta a las versiones 9.0, 9.1, 9.2 y 9.3 de Plesk. Un error que, casi con total seguridad, quedará arreglado en la próxima actualización del panel de control; haciendo que no sea necesaria realizar ninguna modificación en el código.

Virtualizando SQL Server 2008 sobre Hyper-V R2

Publicado enSistemas TI

Si vas a virtualizar un entorno SQL Server 2008, es recomendable que tengas en cuenta los siguientes aspectos:

Los diferentes tipos de discos

  • De espacio fijo. En SQL Server 2008 es muy importante el I/O (entrada y salida) de los volúmenes con los que se está trabajando. Por ello, nuestra recomendación es utilizar siempre discos de espacio fijos para guardar toda la información.
  • Controladora SCSI. Al igual que sucede en los entornos físicos, en un entorno virtual sólo podremos colocar hasta 4 discos IDE. Por lo que si necesitamos más discos lo mejor es utilizar un bus SCSI que permita el almacenamiento de los datos.
  • Usar varios VHD. Es decir, uno para el propio sistema y los archivos de instalación de SQL; otro para tempdb, otro para los logs, otro para los datos… Esto, al igual que en un entorno real permite mejorar el I/O, sobre todo si disponemos de una cabina y dedicamos discos separados (spindles) o LUN para mejorar aún más el I/O. Incluso en el caso de que no dispongamos de discos separados sigue siendo recomendable utilizar diferentes VHDs como forma de almacenamiento de la información.
  • Sistema de archivos. NTFS con unidad de asignación a 64 K; ya que esta tecnología nos permitirá obtener un mejor rendimiento.

El tipo de red

  • Es importante que la red sea Gigabit y que la velocidad haya sido configurada en full-duplex.
  • Siempre que sea posible usaremos los adaptadores sintéticos que usan los Servicios de Integración instalados en la máquina virtual para funcionar. Este tipo de dispositivos ofrecen mucho mejor rendimiento que los dispositivos emulados. Estos últimos sólo son útiles por razones de compatibilidad en sistemas que no soportan los Servicios de Integración (anteriores a MS Windows Server 2003 R2, kernels de Linux no soportados, etc…).
  • Si es posible usar teaming para mejorar el rendimiento y ofrecer redundancia. Algo que es especialmente interesante para realizar conexiones a una cabina vía iSCSI.

Memoria de la máquina virtual

La memoria se comporta exactamente igual en un entorno virtual que dentro de una máquina física. A diferencia de otros hypervisores, en Hyper-V no se permite el sobreuso (aunque MS ya está trabajando en ello); por lo que la cantidad asignada a una máquina virtual (VM) se reserva en el nodo anfitrión por completo. Recuerda que es importante dejar al propio nodo anfitrión un mínimo de 2 GB libres para que puedan ejecutarse correctamente el sistema y cada una de sus tareas.

Si sigues estos apuntes no debería haber ningún problema para virtualizar un entorno SQL Server sobre Hyper-V.

Tecno-amig@, ¿ya sabes cómo usar Hyper-V con un adaptador de red inalámbrico?

Obtener los paths definidos desde Plesk

Publicado enSistemas TI

Saber cómo puedes obtener los paths definidos para las aplicaciones y los servicios del panel de control Plesk puede ser de gran utilidad. Especialmente, conocer dónde se encuentra cada cosa y cuáles son las diferentes variables de Plesk. Igualmente, en el caso de que gestionéis diferentes entornos entre los que no sea posible realizar una configuración homogénea. En todas estas ocasiones, pueden facilitaros la labor de forma muy sustancial.

Accediendo a los paths definidos

Recuerda que antes de realizar cualquier modificación en el archivo, es necesario que consultes la documentación de Plesk.  Asimismo, no tienes que olvidar que los scripts que te facilitamos a continuación únicamente tienen la función de mostrar dónde se encuentra la información relacionada con el panel de control Plesk. De forma que cualquier cambio realizado en Plesk, o en los archivos relacionados con él, podría afectar al comportamiento del servicio; además de a su disponibilidad. Para evitar cualquier incidencia, sigue las recomendaciones que se especifican en la documentación de Plesk.

En relación a cómo se estrcutura la información, se sigue el siguiente formato:

variable [whitespace characters] value

Esto es, el nombre del campo seguido por espacios o tablas, seguidos a su vez por el valor del campo. Cualquier otro elemento puede eliminarse sin que afecte a la sintaxis del script.


# cat /etc/psa/psa.conf

#

# Plesk tree
PRODUCT_ROOT_D /usr/local/psa

# Directory of SysV-like Plesk initscripts
PRODUCT_RC_D /etc/init.d

# Directory for config files
PRODUCT_ETC_D /usr/local/psa/etc

# Directory for service utilities
PLESK_LIBEXEC_DIR /usr/lib64/plesk-9.0

# Virtual hosts directory
HTTPD_VHOSTS_D /srv/www/vhosts

# Apache configuration files directory
HTTPD_CONF_D /etc/apache2

# Apache include files directory
HTTPD_INCLUDE_D /etc/apache2/conf.d

# Apache binary files directory
HTTPD_BIN_D /usr/bin

#Apache log files directory
HTTPD_LOG_D /var/log/apache2

#apache startup script
HTTPD_SERVICE apache2

# Qmail directory
QMAIL_ROOT_D /var/qmail

# Location of qmail maildirs
PLESK_MAILNAMES_D /var/qmail/mailnames

# Path to rblsmtpd
RBLSMTPD /usr/sbin/rblsmtpd

# Courier-IMAP
COURIER_IMAP_ROOT_D /

# Proftpd
FTPD_CONF /etc/proftpd.conf
FTPD_CONF_INC /etc/proftpd.include
FTPD_BIN_D /usr/bin
FTPD_VAR_D /var/run/proftpd
FTPD_SCOREBOARD /var/run/proftpd/scoreboard

# Bind
NAMED_RUN_ROOT_D /var/lib/named
NAMED_OPTIONS_CONF /etc/named.conf.include.plesk-options
NAMED_ZONES_CONF /etc/named.conf.include.plesk-zones

# Webalizer
WEB_STAT /usr/bin/webalizer

# Logrotate
LOGROTATE /usr/local/psa/logrotate/sbin/logrotate

# MySQL
MYSQL_VAR_D /var/lib/mysql
MYSQL_BIN_D /usr/bin

# PostgreSQL
PGSQL_DATA_D /var/lib/pgsql/data
PGSQL_BIN_D /usr/bin

# Backups directory
DUMP_D /var/lib/psa/dumps

# Mailman directories
MAILMAN_ROOT_D /usr/lib/mailman
MAILMAN_VAR_D /var/lib/mailman

# Python binary
PYTHON_BIN /usr/bin/python2.6

# Tomcat root directory
CATALINA_HOME /usr/share/tomcat6

# DrWeb
DRWEB_ROOT_D /opt/drweb
DRWEB_ETC_D&nbsp; /etc/drweb

# GnuPG binary
GPG_BIN /usr/bin/gpg

# Tar binary
TAR_BIN /bin/tar

# AWStats
AWSTATS_ETC_D /etc/awstats
AWSTATS_DOC_D /usr/share/apache2/icons/awstats

# openssl binary
OPENSSL_BIN /usr/bin/openssl

LIB_SSL_PATH /lib/libssl.so
LIB_CRYPTO_PATH /lib/libcrypto.so

CLIENT_PHP_BIN /usr/local/psa/bin/php-cli
CGI_PHP_BIN /usr/bin/php-cgi5
AWSTATS_TOOLS_D /usr/share/doc/packages/awstats/tools
AWSTATS_BIN_D&nbsp;&nbsp; /srv/www/cgi-bin

Cambiar la ejecución de PHP a FastCGI en Plesk Windows

Publicado enSistemas TI

En IIS, el servidor web de Microsoft, es muy recomendable cambiar la forma en que se ejecutan las aplicaciones PHP a FastCGI. Entre otas cosas porque esta acción ayuda a mejorar notablemente el rendimiento del servidor web. Además, en entornos en los que hay corriendo más de una aplicación PHP, esto nos permite separar los procesos. Además, al cambiar el modo de ejecución se facilitará enormemente las tareas de administración. Igualmente, esto permitirá aislar una aplicación de otra.

Si utilizas el panel de control Plesk, este utiliza ISAPI por defecto para la ejecución de las aplicaciones. Un sistema que te permite elegir entre el protocolo CGI y FastCGI. Si no sabes cuál de las dos opciones utilizar, nuestro consejo es siempre utilizar FastCGI. El uso de este protocolo contribuye a la mejora del rendimiento del servidor, haciendo que tu sitio web caya mucho más rápido. Así que, siempre y cuando sea posible y no haya otra alternativa, establece FastCGI como forma de ejecución de una aplicación programada en PHP.

Establecer PHP a FastCGI por defecto

Si quieres establecer «FastCGI» por defecto en el panel de control Plesk en Windows, primero es necesario establecerlo en el registro. Para ello, en primer lugar, ve a la siguiente ruta dentro del registro de Windows:

HKEY_LOCAL_MACHINESOFTWAREPLESKPSA ConfigConfig

Una vez allí, deberemos establecer lo siguiente:

PLESKCP_PHP_MODE -&gt; fastcgi

A continuación, vamos a la consola de Windows (CMD). Desde el directorio %plesk_dir% deberemos ejecutar el siguiente comando. Esto servirá para que los cambios que se han introducido en el panel de control Pesk se apliquen de forma correcta.

reconfigurator.exe /check=Services

Versiones recientes de Plesk

Actualmente, las diferentes versiones del panel de control que van publicándose, permiten activar esta funcionalidad desde la propia interfaz. Con este cambio, cambiar el modo de ejecución de PHP a FastCGI es mucho más sencillo; ya que no es necesario recurrir a modificaciones de código. Para ello, solo es necesario modificar la configuración del hosting dentro del apartado sitios web y dominios del panel de control. Una vez allí, deberemos ir al apartado de estadísticas y scripting web para cambiar el modo de ejecución de la aplicación.

Llegados a este punto, en ejecutar PHP como deberemos seleccionar la opción aplicación FastCGI y hacer click en aceptar. De esta manera, se aplicarán de forma correcta los cambios que acabamos de introducir en la configuración del servidor.

Este cambio es igualmente válido en el caso de un alojamiento Windows como en Linux; aunque algunas opciones son diferentes en función del sistema operativo del servidor. En este caso no afecta a la posibilidad de activar FastCGI desde el propio panel de control Plesk.

Nuestro compromiso con el Green Computing

Publicado enSistemas TI

Estos últimos meses hemos estado leyendo sobre cómo empresas tecnológicamente punteras apuestan e invierten en el Green Computing.

¿Por qué Green Computing?

En Linube también apostamos seriamente en este sentido a la hora de construir infraestructuras de sistemas y desarrollar aplicaciones web. Así, además de contribuir a reducir el impacto medioambiental conseguimos reducir los costes que nuestros clientes hacen en infraestructura TI.

En nuestras soluciones de Sistemas TI

En el campo de sistemas TI nuestra mayor apuesta reside en la virtualización con HyperV. Esto nos permite principalmente reducir el número de servidores en nuestro centro de datos. Esto se traduce en mayor redundancia, mejor seguridad, gestión y recuperación frente a desastres.

Gracias a nuestras soluciones facilitamos la migración de los servidores físicos de nuestros clientes a nuestra infraestructura virtual. Todo ello sin riesgos de conflictos de software en caso de posibles incompatibilidades o requisitos por parte de antiguos desarrollos a medida. En estos casos podemos separar e incluso reducir el margen de inestabilidad de aplicaciones que se han desarrollado hace décadas. Incluso si es necesario actualizar la plataforma sobre la que están implementadas. Desde nuestra experiencia, hemos comprobado que este tipo de aplicaciones utilizan hardware antiguo que conlleva un alto impacto medioambiental.

Además de reducir el hardware de servidor, podemos reducir el hardware de las terminales de trabajo. Disponemos de soluciones que permiten virtualizar las aplicaciones ofimáticas o el propio sistema operativo que el usuario utiliza. Sustituyendo los equipos con los que trabajan por ordenadores de menor consumo eléctrico y menor impacto medioambiental.

También en nuestros desarrollos

La mayoría de los proyectos web que nos piden nuestros clientes tienen como objetivo la sustitución de los programas instalados en los ordenadores que utiliza el personal en cada una de sus empresas, por aplicaciones web accesibles a través del navegador en dichos equipos. Con esto se pueden reducir los requisitos de hardware de las estaciones de trabajo e incluso sustituirlos por netbooks. Estos son unos aparatos que tienen un consumo eléctrico e impacto menores cara al medio ambiente. Suponiendo además una reducción de gastos en términos económicos más que considerable.

A la hora de desarrollar y diseñar la arquitectura de nuestras aplicaciones pensamos siempre en cómo reducir el consumo de recursos de los servidores. Para ello, distribuimos las diferentes tareas a realizar entre varios de nuestros servidores; y optimizamos al máximo el código para que el acceso a disco y al procesador sea el estrictamente necesario.

En Linube siempre estamos a la vanguardia de la innovación y el desarrollo sostenible, comprometidos con el medio ambiente y ¡el green computing!

Configuración rápida de Virtual Host en Apache

Publicado enSistemas TI

LAMP, es una infraestructura de internet open source compuesta por Apache + PHP + MySQL. Es por ello que, si has decidido pasarte a LAMP, cuando finalices la instalación; es posible que te veas en la necesidad de crear alojamientos virtuales, o virtual hosts, para todos tus dominios. El servidor web Apache acostumbra a guardar todos los archivos de configuración de los Virtual Host en una ruta como la siguiente: /etc/apache2/vhosts.d/ . Por ello, en el caso de que no hayas configurado ninguno, verás allí una serie de plantillas; si quieres que puedes usarlas como base para la configuración. Una de ellas va unida a la instalación de un certificado SSL y la otra no requiere de un certificado de seguridad.

Configurar Virtual Host en Apache

Para que entenderlo te sea mucho más sencillo, vamos con un ejemplo. En él, vamos a crear un archivo de configuración en nombre de Linube; para ello, utilizaremos la distribución de Linux OpenSuse.

En primer lugar, tendremos que movernos al directorio de configuración que se encuentra dentro del virtual host. Algo que podremos hacer de la siguiente manera; recurriendo para ellos a unas sencillas líneas de código:

cd /etc/apache2/vhosts.d

A continuación, deberemos copiar la plantilla que nos proporciona Apache a un nuevo archivo. De esta forma, podremos configurar el servidor web como nosotros queramos. Debería ser algo similar a esto:

cp vhost.template linube.conf

Seguidamente, tendremos que hacer lo mismo en la otra distribución. Lo habitual es recurrir a una ruta de aspecto similar a esta /var/www/vhosts/

mkdir -p /srv/www/vhosts/linube/

Llegados a este punto, es importante tener en cuenta que el archivo de configuración siempre debe terminar con el sufijo «.conf». De no ser así, Apache no podrá leerlo; y, por tanto, no será posible la creación de los alojamientos virtuales que necesitamos para alojar nuestros dominios.

Cuando ya esté creado el host, deberemos editarlo y sustituir el dominio de ejemplo que proporciona la aplicación, «dummy-host.example.com», por el dominio nuestro. Además, también deberemos modificar las rutas, que en nuestro ejemplo es la siguiente /srv/www/vhosts/linube/. Asimismo, tenemos que asegurarnos, sobre todo, que se establece correctamente el DocumentRoot y que la ruta del directorio tiene un aspecto similar a esta:  <Directory «/srv/www/vhosts/dummy-host.example.com»>.

Por último, bastará con reiniciar Apache para que se apliquen correctamente todos los cambios que hemos introducido. La acción de reiniciar un servidor es la forma más común de asegurarnos de que se apliquen los cambios introducidos en su configuración. Para ello, realizaremos lo siguiente:

/etc/init.d/apache2 restart

Con esto, ya habremos acabado de configurar un Virtual Host en Apache para nuestros dominios.

Instalar LAMP (Linux+Apache2+MySQL5+PHP5) en openSuse 11.2

Publicado enSistemas TI

LAMP es el acrónimo formado por algunas de las herramientas más importantes y utilizadas en estos momentos para la creación de sitios web. Este completo sistema de infraestructura de internet está compuesto por el sistema operativo Linux, el servidor web Apache, MySQL como gestor de bases de datos y PHP como lenguaje de programación. Un conjunto de tecnologías que permiten desarrollar todo tipo de sitios web sin necesidad de más herramientas.

Como herramienta en sí misma, LAMP, concentra todas las ventajas del software de código abierto. Además, el uso de LAMP proporciona todos los conocimientos necesarios para desplegar cualquier tipo de aplicación web. Desde la puesta en marcha de un servidor Apache al desarrollo de la aplicación, así como de su posterior instalación en el servidor.

Así, puedes utilizar LAMP en diferentes distribuciones Linux, como por ejemplo openSUSE, una de las distribuciones más utilizadas del software libre. OpenSUSE permite, entre otras cosas, realizar desarrollos totalmente personalizados y posibilita el mantenimiento de nuevos sistemas operativos basados en Linux.

Instalación de LAMP en openSUSE

1. En primer lugar, deberás instalar los paquetes necesarios para poder obtener LAMP. Es decir, necesitarás contar con tres elementos: el servidor web Apache, el languaje de programación PHP y el gestor de bases de datos MySQL. Para ello, puedes ejecutar el siguiente código y realizar la petición a través de Bash:


# zypper install apache2 php5 mysql

2. Una vez los paquetes hayan sido descargados, el siguiente paso es levantar tanto Apache como MySQL. Para poder hacerlo, puedes recurrir nuevamente a Bash; escribiendo el siguiente fragmento de código cada uno de los elementos comenzará a ejecutarse.


# rcapache2 start
# rcmysql start

3. A continuación, será necesario crear una configuración segura en la que poder realizar la instalación de MySQL como sistema de gestión de bases de datos. Algo que, una vez más, es posible hacer a través de Bash.


# mysql_secure_installation

En este punto de la instalación, se nos pedirá que generemos una clave para el usuario root de MySQL. Entonces, deberemos eliminar cada uno de los usuarios anónimos creados por defecto y también la base de datos ‘test’ que también que el sistema crea de forma predeterminada. Todo ello sin olvidarnos de deshabilitar el login remoto con privilegios de root. De otra forma, la instalación no se podrá realizar de manera correcta.

4. Una vez MySQL haya sido instalado, abriremos el puerto 80. Este es el puerto por defecto que permite que HTTP pueda ejecutarse. Además, este puerto permite que se comuniquen entre sí el servidor web y el cliente haciendo posible que la información pueda entrar y salir del firewall.


# SuSEfirewall2 open EXT TCP http

# SuSEfirewall2 stop

# SuSEfirewall2 start

5. Llegados a este punto, solo nos queda comprobar que todas las aplicaciones que hemos ido instalado en los pasos anteriores funcionan de forma correcta. Para ello, basta con que ejecutemos las siguientes líneas de código:


# touch /srv/www/htdocs/phpinfo.php
# echo '<php phpinfo()>' > /srv/www/htdocs/phpinfo.php

Finalmente, deberemos acceder desde el navegador a http://ipserver/phpinfo.php. En este paso es necesario prestar atención y confirmar que las versiones más recientes de PHP y MySQL aparecen como instaladas. El uso de las últimas versiones estables de lenguajes de programación y servicios añaden seguridad a los servidores y aplicaciones, además de aumentar el número de funcionalidades.

Generar un archivo CSR en IIS 6.0

Publicado enSistemas TI

La instalación de un certificado de seguridad SSL es fundamental para poder garantizar la máxima seguridad de un sitio web. Un movimiento que empezó por las tiendas online y todos los sitios web que solicitaran información sensible al usuario y que ha acabado por extenderse a todo tipo de páginas web. Actualmente existen diferentes tipos de certificados SSL en el mercado, tanto de pago como los gratuitos de Let’s Encrypt. Lo común a todos ellos que tú mismo puedes instalar tu certificado SSL o dejar que lo haga la empresa en la que lo adquieres. Por ejemplo, en Linube nos encargamos de la instalación y de la configuración de los certificados SSL que nuestros clientes adquieran en nuestro site; para que tener una web cifrada sea mucho más sencillo.

Si por el motivo que sea tienes que ser tú quien se encargue de la instalación del SSL, ten en cuenta que necesitarás un CSR. Es decir, una solicitud que posibilita la firma del certificado. En este archivo se encuentran algunos de los datos que serán incluidos en el certificado SSL. Por ejemplo, el CSR contiene información como el nombre de tu empresa, una dirección asociada a la misma o el dominio para el que se ha generado dicho certificado SSL. Además de esta información, en el CSR se incluye una llave pública que también es necesaria para la instalación del certificado. Si tu servidor web utiliza Windows como sistema operativo, y por tanto es IIS, te mostramos cómo puedes generar el CSR en IIS 6.0.

Generando un CSR en IIS 6.0

Para generar un CSR en IIS 6.0, en primer lugar tenemos que acceder al servidor web de Windows IIS. Una vez allí, debemos acudir a Propiedades del sitio > Seguridad de directorios. Aquí, es necesario hacer click en Certificado del servidor de forma que podamos Crear un nuevo certificado. En este momento tendremos que elegir la opción Preparar la petición ahora pero enviarla más tarde y, a continuación, poner un cifrado para el certificado SSL. Nuestra recomendación es que dejes la longitud del cifrado en 1024 bits. Después, rellena el resto de los datos que se solicitan en el formulario hasta finalizar la tarea.

Es importante que tengas en cuenta que donde se solicita el ‘nombre común’ (common name) deberás poner el nombre completo del dominio para el que se solicita el certificado de seguridad. En nuestro caso, el dominio sería www.linube.com; en tu caso deberás poner el nombre completo de tu dominio.

Cómo salvar la key privada

Una vez hayas terminado con el punto anterior será necesario que salves la clave privada que permitirá el funcionamiento del certificado SSL. Para ello, ve a MMC y escoge como complemento Certificates. En este punto deberás seleccionar Request > All task y exportar la información que obtengas del sistema.

Si necesitas más información acerca de cómo puedes generar un CSR en IIS 6.0, puedes acudir a la documentación oficial.

Y, si vas a decantarte por otro tipo de certificado, como un SSL de pago puedes contactarnos para informarte acerca de los tipos de certificados de seguridad que ofrecemos en Linube.