Cómo preparar un entorno de desarrollo de un sitio web en Windows General Añadir comentarios En este artículo vamos a explicar paso a paso la preparación de un entorno de desarrollo sobre un ordenador con sistema operativo windows, para poder probar las modificaciones y mejoras que queremos incorporar a nuestro sitio web, sin afectar al servidor en producción. Introducción Cuando se está desarrollando el código de una aplicación o servicio ofrecido en internet a través de un servidor web, es muy conveniente disponer de un entorno de desarrollo local en el que podamos trabajar sin afectar al servidor en producción. Cuando los cambios en dicho entorno han sido probados satisfactoriamente, se realiza el “paso a producción”. Lo deseable es que el entorno de desarrollo sea lo más parecido posible a la plataforma sobre la que se ejecuta el servidor de producción; la plataforma más usada para ofrecer servicios web en internet es una combinación de: Un sistema operativo Linux (Debian, CentOS,…) Un servidor web Apache Una base de datos MySQL Un software escrito en el lenguaje de programación PHP (o bien Perl o Python) este tipo de plataforma es conocida como LAMP, por las letras iniciales de sus componentes. El sistema operativo Linux es normalmente preferido por su estabilidad. Sin embargo, es muy habitual que el ordenador utilizado por la persona encargada del desarrollo ejecute alguna de las versiones del sistema operativo Windows. En dicho equipo podemos preparar una plataforma WAMP (Windows+Apache+MySQL+PHP). WampServer Cada uno de los componentes del entorno puede ser instalado manualmente por separado. Sin embargo, es mucho más cómodo utilizar los paquetes disponibles en www.wampserver.com, para realizar en una sola operación la instalación de todos ellos, sobre hardware de 32bit o de 64bit, y para distintas versiones de los componentes. Para instalarlo, accedemos a la página de descarga de wampserver. Debemos seleccionar el paquete (de 32bit o de 64bit, dependiendo del hardware del ordenador en donde vamos a realizar la instalación), que contenga las versiones de los componentes más próximas a las versiones existentes en producción. En nuestro caso, descargamos “WAMPSERVER (64 BITS & PHP 5.4) 2.2E”, que incluye: Apache 2.2.22 Mysql 5.5.24 PHP 5.4.3 XDebug 2.1.2 XDC 1.5 PhpMyadmin 3.4.10.1 SQLBuddy 1.3.3 webGrind 1.0 Al pulsar en el enlace de descarga, aparece una ventana de popup en la que nos indica que también debemos instalar el runtime de Visual C++ 2010 correspondiente a nuestro equipo: instalar-wampserver En nuestro ordenador ya estaba instalado el runtime de Visual C++, por lo que directamente procedemos a realizar la instalación de wampserver2.2e-php5.4.3-httpd2.2.22-mysqld5.5.24x64.exe: instalar-wampserver-2 Una vez instalado, en la bandeja del sistema aparece un icono desde el que podemos controlar los servicios de wampserver. Haciendo click sobre el mismo con el botón izquierdo del ratón, se presenta el menú de control: wampserver-menu En dicho menú, seleccionamos “Start All Services” y a continuación accedemos desde nuestro navegador a la url “http://localhost”. Si la instalación se ha realizado correctamente, podremos ver la página de configuración de WampServer: wampserver-home Instalación de la aplicación en el entorno de desarrollo Para copiar la aplicación desde el servidor de producción al entorno de desarrollo, debemos: Copiar la base de datos Copiar el contenido estático, scripts PHP y ficheros de configuración Configurar el servidor apache Configurar el servicio DNS editando el fichero hosts A continuación detallamos la manera de llevar a cabo cada uno de estos pasos. Copiar la base de datos En el entorno local deberemos crear una base de datos con el mismo nombre que la que existe en producción, y también deberemos crear el usuario con el que se accede y concederle los permisos, para que el acceso a la base de datos local se realice exactamente igual que el acceso a la base de datos de producción. Si la base de datos de producción es accesible mediante phpmyadmin, podemos realizar un “Export” de toda la base de datos con esta utilidad. En caso contrario, si es posible conectarse al servidor por ssh, podemos realizar un volcado de la base de datos por línea de comandos, y copiarlo después al ordenador local por ftp. (Si la base de datos es muy grande, podemos comprimir el volcado para tardar menos en realizar la copia): local$ ssh usuario@servidor servidor$ mysqldump -u dbuser -pdbpass base_de_datos > base_de_datos.dmp servidor$ ^D local$ ftp servidor ftp> get base_de_datos.dmp Tras obtener el volcado, accedemos a la instalación local de phpMyAdmin desde el enlace en la página “http://localhost”, y procedemos a realizar la importación de la base de datos. También desde phpMyAdmin, podemos crear el usuario con el que se accede a la base de datos y concederle los permisos de acceso. wampserver-importar-mysql Nota: Si la aplicación utiliza un CMS, es habitual que exista un fichero de configuración en el que se especifican el servidor, nombre de la base de datos, usuario y contraseña. Por ejemplo, en una instalación de wordpress, el fichero wp-config.php contiene las sentencias: /** El nombre de tu base de datos de WordPress */ define('DB_NAME', 'nombredetubasededatos'); /** Tu nombre de usuario de MySQL */ define('DB_USER', 'nombredeusuario'); /** Tu contraseña de MySQL */ define('DB_PASSWORD', 'contraseña'); /** Host de MySQL */ define('DB_HOST', 'localhost'); Del mismo modo, en una instalación Joomla, el fichero configuration.php contiene las sentencias: public $host = 'localhost'; public $user = 'nombredeusuario'; public $password = 'contraseña'; public $db = 'nombredetubasededatos'; Copiar el contenido estático Podemos utilizar un cliente FTP como FileZilla, o cualquier otro mecanismo que esté a nuestra disposición, para copiar al ordenador local, bajo un directorio cualquiera (por ejemplo, “C:wamppublic_html”) todos los ficheros y directorios existentes bajo la raiz del servidor web de producción. Configurar el servidor Apache El fichero principal de configuración de apache en la instalación wamp se encuentra en: C:wampbinapacheapache2.2.22confhttpd.conf Adicionalmente, se pueden configurar hosts virtuales en el fichero: C:wampbinapacheapache2.2.22confextrahttpd-vhosts.conf Suponiendo que nuestro servicio de producción se encuentra en la url “http://www.servidor.com”, Editamos este último fichero para añadir la definición de un host virtual como sigue: <VirtualHost *:80> ServerName www.servidor.com DocumentRoot "C:wamppublic_html" </VirtualHost> Habiendo hecho esto, las solicitudes que lleguen al servidor apache local haciendo referencia al nombre de servidor “www.servidor.com” serán tratadas conforme a las directrices contenidas en la definición del host virtual que hemos añadido. En el interior de la definición del Virtual Host podemos añadir todas las directrices adicionales que sean requeridas por nuestro servidor. Por ejemplo, es habitual añadir una directriz que permite el uso de ficheros .htaccess: <Directory C:wamppublic_html> AllowOverride All </Directory> Configurar la resolución de nombres Pero, ¿ como se configura el equipo para que una solicitud que realiza el navegador para obtener la página “http://www.servidor.com” sea enviada al servidor apache local ?. Para atender una solicitud de una página, un navegador comienza por convertir el nombre del servidor en una dirección IP. Para ello, en Windows, consulta primero el fichero “C:WindowsSystem32driversetchosts”. Si encuentra el nombre de servidor en este fichero, utiliza la dirección IP asociada. En caso contrario, solicita la conversión del nombre a dirección IP al servidor DNS (Domain Name Service) que tenga en su configuración de red. Por lo tanto, podemos editar el fichero “C:WindowsSystem32driversetchosts” de nuestro ordenador, y añadir al mismo una línea de la forma: 127.0.0.1 www.servidor.com De esta forma, el navegador convertirá el nombre www.servidor.com en la dirección 127.0.0.1 (127.0.0.1 es la dirección IP de “localhost”, que siempre se refiere al ordenador en donde se utiliza). Nota: Para editar el fichero hosts, debemos ejecutar notepad (u otro editor de texto disponible) con privilegios de administrador. Una vez editado el fichero hosts, ya está completa la configuración del entorno de desarrollo en el equipo local. Ahora, cuando accedemos desde el navegador a la url “http://www.servidor.com”: El nombre www.servidor.com se traduce en 127.0.0.1, y la petición es enviada al servidor apache local La petición es procesada conforme a las directrices en el host virtual, que indican como DocumentRoot el directorio en donde se encuentra el contenido estático y los scripts de nuestra aplicación. Los scripts, cuando se conectan a la base de datos, se conectan a la instancia local de MySQL. Nota: Si después de haber hecho estos cambios queremos acceder al servidor de producción desde el equipo de desarrollo, deberemos volver a editar el fichero hosts y comentar la línea que hemos añadido. Para ello, basta con insertar el carácter # al comienzo de la línea: resumen de conectividad abierta de bases de datos Correo electrónico Imprimir IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente. 110093 Renuncia a responsabilidad de los contenidos de la KB sobre productos a los que ya no se ofrece asistencia alguna El presente artículo se escribió para productos para los que Microsoft ya no ofrece soporte técnico. Por tanto, el presente artículo se ofrece "tal cual" y no será actualizado. RESUMEN Conectividad abierta de bases de datos (ODBC) es la interfaz estratégica de Microsoft para obtener acceso a datos en un entorno heterogéneo de relacional y norelacionales, sistemas de administración de base de datos. Basado en la especificación de interfaz de nivel de llamada del grupo de acceso SQL, ODBC proporciona una forma abierta, independiente del proveedor de acceso a datos almacenados en una variedad de bases de datos de mainframe, minicomputadora y equipo propietario. ODBC alivia la necesidad de aprender varias interfaces de programación de aplicaciones de proveedores de software independientes y desarrolladores corporativos. ODBC proporciona ahora una interfaz de acceso a datos universal. Con ODBC, los desarrolladores de aplicaciones pueden permitir que una aplicación para obtener acceso al mismo tiempo, ver y modificar datos procedentes de varios diversas bases de datos. ODBC es un componente básico de la arquitectura de servicios abiertos de Microsoft Windows. Apple ha respaldado ODBC como clave de habilitación de la tecnología anunciando apoyo en System 7 en el futuro. Con el apoyo de la creciente industria, ODBC es rápidamente como un sector importante estándar emergente para acceso a datos para aplicaciones Windows y Macintosh. MÁS INFORMACIÓN ODBC es una especificación para que los desarrolladores escribir: Una aplicación habilitada para ODBC "front-end" o "cliente" desktop, también conocido como un "cliente ODBC."Esta es la aplicación que el usuario del equipo ve en la pantalla. -o- Un controlador ODBC para un "fondo" o "servidor" DBMS (sistema de administración de bases de datos). Se trata de la aplicación de DBMS que reside en un equipo que se utiliza para almacenar los datos de acceso varios usuarios. Esta aplicación no es lo que se carga en el equipo del usuario final. Esta aplicación de servidor es normalmente más eficaz (más rápido, con seguridad centralizada y copias de seguridad de datos etc.) que la aplicación cliente. El controlador ODBC reside entre el cliente de ODBC y el DBMS; Sin embargo, se carga en el equipo cliente. Para utilizar ODBC, se requieren los tres componentes siguientes: Ejemplos de cliente - un ODBC front-end habilitado (también llamado cliente ODBC) Ejemplos ODBC: Microsoft Access, una aplicación creada con Access, una aplicación creada con Microsoft Visual Basic, una aplicación creada con C + Win SDK + ODBC SDK o habilitados para ODBC, las aplicaciones de otros fabricantes (como Lotus). CONTROLADOR ODBC - un controlador ODBC para el servidor ODBC. El catálogo de controladores ODBC contiene una extensa lista de controladores ODBC. Por ejemplo, el Microsoft ODBC Driver Pack es una colección de siete controladores de ODBC listo para utilizarse o incluido con los clientes ODBC. Un controlador de ODBC de SQL Server se incluye con Access y Informix está trabajando en un controlador ODBC de Informix. Para obtener un catálogo de controladores ODBC, llame a Microsoft Order Desk en el (800) 360-7561. Si está fuera de los Estados Unidos, póngase en contacto con la subsidiaria local. Para encontrar la subsidiaria local, consulte el sitio Web de oficinas de Microsoft World Wide en: http://www.Microsoft.com/worldwide/ Cualquier cliente ODBC puede tener acceso a cualquier DBMS para el que hay un controlador ODBC. SERVIDOR DBMS es un servidor DBMS, por ejemplo de SQL Server, Oracle, AS/400, Foxpro, Microsoft Access o cualquier DBMS para el que existe un controlador ODBC o el fondo. ¿Cómo interactúan estos tres componentes? El cliente ODBC utiliza un lenguaje o el vocabulario de comandos (que se conoce como "ODBC") para solicitar datos de, o para enviar datos en el back-end o servidor DBMS. Sin embargo, el DBMS no comprende la solicitud del cliente ODBC hasta que el comando se pasa a través del controlador ODBC para DBMS en concreto. Este controlador ODBC es un software que reside en el front-end. El controlador ODBC traduce el comando en un formato que puedan entender el servidor ODBC. El servidor ODBC envía la respuesta al controlador de ODBC, que traduce la respuesta en un formato que puede entender el cliente de ODBC. ¿Qué es tan importante acerca de ODBC? En primer lugar, los desarrolladores de aplicaciones no es necesario modificar las aplicaciones para que puedan tener acceso a datos de back-ends de varios. Ejemplos de ODBC en uso Acceder al accesso de datos front-end desde un back-end de Oracle utilizando el controlador Oracle ODBC, que se distribuye con Access 1.1. Visual Basic front-end acceso a los datos desde un back-end dBASE usando el controlador de ODBC, que es parte del paquete de controladores de base de datos de MS ODBC de dBASE. Aplicación C escrito con C + ODBC SDK de SDK + ganar acceso a los datos de una / 400 mediante el AS / 400 disponible de Rochester Software de controlador ODBC. Respuestas y preguntas básicas 1. ¿Qué es el SDK de ODBC? El SDK de ODBC se distribuyen en discos y contiene alrededor de 150 páginas de texto que permite al desarrollador escribir un cliente habilitado para ODBC o un controlador ODBC. 2. ¿Cuál es la base de datos ODBC Driver Pack? La base de datos ODBC Driver Pack es una colección de los controladores ODBC que se vende por Microsoft. 3. ¿Qué es el catálogo de controladores ODBC? El catálogo de controladores ODBC contiene descripciones de los controladores ODBC desarrollados por Microsoft y otras compañías de software. 4. ¿Controladores ODBC están disponibles actualmente? Decenas de controladores ODBC están disponibles, las de Microsoft SQL Server, XLS, texto, xBase, Paradox, ODS, Oracle, RedISAM, FoxBase, Btrieve, Integra SQL, DEC Rdb, SQLBase, Informix, Ingres, DB2, SQL/DS, Teradata y SQL/400 incluidas. 5. ¿Cómo se puede escribir un controlador ODBC? Para escribir un controlador ODBC, utilizar C + Win SDK + ODBC SDK. 6. ¿Qué clientes ODBC están disponibles actualmente? De Microsoft: Access, Visual Basic, Kit de Foxpro + conectividad, Word 6.0 para Windows, Excel 5.0, herramienta de MS Query. De otros proveedores: PowerSoft, descripción de la propiedad, Lotus 1-2-3, Lotus Approach, Lotus Notes, Q+E y otros. 7. ¿Cómo uno escribe un cliente de ODBC? Con C + Win SDK + ODBC SDK, o con Access, o utilizando Visual Basic, o utilizando WinFox + Kit de conectividad o utilizando una de las herramientas de otros proveedores diseñados para ello. REFERENCIAS Para obtener más información acerca de ODBC, consulte los artículos siguientes en Microsoft Knowledge Base: 132131controladores 2.0 admite plataformas de bases de datos de ODBC White Papers y herramientas de desarrollo de word 164370 163734 información de migración de soluciones de Word en el Web Para obtener más información acerca de Informix, visite el siguiente sitio Web de IBM Informix: