Instalación
Instalar Magento es una tarea realmente sencilla, que puede ser realizada en pocos pasos, sin embargo existen varios requisitos que debe satisfacer nuestro entorno de trabajo. Bien sea nuestro entorno de pruebas, o nuestro entorno de producción.
Técnicamente hablando ambos entornos, idealmente, deberían de ser similares y cubrir los requisitos de Magento. Muy resumidamente podemos decir que necesitaremos:
-
Apache 1.3+
-
PHP 5.2+
-
mySQl 4.1.2+
Aunque realmente nos estaríamos quedando algo cortos con la especificación, pues realmente vamos a necesitar:
-
Linux x86, x86-64
-
Extensiones de php:
-
PDO_MySQL
-
simplexml
-
mcrypt
-
hash
-
GD
-
DOM
-
iconv
-
curl
-
-
Safe_mode off
-
Memory_limit de al menos 256Mb aunque más es preferible (512 es sugerido)
-
Posibilidad de ejecutar tareas Cron
-
Posibilidad de modificar los ficheros .htaccess
La lista de requisitos es bastante amplia, y, como hemos comentado antes, tanto el entorno de pruebas como el de producción deberían cumplirla.
Entorno de producción
Aunque durante el curso no vamos a trabajar en un entorno de producción real, como sería instalar nuestra web en un proveedor de hosting. Me gustaría hacer hincapié en algunos puntos importantes a la hora de valorar que proveedor contratar:
-
El limite de memoria, 256Mb hace referencia a la cantidad de memoria que el servidor cede para la ejecución de los scripts php, no a la memoria del servidor. Magento es un software más exigente que otras soluciones, y por lo tanto los requisitos son bastante elevados. No todos los proveedores de hosting ofrecen esta cantidad de memoria (yo he visto casos de ofrecer 16 o 32Mb). Como resultado nuestro sitio puede o bien no funcionar en absoluto, o hacerlo muy lentamente, estropeando la experiencia a nuestros visitantes, y potenciales clientes.
-
Posibilidad de modificar los ficheros .htaccess, ya sea para utilizar la extensión mod_rewrite de Apache u otras tareas. No todos los proveedores de hosting permiten esto, sobre todo en los hostings compartidos donde la configuración es global para todos los clientes.
-
Posibilidad de ejecutar tareas Cron. De nuevo nos encontraremos con que la mayoría de hostings compartidos no nos ofrezcan esta posibilidad, ya que el grado de control sobre el servidor es bastante amplio.
Como podemos ver, son unos requisitos bastante específicos, que no todos los proveedores cumplen. De esta manera la mejor opción es enviarles la lista de requisitos antes de contratar nada, y una vez contratado comprobar que el servicio cumple con todo lo necesario.
Una manera muy sencilla de comprobar esto es descargandonos un pequeño script desde esta página:
Este script comprobará que nuestro servidor cumple con todo lo necesario, evitándonos dudas y futuros problemas.
Entorno de pruebas
O de desarrollo. Será en este entorno donde desarrollemos nuestro sitio, para posteriormente migrarlo al entorno de producción. A partir de ahí todos los cambios, pruebas y modificaciones, siempre serán realizadas, y probadas, en este entorno previamente a implantarlas en el entorno de producción.
Esto nos garantiza que lo que tengamos en producción ha sido probado previamente, y funciona correctamente.
Como entorno de pruebas nos sirve prácticamente cualquier equipo, solo necesitaremos instalar un servidor apache, php y mySQL. Afortunadamente existen paquetes que instalan todos estos componentes automáticamente. Como puede ser el caso de XAMPP y WAMP. Durante el curso vamos a utilizar el software WAMP, lo podemos descargar desde esta página:
El proceso de instalación es bastante sencillo, ya que consiste en aceptar las opciones que nos vienen por defecto.
Al finalizar dicho proceso se habrá creado una carpeta wamp en nuestra unidad c: (en la configuración por defecto).
Dentro de esta carpeta wamp, encontraremos otra llamada www, que vendría a ser la carpeta raíz de nuestro servidor. Será aquí dentro donde instalaremos nuestra copia de Magento. Pero no lo vamos a instalar directamente en www, sino en una nueva carpeta que crearemos, llamada proyecto-mg, por ejemplo. De esta manera, la ruta final hasta nuestra instalación de Magento será c:/wamp/www/proyecto-mg.
Bien, nuestro siguiente paso será descargar una copia de Magento, esto lo podemos hacer desde la siguiente página:
http://www.magentocommerce.com/
Desde ahí podremos hacer clic en el menú download, y, posteriormente en Download Magento. Luego se nos mostrará una ventana donde deberemos elegir la versión que queremos descargar. Para el presente curso vamos a utilizar la magento-1.4.1.1, que es la última versión estable disponible a fecha de hoy.
En este momento también nos es posible descargarnos los datos de ejemplo, y es interesante hacerlo, pues nos permitirá contar con una web aparentemente funcional, permitiéndonos hacer pruebas y navegar por ella de una forma mas realista.
Antes de continuar es importante asegurarnos de que nuestro servidor local está en marcha, en caso afirmativo deberemos ver un pequeño símbolo en la zona del reloj, como este:
Si no lo vemos, significará que el servidor está apagado. Encenderlo es tan trivial como hacer clic en el icono de escritorio que nos habrá generado la instalación del mismo:
No debemos tampoco olvidar el habilitar todos las extensiones de php que hemos visto en el apartado de requerimientos. Lo haremos desde el icono de wamp, el que está al lado del reloj, haciendo clic en el. Navegaremos al menú php, luego al menú extensiones, e iremos haciendo clic en las opciones necesarias, para ir activándolas, en caso de que no estén.
Como podemos ver es muy simple activar las extensiones desde la interfaz de wamp. Repasaremos todas para que no se nos olvide ninguna. Aunque de ser así, Magento, durante el proceso de instalación se encargaría de recordárnoslo.
Comenzando con la instalación
Antes de poder comenzar con la instalación, deberemos de crear también una base de datos, afortunadamente wamp instala una copia de phpmyadmin, que podremos lanzar visitando la siguiente url:
Desde esa pantalla daremos nombre, y crearemos, nuestra base de datos, para este ejemplo la llamaremos proyecto-mg, para que coincida con la carpeta del servidor, aunque realmente cualquier nombre sería igual de correcto.
Ahora descomprimiremos el zip de Magento que hemos descargado, en mi caso magento-1.4.1.1.zip, y moveremos todo su contenido a la carpeta c:/wamp/www/proyecto-mg
El aspecto de la carpeta, al final de la copia de archivos, será más o menos el siguiente:
Pero no vamos a entrar todavía en detalles sobre esta estructura. Si recordamos, también hemos descargado otro fichero con los datos de ejemplo para la instalación, es el momento de que utilicemos dicho fichero. En mi caso el fichero se trata de magento-sample-data-1.2.0.zip, lo descomprimiremos. Dentro encontraremos dos cosas:
-
Una carpeta “media” → que contiene las imágenes de los productos de ejemplo.
-
Un fichero SQL “magento_sample_data_for_1.2.0.sql” que generará las tablas de base de datos con los contenidos de los datos de ejemplo.
La carpeta “media” simplemente la copiaremos y pegaremos en nuestra carpeta proyecto-mg. Para instalar el fichero SQL volveremos a nuestra pantalla de phpmyadmin:
Desde el menú importar, seleccionaremos este fichero, y aceptaremos. Al final del proceso nuestra base de datos contendrá 229 nuevas tablas, así como los datos de ejemplo necesarios. Pero no nos preocupemos, no será necesario que indaguemos en esta tablas. Haberlas creado será suficiente.
Después de esto, si navegamos a http://localhost/proyecto-mg veremos una pantalla similar a la siguiente, la pantalla inicial de instalación de Magento:
En este momento es muy tentado aceptar los términos y continuar con la instalación. Pero hay un punto importante que me gustaría que observáramos primero. Como vemos estamos instalando nuestro sitio de ejemplo en http://localhost/proyecto-mg pero esto tiene un problema.
Una vez hayamos terminado la instalación, e intentemos acceder al panel de gestión, veremos que aún introduciendo datos correctos, no podremos. Se debe a que Magento utiliza cookies, pero, por defecto, muchos navegadores no crean cookies para webs que no contengan un punto. Es decir, para localhost no se crearían cookies, pero para www.localhost.com si que se crearían. Al no haber cookies, no podremos acceder al panel de administrador de Magento. ¿Que posibles soluciones tenemos para este problema? En realidad existen varias, por ejemplo, utilizar la ruta http://127.0.0.1/proyecto-mg/ en lugar de http://localhost/proyecto-mg . Esta es un solución bastante sencilla, que no requiere de ninguna modificación o trabajo por nuestra parte.
Por supuesto existen formas más elegantes de solucionar este problema, por ejemplo, añadiendo una entrada al fichero hosts de windows. Este fichero se encuentra en C:\Windows\System32\drivers\etc
y la entrada que debemos añadir es esta:
127.0.0.1 www.localhost.com
De manera que cuando en nuestra navegador insertemos http://www.localhost.com/proyecto-mg se resuelva nuestro dominio. Con este pequeño cambio habremos solucionado nuestro problema y podremos, ahora sí, continuar con la instalación.
El proceso de instalación
A partir de ahora nos encontramos con un proceso de instalación común, donde, entre otras configuraciones, tendremos que seleccionar la moneda, zona horaria etc
Además, como se puede apreciar en la siguiente imagen, tendremos que seleccionar:
-
Nuestro host → en este caso localhost
-
El nombre de la base de datos → en nuestro caso proyecto-mg
-
El usuario de la base de datos
-
Y su contraseña
- La url base → en nuestro caso http://www.localhost.com/proyecto-mg/
-
La ruta hacia el panel de administración → dejaremos la opción por defecto, “admin”
-
Habilitaremos el uso de Apache rewrites, para generar URLs SEO
Una vez aceptemos esta pantalla, Magento generará la base de datos y nos presentará la última pantalla de instalación. En ella elegiremos las siguientes opciones:
-
Nombre y apellido
-
Cuenta de email
-
Usuario → en nuestro caso “admin”
-
Password para la zona de administración → en nuestro caso “administrador1”
-
Y la llave de encriptación → en este caso “admin” también.
Y con esto estaría finalizada la instalación. Rápida y sencilla. Pero, antes de continuar me gustaría remarcar un par de aspectos.
Configuración de los permisos en servidores linux
Hasta ahora hemos trabajado en el entorno de pruebas instalado por el WAMP bajo windows, sin embargo, en caso de que lo instalemos en un servidor linux, necesitaremos conceder permisos de escritura a ciertos ficheros y directorios. Pasaremos ahora a enumerarlos:
-
fichero -> var/.htaccess
-
directorio -> app/etc
-
directorio -> var
-
directorio -> media
No son necesarias más modificaciones para instalar Magento.
Actualizando nuestra versión de Magento
Aunque existen varios métodos para actualizar nuestra versión de Magento, una de las formas más sencillas de realizarlo es siguiendo los siguientes pasos:
-
Lo primero sería realizar una copia de seguridad de la base de datos, desde nuestro panel de phpmyadmin.
-
Hay que tener en cuenta, para el punto anterior, que, al ser la base de datos tan grande, puede fallar la exportación debido al limite de tiempo de ejecución de los scripts php. Podemos cambiar esta configuración en el fichero php.ini -> max_execution_time
-
Después haremos una copia de todos nuestros ficheros, poniendo especial énfasis en los siguientes:
-
Los que hayamos modificado
-
La carpeta media
-
Copiaremos el fichero app/etc/local.xml
-
-
A partir de ahí descargaremos un nuevo fichero de instalación, conteniendo la nueva versión.
-
Extraeremos esos ficheros y sobrescribiremos los actuales.
-
Borraremos el contenido de los directorios:
-
var/cache
-
var/session
-
-
Cargaremos, en nuestro navegador, cualquier página de nuestra instalación de Magento, lo que finalizará con el proceso de instalación.
Migrando nuestra instalación de Magento
Una vez hayamos finalizado de trabajar en nuestra instalación local, necesitaremos trasladar a un servidor online, u otro servidor de producción. Para conseguirlos seguiremos los siguientes pasos:
-
Primero accederemos a nuestro panel de admin, después accederemos al menú System -> configuration -> web. Tanto en el panel Secure, como en el Unsecure, cambiaremos la información de Base Url a la que corresponda en nuestro nuevo servidor, o bien, por {{base_url}}
-
Copiaremos y exportaremos la base de datos, importándola en el nuevo servidor.
-
Copiaremos todos los ficheros al nuevo servidor.
-
Borraremos el contenido de los directorios:
-
var/cache
-
var/session
-
Esta información, sobre la URL base de nuestra web, también la podemos encontrar en la tabla:
-
core_config_data
En caso de que la configuración de conexión con la base de datos sea diferente, la podremos modificar en el fichero app/etc/local.xml, donde encontraremos las siguientes lineas:
<connection>
<host><![CDATA[localhost]]></host>
<username><![CDATA[root]]></username>
<password><![CDATA[]]></password>
<dbname><![CDATA[proyecto-mg]]></dbname>
<active>1</active>
</connection>
Es en estas líneas donde configuraremos los nuevos parámetros de conexión con la base de datos. Con esto hemos visto los aspectos más importantes de la migración. Recalcar que puede ser necesario configurar los permisos de las carpetas, para que todo funcione correctamente.
¿Problemas con los datos de ejemplo?
Es posible que, incluso habiendo instalado correctamente los datos de ejemplo, estos no aparezcan en la página, o nos devuelvan mensajes de error 404. Solucionaremos este problema accediendo al panel de admin menú system -> index management, ahí haremos clic en los links que aparecen en la columna Action (reindex data), tras lo cual todos los productos de demostración funcionarán correctamente.
Deshabilitar la cache
Ahora que estamos en el panel de control, vamos a aprovechar para deshabilitar la cache de Magento. Si no lo hiciésemos, cuando empezásemos a trabajar, y realizar modificaciones, no las veríamos, pues Magento estaría utilizando la cache. Esto puede dar lugar a mucha confusión, e intentar solucionar problemas que realmente no existen.
¿Como hacer esto? Desde el panel de admin, iremos a System -> cache management, seleccionaremos todos los checkbox, y en el desplegable Actions, seleccionaremos disable y haremos clic en el botón submit.
Categorías:









