Instalar Magento en Ubuntu Linux
Instalar este sistema para eCommerce no fue tan sencillo como esperaba, requirió instalar varias librerías, configurar el servidor Apache para que acepte conexiones seguras (https) y otra serie de movimientos que probablemente más de uno se atore con la instalación, con este pequeño tutorial espero ayudar un poco a la comunidad OpenSource latina, quizá en una segunda etapa haga una traducción en inglés, que creo tampoco hay mucha documentación.
Lo primero es tener el servidor Apache, el sistema de base de datos MySQL y PHP5 instalados en tu sistema, eso ya debes tenerlo instalado por tu cuenta, pero si no es asi:
Abre Synaptic (Sistema/Administración/Gestor de paquetes Synaptic) y en el menú Editar selecciona la opción Marcar paquetes por tarea.
Tal como muestra la imagen deberás marcar la opción LAMP Server, también recomiendo que instales phpMyAdmin, este último lo puedes instalar usando el buscador de Synaptic, porque no se instala con el conjunto de paquetes LAMP.
Después de instalar los paquetes LAMP MySQL de pedirá una contraseña de administrador, no la olvides porque es necesaria para crear, borrar o modificar las bases de datos de tu sistema.
Una vez que tenemos instalado nuestro servidor LAMP (Linux, Apache, MySQL, PHP) debemos instalar la libreria CURL que nos solicita Magento:
sudo apt-get install curl libcurl3 libcurl3-dev php5-curl php5-mcrypt
Algo importante que noté si vas a trabajar en grupo es que el servidor tenga un nombre, porque localhost suele dar problemas si más gente accede a tu computadora por red, esto se hace fácil si especificas un nombre a tu computadora en Sistema/Administración/Red y en la pestaña General especificas un nombre para tu computadora, al que después podrán referirse tus compañeros para acceder al servidor de tu computadora:
Ahora viene la parte divertida: crear un certificado SSL para Apache, el cual simulará que estamos bajo una conexión segura, este tipo de certificados los emiten empresas dedicadas a la seguridad informatica, no se que tan aceptables sean los generados por uno mismo.
Por algún extraño motivo Ubuntu (y Debian) no incluye el script para generar estos certificados, pero puedes descargar los scripts de aquí, descomprime el archivo y mueve ssleay.cnf a la carpeta /usr/share/apache2 y el archivo apache2-ssl-certificate a la carpeta /usr/sbin, deberás crear también la carpeta ssl en /etc/apache2 (de modo que quede /etc/apache2/ssl).
Ahora, ejecuta el comando:
sudo apache2-ssl-certificate -days 365
Nota: El parámetro -days 365 es para crear un certificado por un año, porque por default sólo dura un mes, pero si te da problemas omitelo.
El comando anterior ejecutará un script que te pedirá algunas cosas:
Country Name (2 letter code) [GB]: (pon algo aquí, MX=mexico…)
State or Province Name (full name) [Some-State]: (tu estado aquí)
Locality Name (eg, city) []: (tu ciudad acá)
Organization Name (eg, company; recommended) []: (el nombre de tu compañía, o inventa uno)
Organizational Unit Name (eg, section) []: (pon algo acá)
server name (eg. ssl.domain.tld; required!!!) []: (Importante!! leer más abajo)
Email Address []: (tu correo electrónico)
En Common Name debe ir especificado el nombre de tu computadora (recomendado), bien puede ser localhost, pero recuerda que si trabajas en grupo debe llevar el nombre del servidor, habrá que modificar un archivo más delante con el nombre que especifiques aquí.
Ahora, activar el modo SSL:
sudo a2enmod ssl
Copiemos la configuración que ya está definida en las webs que se ven en el puerto 80 con las que se verán en el puerto 443 (conexiones seguras con SSL):
sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/ssl
Y su link simbólico (esto está explicado con detalle en /etc/apache2/README):
sudo ln -s /etc/apache2/sites-available/ssl /etc/apache2/sites-enabled/ssl
A mi me gusta tener separadas las webs que no requieren conexión segura de las que si, así que te recomiendo tener separados en carpetas diferentes:
cd /var/www
mkdir html
cd ..
sudo mkdir www-ssl
cd www-ssl
sudo mkdir html
Ahora, tenemos que configurar unos archivos para preparar los puertos 80 y 443:
sudo gedit /etc/apache2/sites-available/default
Aquí es donde debemos separar las webs inseguras en el puerto 80 y las seguras en el 443, modifica el archivo para que se vea algo como esto:
NameVirtualHost *:80
<VirtualHost *:80>
DocumentRoot /var/www/html
…
Ahora hacemos lo mismo pero para SSL:
sudo gedit /etc/apache2/sites-available/ssl
y definimos que escuche el puerto 443:
NameVirtualHost *:443
<VirtualHost *:443>
DocumentRoot /var/www-ssl/html
…
Nota: usa tu IP asignada o DNS seguido de :443 si tienes alguno para ServerName.
En ese mismo archivo, más o menos a la mitad (en mi caso fue la linea 33 y 34) dice algo como:
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
Después de ese comentario debemos agregar:
SSLEngine On
SSLCertificateFile /etc/apache2/ssl/apache.pem
Guardamos los cambios y seguimos con el archivo /etc/apache2/ports.conf para que escuche también el puerto 443:
sugo gedit /etc/apache2/ports.conf
Y debe tener la linea:
Listen 443
Si no la tiene, agrégala.
Puede ser que tambien requieras editar el archivo /etc/hosts para definir el nombre de tu servidor:
sudo gedit /etc/hosts
y verifica que este comience con algo parecido a esto:
127.0.0.1 localhost
127.0.1.1 joel-laptop
Ahora, reiniciemos el servidor Apache:
sudo /etc/init.d/apache2 restart
Si no da problemas entonces vamos bien, ya tenemos instalado el modulo SSL para conexiones seguras, necesarias para el correcto funcionamiento de Magento, procedemos a descargar Magento, descomprimimos el archivo ZIP y ponemos la carpeta magento en /var/www
Abrimos una ventana de terminal y damos permisos de escritura a algunas carpetas de magento:
cd /var/www/magento
chmod 777 app/etc
chmod 777 var
chmod 777 media
Magento requiere una base de datos ya creada, asi que hagamos una usando phpMySQLAdmin, en nuestro navegador web ponemos la direccion: http://localhost/phpmyadmin/ para entrar requerimos usar el login root y el password que definimos al momento de instalar MySQL cuando instalamos los paquetes LAMP, espero no se te haya olvidado.
En la pantalla anterior podemos crear rápidamente la base de datos con solo poner el nombre y presionar el botón Create (existen muchos otros métodos pero creo este es lo mas sencillo), después de eso procedemos al asistente de instalación de magento con la dirección http://localhost/magento
La primera pantalla es aceptar la licencia de uso, no creo necesites ayuda en esta parte.
La siguiente es para saber donde estas ubicado, selecciona tu lenguaje, zona horaria y moneda y presiona Continue.
El siguiente paso puede tener o no problemas… debe descargar/configurar algunos archivos/librerías, pero aveces no funciona, prueba presionando el boton Proceed with automatic download (beta), si todo sale bien veras un recuadro negro de letras verdes haciendo su respectiva magia y al final del texto el mensaje que todo salio bien, o un mensaje de error si no, si ocurre esto ultimo (PEAR ERROR: install failed) entonces mejor procedemos a hacer la instalación manualmente, abre una ventana de terminal y ejecuta lo siguiente:
cd /var/www/magento
./pear mage-setup
./pear install mage-core/Mage_Pear_Helpers mage-core/Lib_ZF mage-core/Lib_Varien
./pear install mage-core/Mage_All mage-core/Interface_Install_Default
./pear install mage-core/Interface_Frontend_Default mage-core/Interface_Adminhtml_Default
Y esperemos eso salga bien, igual si te marca algun error puedes continuar tranquilamente, no parecen ser vitales para el sistema jeje…
Después de haber logrado (o no) instalar automática o manualmente procedemos presionando el botón Continue after manual download
Lo siguiente es la base de datos de magento, en teoría solo es necesario poner el password de root, asi que procedemos a ponerlo y presionar el botón Continue.
Después de unos segundos tendremos lista la estructura de tablas de la base de datos para Magento, la siguiente pantalla es para definir password para el sistema de administración de Magento, osea la cuenta de administrador, rellena los campos pero asegurate de no olvidar tu password, también deberás definir una llave de encriptación, aquí puedes poner lo que se te antoje, lo que hara esta llave es aplicar un algoritmo basado en lo que definas aquí para no dejar al descubierto números de tarjetas de crédito, passwords y demás cosas, si la dejas en blanco el sistema generara una por ti que te mostrara en la siguiente pantalla.
Felicidades! eso es todo, ya debes tener listo tu sistema ecommerce Magento.
Si, se que parece un mal tutorial por los errores que pueden o no salir siguiendo este método, pero eso también depende mucho de la versión de Magento que estés probando, que hasta no salir la versión 1.0 no puede considerarse estable.
12 comentarios a “Instalar Magento en Ubuntu Linux”
Pues esto de instalar magento es todo un show. Ya ves que en mi mac no se ha podido por problemas varios:
– La dificultad con mySql, se resolvio aparentemente
Pues esto de instalar magento es todo un show. Ya ves que en mi mac no se ha podido por problemas varios:
– La dificultad con mySql, se resolvio aparentemente
– La creacion fallida del SSL para que funcione el magento
– El front end se ve diferente en servidor de la mac que en tu servidor Linux
Y toda esta informacion que pones sobre como instalar el magento me acabo de dar cuenta que cuesta «una lana».
Checa aqui el precio por instalacion del sistema por el equipo de desarrollo magento.
http://www.magentocommerce.com/pro-install/
Price: $149.95 paid via paypal.
Turnaround: Typically 1-2 business days (we can often install in the same day).
Asi que los que usen tu tutorial con exito se ahorraran una buena lana.
PD
Ya llegue al final de fatal frame
pero esta muy dificil llegar por los tuneles y llego sin vida
al fantasma final
Super… muy bueno gracias. justo. al detalle no presente mas que uno o dos problemillas pero tonticos uno por falta de libreria y por no especificarla en el php.ini . 🙂
Thanks 🙂
Muy buen trabajo
die quintines
Estoy teniendo problemas para logearme luego de la instalacion….
estoy 100% seguro que se cual es el username y password que puse, pero no puedo pasar de la pantalla de login.
any clue
@Daarpexxx: metete via PHPMyAdmin a la base de datos de magento, y busca cual es la tabla que traiga la lista de usuarios, en password ponle uno nuevo pero asegúrate de codificarla con la funcion MD5.
muchas gracias, despues de mucho logre hacerlo, te digo que se bastante complicado, tambien quiero saber si la tienda se puede poder en español u como
Puede ser que al reiniciar APACHE2 por primera vez les salte un cartel del tipo «handblack@serebox:~$ sudo /etc/init.d/apache2 restart
* Restarting web server apache2
apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1 for ServerName…
waiting apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1 for ServerName»
no desesperen!
solucion:
necesitas editar el archivo httpd.conf abrelo en una terminal y digita,
sudo gedit /etc/apache2/httpd.conf
Por defecto el archivo httpd.conf esta en vacio, simplemente escribe lo siguiente.
ServerName localhost
Guarda el archivo y cierra el editor, y finalmente reinicias el servidor.
sudo /etc/init.d/apache2 restart
Saludos desde Tierra del Fuego Argentina!!
hola buenas , la verdad …el post me aclaro un poco el tema pero esta bastante incompleto ,faltan bastantes pasos y en la instalación no encuentras el install por estar mal redirigida la carpeta en el sites-enable del apache …cosa que confunde un mogollón al que nunca instalo magento.
De todos modos agradezco mucho tu ayuda y te animo a seguir modificando el post para conseguir una instalación perfecta.
Saludos y gracias
Hola plumifero, esta guía fue escrita en el año 2008, por lo que la instalación, configuración y marcha de Magento han cambiado. No hay planes de actualizar el artículo porque Magento no me ha sido útil desde entonces.
Do know how Magento converts the ab_bb names to dretcroiy/capital names?For example, where would it search for abmodule/subdirectory_filebb?I supposed that it would look in /app/code/local/[package_name]/abmodulebb/absubdirectorybb/abfilebb.php. But it stille gives me this error, that it can’t find the model.
Comentarios cerrados.