Migrar de Apache/PHP a Nginx/PHP en CentOS

nginx2Si contamos con un servidor Apache, quizá nos interese pasarlo a nginx con el menor downtime posible. Yo he hecho alguna prueba partiendo del siguiente entorno:

  • CentOS release 6.6
  • Apache/2.2.15 sin módulos adicionales
  • VirtualHosts para un proyecto PHP 5.3.3

Lo que haremos con nginx es instalarlo y configurarlo de forma muy básica en un puerto diferente y posteriormente una vez esté todo bien, cambiar puertos de escucha.

ATENCIÓN: Si estás pensando en migrar de Apache a Nginx, en producción, ten en cuenta que dependiendo de tu entorno, deberás hacerlo de una u otra manera. No es lo mismo migrar un proyecto python que sirve Apache via mod_wsgi, que un proyecto PHP que ni si quiera usa mod_rewrite (como en este ejemplo). Este post, por tanto, te puede servir de punto de partida, pero no es la «guía definitiva».

Instalación de nginx

En primer lugar, deberemos crear el fichero para acceder al repositorio de nginx, pues éste no viene en los repositorios de CentOS.

[root@lab01 ~]# vi /etc/yum.repos.d/nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1

Tras configurar el repo, ya podremos instalar nginx via yum:

[root@lab01 ~]# yum install nginx

Continuar leyendo «Migrar de Apache/PHP a Nginx/PHP en CentOS»

Pasos para migrar un proyecto web

LAMP MigrationMigrar un proyecto web (php/mysql) de un servidor a otro(s) puede parecer un proceso sencillo, pero rara es la vez en la que no salen imprevistos. Por esta razón, prefiero tener bien documentado todo el proceso de migración, antes de empezar, para evitar sobresaltos e ir sobre seguro.

La idea del siguiente proceso, es clonar la base de datos del servidor a migrar al nuevo servidor, y una vez clonada, modificar el código del servidor a migrar para empezar a usar la base de datos del nuevo server en lugar de la que usaba hasta ahora. De esta manera, no se perderán datos cuando se inicie la modificación de las DNS para apuntar al nuevo servidor.

REQUISITOS

  • En el nuevo servidor, abrir (por lo menos) los puertos 22 y 3306 para la IP del servidor a migrar.
  • Apache y MySQL instalados y configurados en el nuevo server, incluído el vhost del proyecto.
  • Resto de dependencias del proyecto instaladas en el nuevo server.

Continuar leyendo «Pasos para migrar un proyecto web»

Migrar un certificado SSL

SSL CertificateUna pregunta que me ronda por la cabeza es si es realmente necesario realizar algún tipo de actuación, al migrar una aplicación de un servidor a otro, en cuanto al certificado SSL estándar (de los que no realizan validación contra la autoridad certificadora, una vez emitido el certificado) se refiere, si no cambia el dominio y se mantiene el entorno (léase, si migramos de un servidor Red Hat/Apache a un CentOS/Apache, por ejemplo).

Pongamos el ejemplo de una página web con un certificado SSL para el dominio www.midominio.com. De esta manera, al entrar a https://www.midominio.com, se validará el certificado SSL. Si tenemos este certificado en un servidor en Amazon EC2 que resuelve el dominio www.midominio.com, y queremos migrar este servidor a un nuevo hosting, por ejemplo RackSpace, ¿tendríamos que realizar alguna actuación con el certificado SSL? Para generarlo, bien que tuvimos que generar una petición CSR desde el servidor de Amazon EC2. ¿O bien bastaría con copiar los archivos .key y .crt al nuevo servidor en RackSpace?

Continuar leyendo «Migrar un certificado SSL»

Migración de hosting

Ya hacía tiempo que quería cambiar de hosting, y he aprovechado estas fechas tal señaladas para realizar la migración de mi web de un proveedor de hosting a otro. Me he decidido por 000webhost.com, después de pasar los últimos 2 años con 1and1, en su plan de bienvenida.

Durante estos dos años en 1and1, no he tenido problemas, a excepción del acceso con cliente FTP, que se ha llegado a hacer tedioso e incomprensiblemente lento y “fallón”.

En cuanto al nuevo proveedor, 000webhost.com, para mis necesidades tiene sus ventajas e inconvenientes. Como ventaja principal, tiene un plan gratuito que parece tener buena pinta. Como desventaja, su utilidad fantástico para la instalación «sencilla» de programas como «WordPress» no funciona, y lleva así un buen tiempo (tanto, que empiezo a pensar que únicamente les funciona el fantástico a los usuarios con cuentas de pago).

En cualquier caso, para la migración manual del WordPress, he seguido estos pasos:

  1. Descargar la última versión de todos los archivos de WordPress de mi antiguo servidor.
  2. Realizar un backup de la base de datos con un el plugin de wordpress wp-database-backup (que ha resultado no funcionar).
  3. En el nuevo hosting, crear una base de datos mysql cualquiera desde el cPanel de 000webhosts, para alojar la base de datos de Wordress (al finalizar la creación aparece el resumen de los detalles que necesitaremos para la instalación manual de Wordress).
  4. Subir por FTP todos los archivos de WordPress al nuevo servidor.
  5. Modificación del archivo config.php de WordPress, para usar los detalles de la base de datos creada en el punto 4, siguiendo estas indicaciones.
  6. Subir el archivo config.php al servidor.
  7. Ejecutar https://helloit.es/wp-admin/install.php
  8. Seguir el asistente, para al finalizar, tener nuestro nuevo blog vacío pero funcionando.
  9. Entrar con phpMyAdmin a la administración del antiguo blog, y realizar un backup por defecto de las tablas de WordPress.
  10. Editar la consulta sql generada para reemplazar todas las alusiones a mi anterior hosting por el nuevo (buscando http://s229103401.mialojamiento.es y reemplazando por https://helloit.es). Eliminar todas las querys del tipo CREATE TABLE para dejar únicamente las del tipo INSERT INTO.
  11. Entrar con phpMyAdmin a la administración del nuevo blog, y vaciar (que no eliminar) todas las tablas de la base de datos de WordPress (pero sin remover la base de datos).
  12. Ejecutar la sentencia sql modificada con el backup del blog.

Después de realizar todos estos pasos, he conseguido migrar el blog de un hosting a otro, al parecer, con éxito. Finalmente, he necesitado modificar mi registro DNS para que mi dominio apunte a la ip del nuevo servidor.

Ahora tocará postear, más a menudo 🙂