scieee AI-readable full text Open interactive document viewer

Plan de migración de un servidor web basado en Windows Server 2008 e IIS

Serrano López, Francisco Rubén

Abstract

El presente proyecto final de carrera plantea la migración de todas las páginas web de un servidor antiguo a otro moderno. Se realizo con una única máquina, con la cual se realizaban dos conexiones remotas, una de ellas para acceder al servidor antiguo y la restante para conectar con el servidor moderno. Por medio de conexiones FTP se migraron los ficheros de las páginas Web y las bases de datos desde el antiguo servidor al nuevo. Una Vez allí se configuraba para que todo funcionara de forma idéntica a cómo funcionaba en el antiguo servidor. Cuando las carpetas y los ficheros ya tenían los permisos y los arreglos necesarios, se configuraba el programa IIS7, encargado de mostrar la información por medio de los navegadores, para que muestre la información de las páginas. Una vez preparado el IIS7 se realizaban las pruebas para comprobar que todo funcionaba de forma correcta, para terminar creando una cuenta FTP que se habilitará para permitir a las empresas modificar, añadir o eliminar contenido de sus páginas Web.

Full text

1 PLAN DE MIGRACIÓN DE UN SERVIDOR WEB BASADO EN WINDOWS SERVER 2008 E IIS Por Francisco Rubén Serrano López Escuela Técnica Superior de Ingeniería Informática 2011 Director: José Luis Poza Luján Fecha: _____________________________________________________ 2 ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA INFORMÁTICA RESUMEN PLAN DE MIGRACIÓN DE UN SERVIDOR WEB BASADO EN WINDOWS SERVER 2008 E IIS Por Francisco Rubén Serrano López Proyecto Final de Carrera que presenta el desarrollo de una migración total de un servidor antiguo a otro moderno, en donde se explicarán los mecanismos utilizados para su correcto funcionamiento. Durante el presente documento también se plantearán software utilizado, como los lenguajes de programación o su plan de desarrollo. Además se explicará cómo es la creación de usuarios FTP, o las distintas configuraciones del IIS necesarias para el correcto funcionamiento de todas las webs. 3 INDICE DE IMÁGENES Imagen 1: Funcionamiento de internet, como se puede observar son varias máquinas conectadas entre sí de forma no local, transmitiendo información……….…………………..10 Imagen 2: Los archivos de las webs, así como las bases de datos son pasadas de un servidor a otro mediante una conexión, pasándose de uno en uno, los archivos, alojándolos en la posición donde se especifico al migrarlo…………………………………………15 Imagen 3: Esquema de la máquina con los dos accesos remotos………………………….......16 Imagen 4: Ejemplo de una máquina con 4 virtualizaciones……………………......................19 Imagen 5: Ejemplo de una consulta SQL.….….…………………………………………………………....32 Imagen 6: Diagrama de Flujo de la migración de una página web……………………………...37 Imagen 7: UML muy general del desarrollo planteado……………………………………………….38 Imagen 8: Gráfico de las vistas de cada uno de los diferentes usuarios…..………………….39 Imagen 9: Fallo provocado por una mala configuración en el fichero de conexión…….52 Imagen 10: Fallo provocado por la utilización de dos puntos (..) para referirse al directorio anterior sin habilitar la opción del IIS………………………………………………………...52 Imagen 11: Servidores parecidos, equivale en este caso software similar o idéntico pero más actual……………………………………………….…………………………………………………………57 4 Contenido 1-. Introducción............................................................................................................................. 9 1.1-. Entorno de desarrollo ....................................................................................................... 9 1.2-. Motivación ......................................................................................................................11 1.3-. Objetivos.........................................................................................................................11 1.4-. Desarrollo del documento ..............................................................................................12 2-. Programas..............................................................................................................................15 2.1-. Introducción ¿Qué es migrar?........................................................................................ 15 2.2-. Entorno de la migración.................................................................................................16 2.3-. Recursos entorno...........................................................................................................17 2.3.1-. Sistema Operativo....................................................................................................17 2.3.2. Soporte Web .............................................................................................................20 2.3.3. Software....................................................................................................................24 2.4. Lenguajes de programación ............................................................................................26 2.4.1. HTML .........................................................................................................................27 2.4.2. PHP [15].....................................................................................................................28 2.4.3. ASP [16].....................................................................................................................30 2.4.4. SQL [17].....................................................................................................................31 2.5. Conclusión.......................................................................................................................32 3-. Plan de migración...................................................................................................................35 3.1-. Introducción....................................................................................................................35 3.2-. Plan..................................................................................................................................35 3.3-. Conclusión.......................................................................................................................39 4-. Problemas ..............................................................................................................................42 4.1-. Fallos con las conexiones................................................................................................42 4.1.1-. Ficheros....................................................................................................................42 4.1.2-. Permisos.......................................................................................................................42 5 4.1.3-. FTP............................................................................................................................42 4.1.4-. MySQL......................................................................................................................42 4.2-. Fallos con el código.........................................................................................................42 4.2.1-. Incompatibilidades...................................................................................................42 4.2.2-. PHP y SQL Server......................................................................................................43 4.2.3-. Consultas SQL...............................................................................................................43 4.3-. Fallos con el manejador (IIS)...........................................................................................43 4.3.1-. Conflicto con las propiedades del IIS ....................................................................... 43 4.4-. Fallos en los caracteres de las bases de datos................................................................43 4.5-. Otros fallos......................................................................................................................43 4.5.1-. Virus .........................................................................................................................43 4.5.2-. Ataques ....................................................................................................................43 5-. Soluciones ..............................................................................................................................45 5.1-. Soluciones de las conexiones..........................................................................................45 5.1.1-. Ficheros....................................................................................................................45 5.1.2-. Permisos...................................................................................................................45 5.1.3-. FTP............................................................................................................................45 5.1.4-. MySQL......................................................................................................................45 5.2-. Soluciones del código...................................................................................................... 46 5.2.1-. Incompatibilidades...................................................................................................46 5.2.2-. PHP y SQL Server......................................................................................................46 5.2.3-. Consultas SQL...............................................................................................................47 5.3. Soluciones del manejador. ............................................................................................47 5.3.1-. Conflicto con las propiedades del IIS ....................................................................... 47 5.4. Soluciones de los caracteres de las bases de datos ......................................................48 5.5-. Otros fallos......................................................................................................................49 5.5.1-. Virus .........................................................................................................................49 6 5.5.2-. Ataques ....................................................................................................................49 6-. Pruebas ..................................................................................................................................51 6.1-. Introducción....................................................................................................................51 6.2-. Pruebas ...........................................................................................................................51 6.3. Resultados .....................................................................................................................53 6.4. Conclusiones..................................................................................................................53 7-. Conclusión..............................................................................................................................55 7.1-. Resumen .........................................................................................................................55 7.2-. Aportaciones...................................................................................................................55 7.2.1-. Exportación ..............................................................................................................55 7.2.2. Plan migración........................................................................................................... 56 7.2.3. Entorno Planificación ................................................................................................56 7.3-. Ampliaciones...................................................................................................................57 8-. Referencias.............................................................................................................................59 7 El autor desea expresar su más sincero agradecimiento en especial al profesor José Luis Poza Luján, por supervisar y orientar en todos los temas al alumno. A la empresa donde se realizaron las prácticas por ofrecer realizar este proyecto final de carrera. A la universidad politécnica por permitir la realización del presente proyecto, y a toda su familia por apoyarlo y animarle. 9 1-. Introducción El presente proyecto final de carrera, desarrolla la migración total, de un servidor web antiguo a otro moderno. Esta migración es necesaria a medida que las máquinas adquieren mayores prestaciones para ejecutar programas más complejos, por ello, las web necesitan mejores servicios ofrecidos por el servidor para poder dar soporte a esas necesidades. Estos servicios vienen dados por la plataforma que permite la ejecución de las páginas web en el navegador, en este caso por el programa IIS (Internet Information Server, Servicio de Información de Internet), por medio de ampliar la cantidad de permisos que le puede proporcionar, o la cantidad de información que se desea transmitir. Por otra parte, los lenguajes de programación también avanzan, provocando que servidores antiguos dejen de funcionar de forma correcta, producido por ejemplo en el caso de no soportar una función nueva desarrollada en el lenguaje de programación, o por la utilización de etiquetas en desuso, en el caso de la programación web. Es por ello que es necesaria la migración: para tener un software actual, con unas calidades optimas, para poder proporcionar todo lo necesario para el correcto funcionamiento de las páginas webs, y para que éstas al actualizarlas no dejen de tener un funcionamiento óptimo o correcto. Es posible que durante el proceso, se encuentren dificultades como la parada del funcionamiento de una web, debido a que el código ya no es compatible con el software moderno o que los requisitos que necesita ya no se dispone de ellos, para todos los casos se deberá buscar una solución adecuada y correcta que garantice la perfecta ejecución tanto del servidor como de las propias páginas web. También se pueden plantear problemas con las conexiones de las bases de datos, producido por la incompatibilidad o por las incorrectas visualizaciones en la web, como podrían ser la mala visualización de vocales acentuadas o la letra ñ del alfabeto. 1.1-. Entorno de desarrollo El principal medio en el que se desarrolla el proyecto es internet. Esto es así por las facilidades que proporciona a la hora de mandar información a máquinas distintas no alojadas en el mismo entorno. Los servidores a los que se tendrá acceso no estarán alojados en máquinas propias de forma que se accederá a ellos por medio de acceso remoto, y se transmitirá la información por medio de conexiones FTP. Además el resultado será visible por medio del navegador de internet. Hoy en día el uso de internet es casi diario: correos electrónicos, redes sociales, conexiones FTP, SSH, accesos remotos…, pero realmente ¿qué es internet? 16 Se debe alojar las páginas con las mismas funcionalidades que ya poseía en el anterior servidor, pues de no ser así este cambio en vez de beneficiar perjudicaría. Ello tendría efectos negativos tanto para la empresa de la web, como para la empresa que suministra los servicios de servidor, provocando perdida de beneficios y la consiguiente pérdida de ventas o clientes. De forma que cualquier problema surgido por efecto de la migración debe ser subsanado de forma rápida y correcta. Además de disponer de las mismas funcionalidades, el servicio de hosting (alojamiento de páginas web en un servidor ofrecido por terceros) suele proporcionar una conexión FTP que da la posibilidad a la empresa contratante de poder hacer cambios en su web. Es por ello que se debe crear una para que los clientes tengan esa posibilidad, dándoles los permisos necesarios, pero prohibiendo que puedan acceder a material ajeno al propio. Una vez las bases de datos estén importadas y operativas, los cambios necesarios se hayan efectuado y se disponga de todas las configuraciones necesarias, se realizarán las pruebas, para garantizar que todo funciona de forma correcta. En caso de no ser así se volvería para atrás, corrigiendo lo necesario y realizando nuevamente las pruebas pertinentes. 2.2-. Entorno de la migración Para la migración se contará con una única máquina física, accediendo por medio de acceso remoto a los diferentes servidores, pudiendo interactuar, como si la propia máquina fuera, al software necesario para la manipulación de las bases de datos, para poder importar y exportar la importación de las bases de datos, hace uso del FileZilla para las diferentes conexiones de FTP, el Dreamweaver para la modificación de código en caso que fuera necesario, o el BulletProof FTP para realizar la configuración de las conexiones FTP indicando los usuarios, contraseñas y carpetas a las que tiene permiso acceder y/o modificar. Imagen 3: Esquema de la máquina con los dos accesos remotos 17 En total se tendrán abiertas tres máquinas, la real, y los dos servidores, teniendo en todo momento un control total sobre el estado de las páginas, por medio de un documento de Excel, en donde se tendrán unas tablas donde se especificará: exportación de los ficheros, exportación de la base de datos, configuración del IIS, administrar los permisos, cuenta FTP y cambio de las DNS (Domain Name System, Sistema de Nombres de Dominio) [1]. Se utilizará el fichero host del sistema operativo, para diversas operaciones, además del uso de la CMD de Windows, para poder ejecutar diversas funciones. 2.3-. Recursos entorno A continuación se expondrán las diferentes herramientas que se han utilizado, dando una explicación de cada uno y para qué finalidad han llevado a cabo. 2.3.1-. Sistema Operativo. Un sistema operativo es un software que funciona por medio de interrupciones. Estas interrupciones tienen un orden específico para el correcto funcionamiento del sistema, dando prioridades según su importancia. Los sistemas operativos pueden ser de pago, Windows, Macintosh, o por el contrario de código libre (expresión utilizada para indicar que se trata de un software sin ánimo de lucro), como son las distintas versiones de Linux. Los sistemas operativos ofrecen distintas versiones para dar un mayor soporte según las necesidades, siendo el ámbito domestico el más básico, para llegar al empresarial, como puede ser una versión preparada para hacer de servidor web. El sistema operativo que se tenía en uso en el servidor antiguo era Windows Server 2003, pero para el nuevo servidor se utilizará Windows Server 2008. 2.3.1.1-. Windows Server 2003 [2] Se trata de la versión posterior a Windows Server 2000, aumentando el rendimiento, fiabilidad, facilidad de uso, escalabilidad y la administración. Incorpora nuevas ventajas para las necesidades de las diferentes organizaciones. Como servidor ofrece diferentes servicios como son: Servidor de correo, Terminal Server, Servidor de archivos e impresión, Servidor de acceso remoto o red privada virtual, Servidor Web y aplicaciones Web, Servicio de directorio, Servidor de transmisión de multimedia en tiempo real, Sistema de dominio (DNS), Servidor de infraestructura para aplicaciones de negocios en línea y Servidor DHCP (Dynamic Host Configuration Protoco, Protocolo de configuración dinámica de host), protocolo utilizado para administrar de forma automática la configuración de red [3]. 18 Proporciona beneficios como la seguridad, dando una infraestructura integrada además de fiabilidad, disponibilidad y escalabilidad. Ofrece unas herramientas para garantizar el máximo rendimiento pudiendo administrar, utilizar e implementar su propia infraestructura de red. La escalabilidad que suministra es tanto vertical, con multiprocesadores simétricos (SMP) y horizontales (Scale-out), pudiendo funcionar tanto en sistemas de 32 bits como de 64 bits. Facilita el uso de clusters, base fundamental de las infraestructuras informáticas, pudiendo tener hasta un máximo de 8 nodos, de forma que si uno de los nodos falla, otro empieza a funcionar en su lugar. Proporciona un entorno seguro, en donde los fallos producidos por la programación son comprobados en cada momento de la ejecución, bloqueando aquellas operaciones no permitidas. Cuenta con diferentes tipos de comunicación, como puede ser el software IIS 6.0, además permite la conexión por medio del acceso remoto, así como servicios enfocados a empresas como son las UDDI, infraestructura dinámica y flexible para servicios web basados en XML. Por otro lado cuenta con herramientas de desarrollo, servidores o servicios web, para disponer de una conexión adecuada a cualquier necesidad. 2.3.1.2-. Windows Server 2008 [4] Pensada para realizar virtualizaciones de cargas de trabajo, creación de aplicaciones eficientes y protección de redes, facilitando la seguridad y la administración de las aplicaciones y servicios web. Proporciona un mayor control sobre la infraestructura de red, dando como resultado el tener que centrarse únicamente en las necesidades criticas del negocio, pudiendo programar las tareas realizadas por las diferentes empresas. Además de poder administrar la configuración del servidor y la información del sistema. Los administradores pueden modificar la infraestructura, para conseguir los resultados esperados, permitiendo a los usuarios, la ejecución de programas. Incorpora la virtualización, esta tecnología es una de las más utilizadas hoy en día, ya que proporciona seguridad, debido a que se tratan de máquinas no reales pero con las características de las reales, pudiendo diseñarlas para que ejecuten una tarea concreta o para agilizar la cola de peticiones del servidor. Es una tecnología segura, pues se puede configurar como cualquier máquina real, pudiendo suministrarle e indicarle cuantos recursos se desean utilizar para las diferentes virtualizaciones. Por otra parte estas virtualizaciones pueden ser paravirtuales o virtualizaciones completas. En las primeras el sistema operativo real es el que indica cuantos recursos se deben suministrar para el correcto funcionamiento de la virtualización. Por el contrario, en la virtualización completa, se trata de un sistema completamente aislado del principal, ejecutando un sistema 19 operativo propio, donde lo único que se le indica antes de crear la virtualización son: la RAM (Random Access Memory, Memoria de Acceso Remoto), cuantos procesadores se desea utilizar o qué cantidad de disco duro se desea que utilice, pudiendo ser de forma estática o de forma dinámica el tamaño del disco duro virtual, de forma que puede tener el tamaño máximo desde un principio o puede ir aumentando su tamaño hasta el máximo indicado. La unidad virtual no tiene porque tener el mismo sistema operativo que la máquina real, pudiendo tener en un sistema con Windows, una virtualización con la ejecutando una de las versiones de Linux. Imagen 4: Ejemplo de una máquina con 4 virtualizaciones. Por otra parte Windows Server 2008 cuenta con aplicaciones de web, como son el IIS 7.0 (IIS7), así como herramientas de administración, preparadas para trabajar con IIS7. Permite la administración del servidor según las necesidades, como puede ser la configuración del corta fuegos de Windows, indicando que direcciones IP’s pueden tener acceso a las diferentes herramientas proporcionadas por Windows, o simplemente indicando si tienen acceso a algunas de las herramientas instaladas en Windows. Permite el acceso de forma remota, por medio del “acceso remoto” de Windows, pudiendo ser accesible desde cualquier punto, sin tener que estar físicamente en la máquina que ejecuta Windows Server 2008. Asegura la protección de las redes, de forma que si un ordenador tiene software sospechoso, no le permite acceder a la red, para garantizar el resto de ordenadores. Además cuenta con el Firewall (cortafuegos) de Windows, esta nueva versión, no solamente controla la información entrante sino que también contrala la saliente. Por otra parte, una de las piezas de la seguridad se centra en el nuevo modelo de cifrado y una criptografía más pulida y segura. 20 El nuevo Terminal Server (Servidor Terminal) proporciona un nuevo inicio de sesión pidiéndoles una contraseña para acceder y poder hacer uso de las aplicaciones sin tener que volver a identificarse. Dispone de una elevada disponibilidad de servicios, ofreciendo herramientas que están siempre disponibles, además de equilibrar la carga de la red, por medio de varios servidores. 2.3.1.3-. ODBC Diseñado para trabajar con el lenguaje de programación C, sirve para poder devolver peticiones formuladas en SQL por medio de funciones de código [5]. Además administra los controladores de bases de datos para consultas de SQL producidas por páginas web. Su función se basa en indicar donde se encuentra el fichero de la base de datos [6] y cargar sus valores, como si se tratase de una base de datos hecha en SQL SERVER o MySQL. Se le puede indicar una contraseña y un usuario, para aquellos casos en el que la base de datos los necesite. Se trata de un software de Microsoft gracias al cual, se pueden utilizar distintos tipos de ficheros de bases de datos, entre los que se encuentran los ficheros .mdb, extensión del programa ACCESS o .xls, extensión de EXCEL, entre otros tipos. El tipo de conexión puede ser de usuario, sistema o archivo, creándolos según convenga a las diferentes necesidades [7]. Los del primer tipo, usuario, son utilizados por el mismo usuario que los creo, siendo en el único caso que funciona. Los de sistema, son utilizados por todos aquellos que tienen acceso a la máquina, siendo el más utilizado en temas de web, pues permite la ejecución de consultas SQL desde el exterior de la máquina. Por último, los de Archivos, son accesibles por todos aquellos usuarios que disponen de los mismos controladores instalados, sin la necesidad de ser un usuario de la máquina en cuestión o sin ser una especificación propia, identificándolas por el nombre el fichero con extensión DSN. 2.3.2. Soporte Web EL soporte web es el software utilizado para el correcto funcionamiento de las páginas web. Estos programas pueden ser los gestores de las bases de datos, así como los encargados de las conexiones FTP o el que mantiene las webs visibles a través de internet. Al conjunto de los programas se les conoce como Servicios Web. Siempre llevan una configuración, entre los cuales comparten la necesidad de disponer la dirección IP para poder funcionar, para el encargado de las webs, necesita saber que IP es la asociada a la web, para los gestores de bases de datos, hay que indicarle en qué dirección se 21 encuentran las bases de datos, y en las conexiones de FTP, hay que indicar a que dirección se desea conectar. Todos son necesarios, es por ello que se explicarán a continuación. 2.3.2.1. IIS [8] Programa utilizado para mostrar las páginas webs por medio de los navegadores, siendo capaz de poder mostrar páginas en código PHP, ASP, y HTML. Incorpora herramientas para mejorar la visualización de las páginas, tanto en ASP, como en PHP, pudiendo ver los fallos generados por culpa del código. Soporta conexiones a diferentes tipos de bases de datos, como son: MySQL, SQL Server, Access, DBF, incluidas las soportadas por el ODBC. En el IIS no es necesario especificar qué sistema de base de datos se piensa utilizar, pero para que funcionen es necesario en algunas de ellas indicarle que trabaje como una aplicación de 32 bits, a pesar de que esto pueda desencadenar un fallo en el funcionamiento (se especificará más adelante, cuando se trate el apartado de problemas y soluciones). A parte de la base de datos, da otras muchas opciones, entra las cuales se encuentran la de tiempo máximo de conexión, cantidad de información transmitida, número de conexiones permitidas para cada página, tiene una opción que permite utilizar los dos punto (..) para referenciar a directorios padre. Cuando se configuran las páginas, especificando el directorio físico, se debe introducir una dirección IP que será la local, dando la libertad de acceder por puerto seguro o no. Además de todo esto, nos permite mostrar páginas de error propias, o indicando el fallo de programación producido, facilitando la solución al problema de una forma rápida, debido a que muestra la línea del fallo y da una explicación del mismo. Por otra parte, permite la redirección de páginas, a la vez que proporciona herramientas útiles para los administradores del sistema, mientras integra una plataforma de multimedia, centraliza los servicios de web’s, permite la gestión de forma remota, infraestructura escalable y protege al servidor. 2.3.2.2. SQL SERVER Programa utilizado para el control de las bases de datos manejadas por sql server. Permita disponer de varias bases de datos de forma simultánea, y paralelamente unas con las otras, de forma que los usuarios de las otras bases de datos no tienen acceso a las demás. Facilita la creación y posterior especificación de los usuarios que tienen acceso a las distintas bases de datos, pudiendo tener un usuario concreto control de varias bases de datos. Esto se 22 debe a que los usuarios se crean de forma global, pero hasta que no se les suministra una base de datos no pueden hacer nada, de forma que se les puede asignar varias bases de datos. A parte de los usuarios, tiene opciones de control, como puede ser la configuración de hacer back-ups (copias de seguridad) a una hora concreta, indicando como se quieren guardar, importar y exportar bases de datos, la creación de bases de datos sin necesidad de importarla. SQL SERVER permite migrar bases de datos de otros formatos a sql server, como es el caso de las bases de datos en Access, Excel o cualquier otra que esté disponible mediante el ODBC. Se ha utilizado para alguna de las páginas web programadas en ASP, modificar algunos valores de las bases de datos o ejecutar instrucciones SQL. 2.3.2.3. SQLYOG Programa similar al SQL SERVER, pero utilizado para MySQL. Al igual que el anterior permite la exportación y/o la importación de bases de datos, la creación de usuarios, editarlos o darles permisos sobre las bases de datos. Se puede tener en ejecución más de una vez, mostrando bases de datos diferentes, configurados en el mismo terminal o en ordenadores distintos, ya que permite la conexión por medio de dirección IP, permitiendo las mismas acciones a pesar de no encontrarse en la propia máquina. Se pueden crear usuarios locales o por el contrario específicos de otras ubicaciones, mostrados por la dirección IP, es decir se puede tener el usuario ABCDE en local, el cual sería ABCDE@localhost, y a la vez el usuario ABCDE de otro servidor con una dirección IP concreta como por ejemplo 111.111.111.111, por lo tanto el usuario sería [email protected]. Además se puede configurar para que atienda peticiones de direcciones concretas, de forma que si un usuario intenta realizar una petición desde una máquina no esperada se rechace. Este software se ha utilizado para manejar las bases de datos usadas por las páginas web programadas en PHP, así como para la configuración de las bases de datos de MySQL, modificarlas o realizar alguna consulta por medio de SQL. 2.3.2.4. BulletProof FTP [9] Software diseñado para el control de diferentes usuarios de conexiones FTP, en donde se permite la especificación de permisos de cada uno de los usuarios sobre los diferentes directorios y archivos. Permite el intercambio de ficheros por medio para negocios B2B (Business-to-business, De Empresa A Empresa), se trata de información sobre las transacciones comerciales por medio electrónico. Facilita la comprobación del tráfico de las conexiones FTP por medio de un monitor de actividades donde muestra las conexiones realizadas. 23 Permite el intercambio de ficheros por medio de la carga/descarga, es decir conexiones P2P (Peer-to-Peer, Punto a Punto) privadas, este tipo de conexión se realizan para conectar dos ordenadores y así poder transmitir información de forma directa y sin intermediarios. Estos ficheros no tienen un máximo de tamaño, de forma que se pueden transportar ficheros grandes sin problemas de conexión. Ofrece el uso de NAT (Network Address Translation, Traducción de Dirección de Red), hardware utilizado para administrar dirección IP a varios ordenadores conectados en red, y la protección del corta fuegos de Windows, ambos en modo pasivo, sistema de conexión en el cual el servidor proporciona la dirección IP a la de que se debe conectar el usuario. Controla el tráfico dando un número máximo de conexiones a cada IP. 2.3.2.5. Filezilla [10] Software utilizado para la transmisión de ficheros de una máquina a otra por medio de conexiones FTP (File Transfer Protocol, Protocolo de Transferencia de Archivos). Una vez establecida la conexión se empiezan a pasar los ficheros, controlando en cada momento que la conexión sigue activa. Permite guardar las conexiones a la vez que proporciona varias opciones de conexión. Para iniciar la conexión lo primero que debe hacerse es indicar una dirección IP o dominio específico para conexiones FTP, después se deberá poner un usuario y contraseña, en el caso que las hubiere. Esta configuración puede guardarse de forma que las posteriores veces únicamente se deberá indicar con que máquina se desea conectar. Permite conexiones FTP, FTP sobre SSL (Secure Sockets Layer, Etiqueta de Conexión de Segura)/TLS (Transport Layer Security, Seguridad en la Capa de Transporte), comúnmente FTPS (conexiones FTP seguras), y SFTP (SSH File Transfer Protocol, Protocolo de Transferencia de Ficheros por SSH). Soportar conexiones FTP-Proxy (utilizado como intermediario conexiones de FTP), HTTP/1.1 (utilizado para conexiones persistentes) o SOCKS5 (utilizado para conexiones Cliente-Servidor) Permite libertad de sistema operativo y es funcional con el sistema de de conexión IPv6. Además soporta transmisión de ficheros superiores a 4 GB, disponiendo de una cola de transferencia, pudiendo abortarla, detenerla y posteriormente reanudarla, reiniciar los ficheros fallidos en la trasmisión, mostrando los fallidos, los que están en curso y los finalizados correctamente. Permite una configuración más avanzada pudiendo indicar la velocidad máxima de transmisión, por otra parte se trata de un software con una interfaz gráfica, de forma que se pueden arrastrar ficheros desde una carpeta a otra deseada, pudiendo hacer esto con archivos propios de una máquina o con los que se van a migrar. 2.3.2.6. PHPMyAdmin [11] Administrador de bases de datos en MySQL. Se trata un gestor utilizado vía internet, para conectarse a él se debe registrar previamente, por medio de un panel de control, a excepción 24 de cuando se utiliza por medio de programas que proporcionan un servidor web local, es decir programas que por medio del navegador a internet e indicando como dirección web “localhost/” seguido de la carpeta donde se encuentra la web en el ordenador (esta carpeta debe estar dentro de otra carpeta propia al programa), visualizamos contenido PHP como si se encontrará en la web. Permite la importación, la exportación y la creación de bases de datos. Para la exportación, se puede especificar si se desea que se muestre el contenido en SQL o se genere un fichero .sql en donde se encuentra la información de la base de datos. Del mismo modo para la importación, permite varios tipos de bases de datos, pudiendo ser ficheros de de varias versiones de Access o Excel entre otras. Como gestor ofrece la posibilidad de indicar que campo es el prioritario, cual/es el/los único/s, así como los valores nulos/no nulos, los auto incrementables o indicar el tipo de dato que se va a insertar. Permite la modificación de los valores y las tablas, pudiendo cambiar, agregar o borrar valores, campos, o tablas. Por otra parte permite la ejecución de sentencias SQL ya sea una sola o un lote de ellas. Puede administrar varios usuarios y privilegios de MySQL, además de poder administrar varios servidores. 2.3.3. Software El software son comúnmente los programas que se utilizan por medio de un ordenador, pudiendo realizar tareas simples, llegando hasta algunas más costosas. Existen muchísimos tipos de software, algunos se utilizan para trabajar, otros como medio para desarrollar o entretenimiento, en este caso el software que se necesita es el enfocado para manejar de bases de datos o para la programación de las webs. 2.3.3.1. Excel [12] Excel es una herramienta de gestión y análisis de datos perteneciente a Microsoft incluido en el conjunto de programas llamados Office, gracias al cual permite crear una lista de valores para calcular, hacer un seguimiento, o mostrar una resolución de la evolución de un hecho concreto. Permite generar gráficos en donde se podría comparar los diferentes valores obtenidos y mostrar los porcentajes respecto al total de cada uno. Dispone de una amplia gama de gráficos pudiendo elegir el más adecuado según las necesidades. Se puede utilizar sus características para organizar la información, pudiendo organizar los valores obtenidos, realizar cálculos matemáticos variados. Excel se puede utilizar por medio de casi cualquier navegador, ofreciendo un uso compartido por múltiples personas de forma simultánea. 25 Por otra parte permite la utilización de terceras herramientas usadas de forma simultánea para un mejor rendimiento. Su facilidad para ser utilizado junto al ODBC facilita su utilización en las páginas webs programadas en asp. 2.3.3.2. Access Software utilizado para la implementación de bases de datos, proporcionando una gran eficacia, facilitando la creación, manejo, y desarrollo de las bases de datos, pudiendo compartirlas con terceras personas. Access utiliza formularios para facilitar la creación de informes y formularios. Además da la facilidad de crear consultas relacionales a la base de datos, una vez creada, se debe visualizar como cualquier de las tablas de la base de datos y de ese modo devolverá una consulta especificada con anterioridad. Al igual que Excel, Access funciona perfectamente junto al ODBC, siendo utilizado para la ejecución de páginas web programadas en asp. Por otra parte permite la utilización de contraseñas para garantizar la seguridad dentro de Internet. Ofrece una interfaz gráfica, pudiendo relacionar los diferentes campos de las bases de datos de una manera sencilla, únicamente se deben arrastrar los campos que se desea relacionar y ponerlo encima del campo con el que se quiere que se relacione. No solamente se pueden ver los resultados por medios de consultas, también se pueden ver por medio de la interfaz gráfica, pudiendo desplegar aquellos campos que están relacionados y poder seguir viendo información deseada. Permite la integración de ficheros de otro software como pueden ser Excel o SQL Server entre otros. Pudiendo integrar los datos de servicios de web y Servicios de conectividad empresarial del software Microsoft SharePoint en las aplicaciones desarrolladas. Por el contrario dispone de muy poca potencia de procesamiento siendo muy limitadas las búsquedas que puede realizar, esto para una base de datos es una gran limitación sobre todo a grandes niveles. Además es una base de datos muy poco estable, pudiendo fallar en cualquier momento. Limita el tamaño de las tablas el número de campos y los índices de las tablas. 2.3.3.3. Dreamweaver [14] Software desarrollado para la creación de aplicaciones web. Pudiendo soportar programación en HTML, PHP o ASP. Dispone de una interfaz gráfica que permite visualizar el código de la página, o mostrar el contenido de la página de forma gráfica o mezclar las dos anteriores. A parte de ficheros de programación, también permite la modificación y/o creación de ficheros css, destinados a especificar el diseño de la página web. 32 Todas las consultas en SQL se estructuran de la misma manera, se comienza por un verbo que indica que acción se va a llevar a cabo, seguido de la clausura que indica sobre que tabla se va a llevar a cabo, pudiendo indicarle (solo en algunos casos como son el select y el update) condiciones. Ejemplo: Imagen 5: Ejemplo de una consulta SQL SQL es muy versátil y permite realizar más operaciones, aparte de las mencionadas anteriormente como unión de tablas u otros tipos de consultas. Es un lenguaje clave para la realización de páginas dinámicas, pues sin él, para poder indicar por ejemplo el texto a mostrar según el diferente identificador causaría enlazar a distintas páginas, por lo que se pierde el dinamismo o crear un código muy extenso y variable sobre el contenido de las diferentes condiciones (acto que retrasaría la visualización de la Web o de las diferentes aplicaciones que se tuvieran que ejecutar). 2.5. Conclusión Todo el software, lenguajes de programación o sistema operativo, proporciona en mayor o menor medida las soluciones necesarias para la creación de un servidor web eficaz, seguro y eficiente. Las nuevas versiones de Windows ofrecen mejores prestaciones y soluciones para todos los problemas que puedan surgir, siendo más eficiente trabajar con versiones actuales para el correcto funcionamiento del software, pues este se centra en funcionar de forma correcta en las versiones actuales de sistemas operativos y no en las antiguas. Un ejemplo que demuestra que no funcionarán igual de bien el software es si está pensado para ser ejecutado en Windows 95 (sistema de ficheros FAT32) y no para Windows XP (sistema de ficheros NTFS) por mucho que el sistema operativo incorpore emulación del sistema, este error se produce también en sentido inverso (y con mayor efectos negativos) es por ellos que se debe tener un sistema operativo moderno que no garantice el funcionamiento el software más actual. Al igual que el sistema operativo, los programas necesitan más prestaciones a la vez que están aclimatados al sistema operativo para el que están pensados, como se acaba de documentar, un software utilizado en un sistema que no es el considerado podría dar fallos de ejecución, es por ello que se debe tener en cuenta que software se puede utilizar en cada circunstancia. 33 Los soportes para web dan cada vez dan más facilidades y flexibilidad para poder mostrar diferentes páginas programadas en lenguajes distintos, proporcionando seguridad y nuevas características para corregir los fallos producidos. Los lenguajes de programación son los intermediarios entre las aplicaciones desarrolladas y los programadores, y al igual que el software va evolucionando para ofrecer mejores servicios, y a pesar de que todos ellos nos garantizan que se pueda realizar las mismas aplicaciones, lo cierto es que cada lenguaje tiene su punto fuerte y su punto débil. Es esencial saber qué tipo de programación va a tener que soportar el software, pues podría fallar a pesar de tener una programación sencilla y correcta. La facilidad que proporciona el lenguaje PHP junto a poder funcionar en cualquier servidor, es decir en un servidor mediante IIS en Windows o en un servidor Apache en Linux, le da muchos puntos frente al lenguaje ASP que principalmente debe ser utilizado para mediar junto al software IIS. Siendo además que la configuración para PHP es más sencilla que ASP deberían ser puntos suficientes para programar únicamente en PHP, pero en cambio PHP no funciona bien en todos los servidores junto a bases de datos SQL Server, siendo limitado a la utilización de MySQL. Por contra partida, ASP puede utilizar SQL Server o el ODBC para la utilización de las bases de datos (aunque estas no siempre funcionen perfectamente por culpa de la configuración del IIS). Respecto al software, existen programas más sencillos de manejar que otros, como es el caso del SQLyog respecto al SQL SERVER, sobretodo el tema de la creación de usuarios, en donde en el SQLyog es realmente sencillo e intuitivo en el SQL SERVER no lo es, siendo incluso lioso la primera vez si no estás familiarizado con él. Esto también se puede aplicar al Access, es verdad que su interfaz gráfica es decente, pues te separa por tablas, vistas…, pero muchas veces falla, siendo habitual que falte una tabla o que esta se llame de otra forma por culta de la importación, de forma que puede ser incluso lioso cuando se trata ya no de tablas sino de campos de estas. El ODBC dispone de su versión de 32 bits y la de 64, y aunque esto puede parecer, y llega a ser, beneficioso, lo cierto es que la no unificación del programa hace que crees un origen de datos en uno de ellos y luego no te funcione por culpa de no ser el específico. En cuanto al PHPMyAdmin, su utilización es muy sencilla, pero tiene un límite de tamaño para importar bases de datos, esta restricción se puede cambiar, pero no de forma gráfica sino por medio de código, teniendo que modificar el fichero de configuración. En conclusión, para realizar una migración en condiciones es aconsejable disponer de un sistema operativo moderno y actualizado, un conjunto de programas eficaces que garanticen las diferentes acciones a realizar, y saber si los diferentes lenguajes de programación son compatibles con el sistema operativo o el software a utilizar. 35 3-. Plan de migración 3.1-. Introducción A continuación se mostrará el plan de migración que se siguió para el desarrollo del presente proyecto final de carrera. Se desarrolló de forma progresiva, se hizo esta forma para empezar por la parte más sencilla, e ir ascendiendo hasta llega a la parte más difícil, de esta forma se podrán localizar los pequeños problemas al inicio del proceso. Para poder desempeñarse el proceso de migración, se utilizó una única máquina desde la que poder acceder a los diferentes servidores, para el cual se utilizó el acceso remoto de Windows, pudiendo acceder a los servidores implicados. En ambos servidores se disponía del software necesario para el funcionamiento de las aplicaciones Web como puede ser el Filezilla, o los diferentes programas para la utilización de las bases de datos, como SQLyog o SQL SERVER. Además del software utilizado por los servidores, en la máquina utilizada se disponían de otros adicionales como son el Access, Excel o PhpMyAdmin, utilizados para algunas de las bases de datos necesarias para el nuevo sistema. Para poder realizar las pruebas se emplearon diferentes navegadores para poder comprobar la correcta visualización en todos ellos y comprobar que el resultado de la migración estaba siendo satisfactorio. 3.2-. Plan Las primeras páginas Web migradas de un servidor a otro fueron las HTML, se debe a que están programadas en un lenguaje estándar y ejecutable en cualquier proveedor de servicios de Web y no requieren de una compleja infraestructura de software. Como estas páginas no requieren bases de datos ni la importación de ficheros de conexión, su migración es realmente sencilla pues lo único que se debe tener en cuenta es la ubicación de las distintas imágenes o archivos se deseen mostrar o permitir la descarga. Finalmente se configuraba el IIS indicándole el dominio y la carpeta donde se ubicaba Web, indicando sobre qué dirección IP debía responder y sobre qué puerto se accedía, después se cambiarán las DNS para que apunten al nuevo servidor. Una vez finalizada la migración de las páginas HTML se empezó con las página PHP, estas páginas utilizan un lenguaje de programación basado en código libre, estos lenguajes suelen ser compatibles con todos los servidores Web, de forma que lo también resulta sencillo migrar las páginas basadas en PHP. El orden estipulado fue el siguiente: primero por medio del IIS del servidor antiguo se localizaba la ubicación de los ficheros de la página, y acto seguido se deshabilitaba el acceso a 36 la base de datos (para ello lo único que se realizaba era añadir dos barras bajas “_” a la carpeta administrador, pudiendo ser: admin o control por norma general, que era la que contenía los ficheros de la Web, o la que contenía los ficheros de administrador, esto provocaba que la Web dejará de visualizarse, pero era necesario, a pesar de que por norma general los tiempos empleados no eran muy prolongados). Esto era necesario para evitar que se modifique la base de datos mientras se migraba, y así evitar pérdidas de datos durante el transcurso de esta operación. Este aspecto es esencial en una migración ya que de permitirse variaciones durante el proceso, éstas deben ser reflejadas en el producto final. Una vez deshabilitado y mientras se migraban las Web por medios de conexiones FTP, se realizaba la exportación de la base de datos, para saber qué base de datos era la necesaria exportar se consultaba el fichero de conexión de la Web, en las páginas en PHP se utilizaba el programa SQLyog para las diferentes acciones realizadas en las bases de datos. De tal forma se pueden migrar páginas y datos de forma conjunto. Una vez finalizada la migración de los ficheros y exportada la base de datos, se migraba el fichero exportado al servidor nuevo, también por conexión FTP. Durante el transcurso de esto se configuraba el nuevo servidor, para poder seguir utilizando las Web. La configuración para estas páginas se centraba en crear en el IIS el dominio sobre el que responderá las peticiones, es decir se especifica que dominio o dominios se emplean en la Web, indicando la carpeta donde se ubica de forma física la Web. Una vez migrada la base de datos, se procedía a importar la base de datos en el SQLyog, pero en el nuevo servidor, para ello se creaba la base de datos y se indicaba el fichero de la base de datos exportado. Posteriormente se creaba el usuario encargado de realizar las consultas a la base de datos, se le indicaba una contraseña y se le administraban los permisos necesarios para poder manejar esa base de datos o las que tuviera que manejar. Acto seguido se reconfiguraba el fichero de conexión de la Web, indicando el nombre de la base de datos, el usuario y la contraseña (esta configuración además se guardó en otro fichero junto a todas las demás, por en algún momento fallase la configuración y hubiera que repetirla). Esta fase es también importante, ya que en caso de error en la migración es necesario poder disponer del anterior sistema estable. Para terminar, en aquellas páginas que dispusieran de alguna carpeta en donde se importen imágenes o ficheros por los propietarios de la Web (esta carpeta suele llamarse “uploads”) se le daban permisos para poder modificar el contenido de la carpeta. Una vez comprobado todo, en el fichero host de la máquina real (fichero ubicado en la carpeta c:\windows/system32/drivers/etc) se modificaba para indicarle que los dominios de la página migrada estaban en el nuevo servidor, para ello se le indicaba la dirección IP del nuevo servidor seguido del dominio de la página Web. Se habilitara la carpeta del administrador, quitándole las dos barras bajas “_”, y se realizaban las pruebas de la página por medio de los navegadores. 37 Imagen 6: Diagrama de Flujo de la migración de una página web. Una vez finalizado y comprobado que funciona de forma correcta, se cambiarán las DNS al igual que con las HTML para que apunte el dominio a la ubicación deseada, que será el nuevo servidor. Una vez pasadas todas las HTML y las PHP se migraron las ASP. Estas páginas a pesar de ser un lenguaje de Microsoft, tenían unas complicaciones que se poseían ni las HTML y las PHP por ello se hicieron las últimas (estos problemas se expondrán en el apartado 4-. Problemas y se mostrará cómo resolverlos en el apartado 5-. Soluciones). Al igual que en las PHP, lo primero que se realizaba era deshabilitar la carpeta del administrador, para evitar cambios en la base de datos durante la migración. Una vez hecho esto se migraban las páginas por medio de conexiones FTP. Durante el transcurso de la Web se importaba la base de datos, pudiendo ser de dos formas: SQL Server o por medio del ODBC. En el caso de la primera, se exportaba la base de datos y se migraba a continuación que la página, por el contrario si utilizaba OBDC significaba que leía y modificaba un/os fichero/s de base de datos (extensiones mdb, xls o dbf) en este caso al migrar la página también se realizaba la migración de la base de datos. Cuando la base de datos era gestionada por medio de SQL Server, en el programa SQL SERVER se creaba una base de datos similar y posteriormente se importaba la base de datos y se creaba un usuario, indicándole una contraseña y sobre qué bases de datos tenía permiso. En el caso de que las bases de datos funcionarán por medio del ODBC se realizaba una configuración similar a la del servidor antiguo, es decir, se indicaba que fichero tenía que leer, y se guardaba esta configuración. Una vez preparada la base de datos, se modificaba el fichero de conexión, para que utilice la nueva configuración, bien si era por medio del SQL Server o bien por el ODBC. 38 Seguidamente, se rehabilita la carpeta administrador, y se modifica el fichero host de la máquina real, y se comprueba la correcta visualización por medio de los navegadores, y cuando todo funcionaba perfectamente se cambiaban las DNS al igual que las PHP. Imagen 7: UML global del desarrollo planteado. Para terminar, y una vez configurado todo se administraba el IIS. Al igual que las páginas de de HTML y PHP, se indicaba el nombre del dominio, la IP sobre la que responde y el puerto (en algunos casos se necesitó una configuración especial que se explicará en el apartado 5-. Soluciones). Debido a que el cambio de las DNS podría durar entre 24 a 48 horas, lo único que se deshabilitaba era la carpeta del administrador del servidor antiguo, así durante el periodo de cambio de la DNS, solo se permitiría visualizar la página web, pero una vez cambiada se podría visualizar, o modificar la base de datos, pues en el servidor actual sí dejamos la carpeta de administrador habilitada. Una vez finalizada la migración de la página, tanto en HTML, PHP o ASP, se creaba un usuario de FTP por medio del programa BulletProof FTP, se le suministraba la misma contraseña que ya disponía en el servidor antiguo y se le daban permisos en sobre la carpeta donde se alojaba su Web, de forma que pudiera realizar cualquier cambio únicamente sobre su carpeta especifica. 39 Imagen 7: Gráfico de las vistas de cada uno de los diferentes usuarios. 3.3-. Conclusión La migración en general no planteó demasiados problemas, aunque los que surgieron necesitaron un tiempo considerable para poder solucionarlos, pues se tuvo que buscar una solución eficiente y que funcionará en el nuevo servidor afectando lo menos posible al resto de la Web. Las páginas que más problemas plantearon fueron curiosamente las programadas en ASP, a pesar de estar funcionando en un entorno desarrollado por el propio Microsoft, muchas veces no se visualizaban o darán varios errores que se tuvieron que resolver adaptando el código correspondiente, por medio del IIS o con cambios en la base de datos. Por tanto, la adaptación del código es uno de los aspectos que más deben tenerse en cuenta en la migración de sistemas ya que no todos los códigos están programados de forma genérica. La migración es un buen momento para generalizar códigos con referencias específicas. Las web se ordenaron según su lenguaje de programación. Las páginas programadas en PHP o HTML se guardaban en la carpeta phproot, mientras que las ASP se almacenaban en la carpeta wwwroot. Esto inicialmente dio más trabajo, pero posteriormente ayudo bastante a la hora de buscar una web concreta, pues sabiendo el lenguaje de programación utilizado en la web se podían deducir 2 cosas: en que carpeta había que buscar y qué tipo de base de datos utilizaba. Al igual que se comentó anteriormente, la migración también permite organizar el sistema de 40 archivos de las aplicaciones Web en los casos en que se empleen sistemas híbridos (con más de un lenguaje en su implementación) Si se hubiera llevado a cabo la migración de forma distinta posiblemente se necesitaría un mayor tiempo para realizarla, esto se debe a que trabajando primero con las páginas sencillas o fáciles de migrar, permite aprender a utilizar el nuevo software sin altos riesgos. Por el contrario en el caso de haber realizado primero las ASP, posiblemente algo sencillo habría fallado y se hubiera perdido mucho tiempo en solucionar algo que sabiendo manejar el software, como se sabía, se habría solucionado de forma rápida y sin complicaciones. Por tanto, la planificación de una migración debe tener en cuenta el “peso” de las aplicaciones que se migran ya que el tiempo invertido en solucionar los detalles de código puede ralentizar el proceso. También es posible realizar una estrategia de migración en función del uso que se hace de cada aplicación, independientemente del peso de la misma, sin embargo un error en una aplicación puede ralentizar la migración de aplicaciones que no darían errores en la migración. Por otra parte la migración se realiza sobre un servidor nuevo, con software nuevo, y aunque son versiones posteriores a las ya existentes en el servidor antiguo, no significa que funcionen de la misma manera, que ofrezcan las mismas prestaciones o que su configuración sea idéntica. Fue una gran decisión migrar de más fáciles a más complejas. Es importante considerar el hardware de soporte que albergará las aplicaciones una vez migrado el sistema. 41 48 datos en SQL Server. Una vez en el nuevo servidor se importaba al SQL SERVER, se le creaba un usuario con una contraseña, se le daban los permisos y se cambiaba el fichero de conexión, para indicarle el nuevo tipo de base de datos, el usuario, contraseña y la base de datos a la que debía conectar. Una vez configurada la página, se accede al IIS7 y se configura el dominio por medio de sus herramientas. Primero se cambiaran las opciones de ASP, para ello una vez seleccionado el dominio se selecciona la opción de ASP. Una vez dentro, en la familia “compilación”, subfamilia “propiedades de depuración”, hay una opción llamada “Enviar errores al explorador”, la cual debe estar a “True”. (Cabe destacar que la opción explicada en el aparta 5.2.1-. se debería activar siempre para evitar fallos futuros) A continuación se accede a las herramientas de “Página de errores” (donde se encontraba el icono de las herramientas ASP). Por la parte de la derecha habrá un texto que indique “Modificar configuración de característica…”. Dentro de esta habrá unas opciones de las cuales hay que marcar la que indica “Errores detallados”. Habrá casos en los que sea necesario incrementar la cantidad de información transmitida por la base de datos y/o ampliar la cantidad de conexiones permitidas para obtener más información. Para ello se debe volver al apartado de ASP y dentro del apartado “comportamiento” esta la categoría “propiedades de límite” en donde se encuentran las opciones “Límite del búfer de respuestas” y “Límite máximo para el cuerpo de entidades solicitantes”. La primera indica la cantidad de información que se puede transmitir y la segunda la cantidad de conexiones que se permiten hacer, siendo el máximo posible el 2147483647, en ambos casos. Para las aplicaciones que utilizan bases de datos de Access, pero no utilizan aplicaciones de 64 bits, lo más sencillo es configurar el dominio como una aplicación de 32 bits. Para ello se debe realizar una configuración especial. En el IIS7 hay un campo llamado “Grupo de aplicaciones” (se encuentre donde se encuentran los dominios, en la parte superior de estos), cuando se seleccione aparecerán los dominios. Ahora se elige el dominio deseado y haciendo un clic con el botón derecho del ratón se selecciona la opción “Opciones avanzadas”. Dentro de esta se encuentra la opción llamada “Habilitar aplicaciones de 32 bits”. Una vez habilitada ya funcionaran las aplicaciones de 32 bits, pero dejaran de funcionar las de 64 bits, por ello se debe saber si utiliza aplicaciones de este tipo antes de cambiarlo. 5.4. Soluciones de los caracteres de las bases de datos Solo sucedió una vez, los caracteres se importaron mal, la solución más rápida fue exportar la base de datos en un fichero para posteriormente buscar caracteres extraños y cambiarlos por los correctos. 49 5.5-. Otros fallos 5.5.1-. Virus El virus no era muy peligroso, pero el funcionamiento de la página era muy deficiente. El virus se encontraba en todos los ficheros de web. Antes de la etiqueta </body> había un script que insertaba la fecha además de otros dígitos, básicamente metía basura en el código. Como el antivirus no quitaba este código mal intencionado, se tuvo que borra a mano en todos los ficheros que tenían esta etiqueta. En algunos casos la cantidad de basura introducida era más que el código interno del fichero. 5.5.2-. Ataques Durante la migración se produjo un ataque al servidor antiguo, lo único que se tuvo que hacer fue denegarle el acceso y cancelarle los intentos a la dirección IP especifica. 51 6-. Pruebas 6.1-. Introducción Las pruebas es la parte en donde se comprobaba que todo estuviera configurado de forma correcta, haciendo varios tipos de pruebas. Las pruebas son esenciales, pues antes de concluir una página es obligatorio que la página funcione exactamente igual que en el servidor antiguo, es decir no puede fallar por un cambio de servidor así que estas pruebas garantizan el perfecto funcionamiento de las Webs. Para las pruebas se han utilizado diferentes navegadores, como son: Firefox, Internet Explorer (versiones 6, 7, 8 y 9), o Chrome para alguna Web concreta. Para aquellas Web que la Empresa trabajaba con varios navegadores diferentes era esencial que funcionara y se visionará de forma idéntica. Cuando una de las pruebas fallaba se corregía el fallo y se realizaban de nuevo las pruebas desde el principio para garantizar que cualquier modificación no afectaba al resto de la página. Las pruebas a realizar eran las siguientes: visualización correcta de la web, conexión con la base de datos, mostrar la información de la base de datos, comprobar que no hubieran enlaces rotos (links, archivos descargables…), acceso al panel de control, modificación de contenido del panel de control, inserción de nuevo contenido en el panel de control (texto, imágenes…), eliminación de contenido, y comprobación que estos cambios afectaban a la parte visible por los usuarios. 6.2-. Pruebas Las pruebas por lo general eran la parte más rápida de la migración, pues antes de comprobar que la página funcionaba se revisaban los ficheros de conexión, las bases de datos y los permisos de las conexiones FTP o de las carpetas. 52 Imagen 8: Fallo provocado por una mala configuración en el fichero de conexión Las pruebas que más ayudaron a la correcta migración fueron para las programadas en ASP, y PHP. Las primeras al tener una configuración especial se sabía el tipo de error que la generaba pudiendo resolverla de forma casi inmediata (quitando de aquellas que se tuvo que investigar para poder corregir el fallo). Para las segundas IIS7 proporciona una propiedad que permite mostrar los fallos de PHP, de forma que se activaba se comprobaba el fallo y de desactivaba (era necesario hacerlo así, ya que las propiedades de PHP en el IIS7 afectaban a todos los dominios a la vez, mostrando fallos que en verdad no lo eran, como puede ser una variable sin inicializar, como por ejemplo una variable utiliza para saber si un formulario esta completo y esta aun no tiene ningún valor). Una vez visto el fallo y arreglado, se repetían las pruebas. Imagen 9: Fallo provocado por la utilización de dos puntos (..) para referirse al directorio anterior sin habilitar la opción del IIS 53 Otra de las pruebas que más ayudaban era las relacionadas con las bases de datos. Estas indicaban, independiente el lenguaje de programación utilizado, fallos, como eran: si el usuario no tenía permisos, si el fichero de conexión no estaba bien configurado. Además algunas veces los fallos que se pensaban que eran producidos por las bases de datos, al final eran por carpetas sin permisos. Para el correcto desarrollo de las pruebas se modificaba el fichero host de la máquina real, para que apuntara al nuevo servidor y se pudieran hacer las pruebas antes de cambiar las DNS. Para ello se indicaba el nombre del dominio y seguidamente la dirección IP del nuevo servidor, es decir www.prueba .es 111.111.111.111 por ejemplo. 6.3. Resultados En todos los casos el final fue satisfactorio, todas las Webs funcionaban de forma correcta a todos los niveles. Sin embargo las dos páginas en PHP que inicialmente funcionaban en SQL Server fueron las que más problemas surgieron a la vez que con la primera página migrada de ASP. Se hicieron varias pruebas configurando el IIS7, para comprobar si funcionaban las Webs anteriores modificando las opciones disponibles, para intentar evitar lo que se tuvo que hacer al final. En el caso de la primera página en ASP, inicialmente no se sabía cómo crear de forma correcta los usuarios de SQL SERVER, o como configurar de forma correcta el IIS7 para que mostrará el contenido sin dar fallos inexistentes como podían ser los dos puntos (..). Las páginas que no mostraron ningún fallo fueron las programadas en HTML, ya que estas no necesitaban una configuración especial, ni tenían una programación aparte que pudiera fallar. 6.4. Conclusiones En conclusión, las pruebas fueron de forma correcta y sin causar mayores contratiempos, es más redujeron el tiempo para arreglarlo al mostrar el fallo y el número de error causado. Sin estas pruebas la migración hubiera ido peor además que no se habría podido realizar de forma tan eficiente, ya que al realizar tareas tan parecidas en la mayoría de los dominios era realmente sencillo equivocarse en alguno de los pasos. 55 7-. Conclusión Por último se realizara una conclusión global de todo el proyecto final de carrera, haciendo un resumen del mismo, se expondrá el final de la migración y se detallará alguna ampliación que se hizo, como se podría realizar si no se hubiera hecho así y/o porque no se hizo de otra forma. 7.1-. Resumen El presente proyecto final de carrera plantea la migración de todas las páginas web de un servidor antiguo a otro moderno. Se realizo con una única máquina, con la cual se realizaban dos conexiones remotas, una de ellas para acceder al servidor antiguo y la restante para conectar con el servidor moderno. Por medio de conexiones FTP se migraron los ficheros de las páginas Web y las bases de datos desde el antiguo servidor al nuevo. Una Vez allí se configuraba para que todo funcionara de forma idéntica a cómo funcionaba en el antiguo servidor. Cuando las carpetas y los ficheros ya tenían los permisos y los arreglos necesarios, se configuraba el programa IIS7, encargado de mostrar la información por medio de los navegadores, para que muestre la información de las páginas. Una vez preparado el IIS7 se realizaban las pruebas para comprobar que todo funcionaba de forma correcta, para terminar creando una cuenta FTP que se habilitará para permitir a las empresas modificar, añadir o eliminar contenido de su/s página/s Web. 7.2-. Aportaciones 7.2.1-. Exportación La exportación del servidor produjo de forma correcta y sin demasiados contratiempos, a pesar de aquellas páginas que se tuvieron que investigar para poder hacer que funcionarán de forma correcta. Algunas de las exportaciones de las bases de datos dieron problemas, sobre todo cuando se intento pasar de SQL Server a MySQL, pero en general todas las exportaciones se realizaron de forma rápida y sin contratiempos. 56 7.2.2. Plan migración Las primeras páginas migradas fueron las programadas en HTML, debido a su sencillez debido a que cuenta con un lenguaje de programación estandarizado. De forma que lo único que se debía revisar era que todos los enlaces apuntarán bien. Posteriormente se migraron las páginas en PHP, a pesar de utilizar un lenguaje programación distinto en algunos momentos, por su fácil compatibilidad con diferentes servidores, pudiendo funcionar en un IIS7 como es el caso o en un servidor Apache. Para estas se migraron también, las bases de datos necesarias para su funcionamiento. Las últimas en pasarse fueron las programadas en ASP, pues era necesario una configuración especial para cada una de las Webs, además de la migración de sus bases de datos, de forma que cuando se migraron, los programas a utilizar ya estaban probados y se sabía cómo utilizar sin causar más problemas de los ya existentes. Para estas últimas, se tuvo que instalar el programa PERSITS, para que algunas páginas no dejaran de funcionar, aunque esto llevo que las Webs que lo utilizaban a la vez que hacían uso de bases de datos en Access fallarán, ya que Access es una aplicación de 32 bits y PERSITS es de 64 bits. Cada vez que se finalizaba una Web se creaba una cuenta para permitir modificar el contenido de la misma por parte de las empresas. 7.2.3. Entorno Planificación El entorno de planificación fue muy agradable, además disponer de un buen equipo para desempeñar las diferentes tareas, se disponía de un tutor que ayudaba si se tenía algún tipo de problema. El tiempo estimado para realizar la migración fue muy aproximado al esperado, debido a la cantidad de Webs que habían, y entre las páginas que dieron menos problemas de lo esperado y aquellas que dieron más de lo deseado la migración se produjo con total normalidad. No había un número estipulado de webs a pasar por día, hubieron días que se podían pasar 20 dominios, y otros se pasaban únicamente 5. Esto podría depender de la cantidad de ficheros de configuración que se necesitaban cambiar, la cantidad de bases de datos se que debían migrar o la cantidad de problemas que se necesitaba arreglar. Empezar por la parte más sencilla fue un gran acierto, pues dio la facilidad de ir adquiriendo conocimientos de forma progresiva pero sin pausa, cogiendo soltura para solucionar los diferentes problemas que se planteaban. Finalmente se migraron alrededor de 280 dominios. 57 7.3-. Ampliaciones La migración de este servidor mi planteo hacer sobre un entorno Windows, debido a que el servidor antiguo ya lo era. Esto daba la seguridad que casi la totalidad de las cosas que se estaban utilizando en el antiguo servidor funcionarían en el nuevo. Aparte de las facilidades que podría suponer trabajar con entornos similares, algunas de las bases de datos estaban funcionando por medio de software desarrollado por Microsoft de forma que era más sencillo trabajar de esta manera. Imagen 10: Servidores parecidos, equivale en este caso software similar o idéntico pero más actual. Sin embargo no hubiese sido tan fácil si se hubiera realizado sobre un entorno Linux con un servidor Apache, esto se debe a que el servidor inicialmente estaba sobre un entorno Windows, cambiarlo implicaría tener que realizar cambios en el protocolo de algunas de las aplicaciones. Por otra parte, se tenían muchísimas páginas programadas en ASP, un lenguaje desarrollado por Microsoft y que no es de código libre, como puede ser PHP. La totalidad de las páginas que utilizaban el ODBC o SQL Server necesitarían pasar a usar MySQL, lo que implicaría cambiar casi la totalidad de las páginas, de forma que su código fuese capaz de utilizar este tipo de base de dato. Además las empresas que accedían por dirección IP por medio de algún software de Windows, podría causarles conflicto y por lo tanto dejar de funcionar de forma correcta. En conclusión, para ahorrar trabajo y asegurar la compatibilidad en todos los aspectos se realizo la migración sobre un entorno Windows. En caso de tener que realizar una migración entre servidores Web Linux, los pasos descritos en el proyecto serían similares, sin embargo la migración entre diferentes sistemas puede tener otros problemas adicionales a los que se han tratado en el presente proyecto.