{"id":1130,"date":"2008-02-09T23:34:55","date_gmt":"2008-02-10T05:34:55","guid":{"rendered":"http:\/\/www.joelsedano.com\/blog\/?p=1130"},"modified":"2008-02-09T23:41:13","modified_gmt":"2008-02-10T05:41:13","slug":"instalar-magento-en-ubuntu-linux","status":"publish","type":"post","link":"https:\/\/www.joelsedano.com\/blog\/2008\/02\/09\/instalar-magento-en-ubuntu-linux\/","title":{"rendered":"Instalar Magento en Ubuntu Linux"},"content":{"rendered":"<p><a href=\"http:\/\/www.magentocommerce.com\/\" title=\"Magento\"><img decoding=\"async\" src=\"http:\/\/www.joelsedano.com\/blog\/wp-content\/uploads\/2008\/02\/magento-ubuntu.gif\" alt=\"magento-ubuntu.gif\" align=\"left\" \/><\/a>Instalar este sistema para eCommerce no fue tan sencillo como esperaba, requiri\u00f3 instalar varias librer\u00edas, configurar el servidor Apache para que acepte conexiones seguras (https) y otra serie de movimientos que probablemente m\u00e1s de uno se atore con la instalaci\u00f3n, con este peque\u00f1o tutorial espero ayudar un poco a la comunidad <em>OpenSource<\/em> latina, quiz\u00e1 en una segunda etapa haga una traducci\u00f3n en ingl\u00e9s, que creo tampoco hay mucha documentaci\u00f3n.<\/p>\n<p><!--more-->Lo primero es tener el servidor <strong>Apache<\/strong>, el sistema de base de datos <strong>MySQL<\/strong> y <strong>PHP5<\/strong> instalados en tu sistema, eso ya debes tenerlo instalado por tu cuenta, pero si no es asi:<\/p>\n<p>Abre <strong>Synaptic<\/strong> (Sistema\/Administraci\u00f3n\/Gestor de paquetes Synaptic) y en el men\u00fa <strong>Editar<\/strong> selecciona la opci\u00f3n <strong>Marcar paquetes por tarea<\/strong>.<\/p>\n<p style=\"text-align: center\"><img decoding=\"async\" src=\"http:\/\/www.joelsedano.com\/blog\/wp-content\/uploads\/2008\/02\/synapticlamp.jpg\" alt=\"synapticlamp.jpg\" \/><\/p>\n<p>Tal como muestra la imagen deber\u00e1s marcar la opci\u00f3n <strong>LAMP Server<\/strong>, tambi\u00e9n recomiendo que instales <strong>phpMyAdmin<\/strong>, este \u00faltimo lo puedes instalar usando el buscador de <strong>Synaptic<\/strong>, porque no se instala con el conjunto de paquetes <strong>LAMP<\/strong>.<\/p>\n<p>Despu\u00e9s de instalar los paquetes <strong>LAMP MySQL<\/strong> de pedir\u00e1 una contrase\u00f1a de administrador, no la olvides porque es necesaria para crear, borrar o modificar las bases de datos de tu sistema.<\/p>\n<p>Una vez que tenemos instalado nuestro servidor <strong>LAMP<\/strong> (Linux, Apache, MySQL, <acronym title=\"Hypertext PreProcessing\">PHP<\/acronym>) debemos instalar la libreria <strong>CURL<\/strong> que nos solicita <strong>Magento<\/strong>:<\/p>\n<blockquote><p>sudo apt-get install curl libcurl3 libcurl3-dev php5-curl php5-mcrypt<\/p><\/blockquote>\n<p>Algo importante que not\u00e9 <strong>si vas a trabajar en grupo<\/strong> es que el servidor tenga un nombre, porque <strong>localhost<\/strong> suele dar problemas si m\u00e1s gente accede a tu computadora por red, esto se hace f\u00e1cil si especificas un nombre a tu computadora en <strong>Sistema\/Administraci\u00f3n\/Red<\/strong> y en la pesta\u00f1a <strong>General<\/strong> especificas un nombre para tu computadora, al que despu\u00e9s podr\u00e1n referirse tus compa\u00f1eros para acceder al servidor de tu computadora:<\/p>\n<p style=\"text-align: center\"><img decoding=\"async\" src=\"http:\/\/www.joelsedano.com\/blog\/wp-content\/uploads\/2008\/02\/red.jpg\" alt=\"red.jpg\" \/><\/p>\n<p>Ahora viene la parte divertida: crear un certificado <acronym title=\"Secure Sockets Layer (a security protocol)\">SSL<\/acronym> para <strong>Apache<\/strong>, el cual simular\u00e1 que estamos bajo una conexi\u00f3n segura, este tipo de certificados los emiten empresas dedicadas a la seguridad informatica, no se que tan aceptables sean los generados por uno mismo.<\/p>\n<p>Por alg\u00fan extra\u00f1o motivo <strong>Ubuntu<\/strong> (y <strong>Debian<\/strong>) no incluye el script para generar estos certificados, pero puedes <a href=\"http:\/\/launchpadlibrarian.net\/7477840\/apache2-ssl.tar.gz\">descargar los scripts de aqu\u00ed<\/a>, descomprime el archivo y mueve <strong>ssleay.cnf<\/strong> a la carpeta <strong>\/usr\/share\/apache2<\/strong> y el archivo <strong>apache2-ssl-certificate<\/strong> a la carpeta <strong>\/usr\/sbin<\/strong>, deber\u00e1s crear tambi\u00e9n la carpeta <strong>ssl<\/strong> en <strong>\/etc\/apache2<\/strong> (de modo que quede <strong>\/etc\/apache2\/ssl<\/strong>).<\/p>\n<p>Ahora, ejecuta el comando:<\/p>\n<blockquote><p>sudo apache2-ssl-certificate -days 365<\/p><\/blockquote>\n<p><strong>Nota: <\/strong>El par\u00e1metro <strong>-days 365<\/strong> es para crear un certificado por un a\u00f1o, porque por default s\u00f3lo dura un mes, pero si te da problemas omitelo.<\/p>\n<p>El comando anterior ejecutar\u00e1 un script que te pedir\u00e1 algunas cosas:<\/p>\n<blockquote><p>Country Name (2 letter code) [<acronym title=\"Gigabyte\">GB<\/acronym>]: <em>(pon algo aqu\u00ed, MX=mexico&#8230;)<\/em><br \/>\nState or Province Name (full name) [Some-State]: <em>(tu estado aqu\u00ed)<\/em><br \/>\nLocality Name (eg, city) []: <em>(tu ciudad ac\u00e1)<\/em><br \/>\nOrganization Name (eg, company; recommended) []: <em>(el nombre de tu compa\u00f1\u00eda, o inventa uno)<\/em><br \/>\nOrganizational Unit Name (eg, section) []: <em>(pon algo ac\u00e1)<\/em><br \/>\nserver name (eg. ssl.domain.tld; required!!!) []: <em>(<strong>Importante!!<\/strong> leer m\u00e1s abajo)<\/em><br \/>\nEmail Address []: <em>(tu correo electr\u00f3nico)<\/em><\/p><\/blockquote>\n<p>En <strong>Common Name<\/strong> debe ir especificado el nombre de tu computadora (recomendado), bien puede ser <strong>localhost<\/strong>, pero recuerda que si trabajas en grupo debe llevar el nombre del servidor, habr\u00e1 que modificar un archivo m\u00e1s delante con el nombre que especifiques aqu\u00ed.<\/p>\n<p>Ahora, activar el modo SSL:<\/p>\n<blockquote><p>sudo a2enmod <span class=\"nfakPe\">ssl<\/span><\/p><\/blockquote>\n<p>Copiemos la configuraci\u00f3n que ya est\u00e1 definida en las webs que se ven en el puerto 80 con las que se ver\u00e1n en el puerto 443 (conexiones seguras con <acronym title=\"Secure Sockets Layer (a security protocol)\">SSL<\/acronym>):<\/p>\n<blockquote><p>sudo cp \/etc\/apache2\/sites-available\/default \/etc\/apache2\/sites-available\/<span class=\"nfakPe\">ssl<\/span><\/p><\/blockquote>\n<p>Y su link simb\u00f3lico (esto est\u00e1 explicado con detalle en <strong> \/etc\/apache2\/README<\/strong>):<\/p>\n<blockquote><p>sudo ln -s \/etc\/apache2\/sites-available\/<span class=\"nfakPe\">ssl<\/span> \/etc\/apache2\/sites-enabled\/<span class=\"nfakPe\">ssl<\/span><\/p><\/blockquote>\n<p>A mi me gusta tener separadas las webs que no requieren conexi\u00f3n segura de las que si, as\u00ed que te recomiendo tener separados en carpetas diferentes:<\/p>\n<blockquote><p> cd \/var\/www<br \/>\nmkdir html<br \/>\ncd ..<br \/>\nsudo mkdir www-<span class=\"nfakPe\">ssl<\/span><br \/>\ncd www-<span class=\"nfakPe\">ssl<\/span><br \/>\nsudo mkdir html<\/p><\/blockquote>\n<p>Ahora, tenemos que configurar unos archivos para preparar los puertos 80 y 443:<\/p>\n<blockquote><p>sudo gedit \/etc\/apache2\/sites-available\/default<\/p><\/blockquote>\n<p>Aqu\u00ed 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:<\/p>\n<blockquote><p>NameVirtualHost <strong>*:80<\/strong><br \/>\n&lt;VirtualHost <strong>*:80<\/strong>&gt;<br \/>\n<strong> DocumentRoot \/var\/www\/html<\/strong><br \/>\n&#8230;<\/p><\/blockquote>\n<p>Ahora hacemos lo mismo pero para SSL:<\/p>\n<blockquote><p>sudo gedit \/etc\/apache2\/sites-available\/<span class=\"nfakPe\">ssl<\/span><\/p><\/blockquote>\n<p>y definimos que escuche el puerto 443:<\/p>\n<blockquote><p>NameVirtualHost <strong>*:443<\/strong><br \/>\n&lt;VirtualHost <strong>*:443<\/strong>&gt;<br \/>\n<strong> DocumentRoot \/var\/www-<span class=\"nfakPe\">ssl<\/span>\/html<\/strong><br \/>\n&#8230;<\/p><\/blockquote>\n<p><strong>Nota:<\/strong> usa tu <acronym title=\"Internet Protocol\">IP<\/acronym> asignada o <acronym title=\"Domain Name System\">DNS<\/acronym> seguido de <strong>:443<\/strong> si tienes alguno para ServerName.<\/p>\n<p>En ese mismo archivo, m\u00e1s o menos a la mitad (en mi caso fue la linea 33 y 34) dice algo como:<\/p>\n<blockquote><p># Possible values include: debug, info, notice, warn, error, crit,<br \/>\n# alert, emerg.<\/p><\/blockquote>\n<p>Despu\u00e9s de ese comentario debemos agregar:<\/p>\n<blockquote><p> SSLEngine On<br \/>\nSSLCertificateFile \/etc\/apache2\/<span class=\"nfakPe\">ssl<\/span>\/apache.pem<\/p><\/blockquote>\n<p>Guardamos los cambios y seguimos con el archivo <strong>\/etc\/apache2\/ports.conf<\/strong> para que escuche tambi\u00e9n el puerto 443:<\/p>\n<blockquote><p>sugo gedit \/etc\/apache2\/ports.conf<\/p><\/blockquote>\n<p>Y debe tener la linea:<\/p>\n<blockquote><p>Listen 443<\/p><\/blockquote>\n<p>Si no la tiene, agr\u00e9gala.<\/p>\n<p>Puede ser que tambien requieras editar el archivo \/etc\/hosts para definir el nombre de tu servidor:<\/p>\n<blockquote><p>sudo gedit \/etc\/hosts<\/p><\/blockquote>\n<p>y verifica que este comience con algo parecido a esto:<\/p>\n<blockquote><p>127.0.0.1       localhost<br \/>\n127.0.1.1       joel-laptop<\/p><\/blockquote>\n<p>Ahora, reiniciemos el servidor Apache:<\/p>\n<p>sudo \/etc\/init.d\/apache2 restart<\/p>\n<p>Si no da problemas entonces vamos bien, ya tenemos instalado el modulo <acronym title=\"Secure Sockets Layer (a security protocol)\">SSL<\/acronym> para conexiones seguras, necesarias para el correcto funcionamiento de Magento, procedemos a descargar <a href=\"http:\/\/www.magentocommerce.com\/download\" title=\"Magento Commerce\">Magento<\/a>, descomprimimos el archivo ZIP y ponemos la carpeta <strong>magento<\/strong> en <strong>\/var\/www<\/strong><\/p>\n<p>Abrimos una ventana de terminal y damos permisos de escritura a algunas carpetas de magento:<\/p>\n<blockquote><p>cd \/var\/www\/magento<br \/>\nchmod 777 app\/etc<br \/>\nchmod 777 var<br \/>\nchmod 777 media<\/p><\/blockquote>\n<p>Magento requiere una base de datos ya creada, asi que hagamos una usando <strong>phpMySQLAdmin<\/strong>, en nuestro navegador web ponemos la direccion: <a href=\"http:\/\/localhost\/phpmyadmin\/\">http:\/\/localhost\/phpmyadmin\/<\/a> para entrar requerimos usar el login <strong>root<\/strong> y el password que definimos al momento de instalar <strong>MySQL<\/strong> cuando instalamos los paquetes LAMP, espero no se te haya olvidado.<\/p>\n<p style=\"text-align: center\"><img decoding=\"async\" src=\"http:\/\/www.joelsedano.com\/blog\/wp-content\/uploads\/2008\/02\/magentodb.jpg\" alt=\"magentodb.jpg\" \/><\/p>\n<p>En la pantalla anterior podemos crear r\u00e1pidamente la base de datos con solo poner el nombre y presionar el bot\u00f3n <strong>Create<\/strong> (existen muchos otros m\u00e9todos pero creo este es lo mas sencillo), despu\u00e9s de eso procedemos al asistente de instalaci\u00f3n de magento con la direcci\u00f3n <a href=\"http:\/\/localhost\/magento\">http:\/\/localhost\/magento<\/a><\/p>\n<p>La primera pantalla es aceptar la licencia de uso, no creo necesites ayuda en esta parte.<\/p>\n<p>La siguiente es para saber donde estas ubicado, selecciona tu lenguaje, zona horaria y moneda y presiona <strong>Continue<\/strong>.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/www.joelsedano.com\/blog\/wp-content\/uploads\/2008\/02\/step2.jpg\" alt=\"step2.jpg\" \/><\/p>\n<p>El siguiente paso puede tener o no problemas&#8230; debe descargar\/configurar algunos archivos\/librer\u00edas, pero aveces no funciona, prueba presionando el boton <strong>Proceed with automatic download (beta)<\/strong>, 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\u00f3n manualmente, abre una ventana de terminal y ejecuta lo siguiente:<\/p>\n<blockquote><p>cd \/var\/www\/magento<\/p><\/blockquote>\n<blockquote><p>.\/pear mage-setup<\/p><\/blockquote>\n<blockquote><p>.\/pear install mage-core\/Mage_Pear_Helpers mage-core\/Lib_ZF mage-core\/Lib_Varien<\/p><\/blockquote>\n<blockquote><p>.\/pear install mage-core\/Mage_All mage-core\/Interface_Install_Default<\/p><\/blockquote>\n<blockquote><p>.\/pear install mage-core\/Interface_Frontend_Default mage-core\/Interface_Adminhtml_Default<\/p><\/blockquote>\n<p>Y esperemos eso salga bien, igual si te marca algun error puedes continuar tranquilamente, no parecen ser vitales para el sistema jeje&#8230;<\/p>\n<p>Despu\u00e9s de haber logrado (o no)\u00a0 instalar autom\u00e1tica o manualmente procedemos presionando el bot\u00f3n <strong>Continue after manual download<\/strong><\/p>\n<p>Lo siguiente es la base de datos de magento, en teor\u00eda solo es necesario poner el password de root, asi que procedemos a ponerlo y presionar el bot\u00f3n <strong>Continue<\/strong>.<\/p>\n<p style=\"text-align: center\"><img decoding=\"async\" src=\"http:\/\/www.joelsedano.com\/blog\/wp-content\/uploads\/2008\/02\/step3.jpg\" alt=\"step3.jpg\" \/><\/p>\n<p>Despu\u00e9s 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\u00f3n de Magento, osea la cuenta de administrador, rellena los campos pero asegurate de no olvidar tu password, tambi\u00e9n deber\u00e1s definir una llave de encriptaci\u00f3n, aqu\u00ed puedes poner lo que se te antoje, lo que hara esta llave es aplicar un algoritmo basado en lo que definas aqu\u00ed para no dejar al descubierto n\u00fameros de tarjetas de cr\u00e9dito, passwords y dem\u00e1s cosas, si la dejas en blanco el sistema generara una por ti que te mostrara en la siguiente pantalla.<\/p>\n<p align=\"center\">Felicidades! eso es todo, ya debes tener listo tu sistema ecommerce Magento.<\/p>\n<p>Si, se que parece un mal tutorial por los errores que pueden o no salir siguiendo este m\u00e9todo, pero eso tambi\u00e9n depende mucho de la versi\u00f3n de Magento que est\u00e9s probando, que hasta no salir la versi\u00f3n 1.0 no puede considerarse estable.<\/p>","protected":false},"excerpt":{"rendered":"<p>Instalar este sistema para eCommerce no fue tan sencillo como esperaba, requiri\u00f3 instalar varias librer\u00edas, configurar el servidor Apache para que acepte conexiones seguras (https) y otra serie de movimientos que probablemente m\u00e1s de uno se atore con la instalaci\u00f3n, con este peque\u00f1o tutorial espero ayudar un poco a la comunidad OpenSource latina, quiz\u00e1 en una segunda etapa haga una traducci\u00f3n en ingl\u00e9s, que creo tampoco hay mucha documentaci\u00f3n.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[21,25,2,12],"tags":[243,242,241,244,245,248,239,249,49],"class_list":["post-1130","post","type-post","status-publish","format-standard","hentry","category-linux","category-php","category-programacion","category-software","tag-certificado","tag-certificate","tag-https","tag-instalacion","tag-instalation","tag-lamp","tag-magento","tag-ssl","tag-ubuntu"],"_links":{"self":[{"href":"https:\/\/www.joelsedano.com\/blog\/wp-json\/wp\/v2\/posts\/1130","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.joelsedano.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.joelsedano.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.joelsedano.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.joelsedano.com\/blog\/wp-json\/wp\/v2\/comments?post=1130"}],"version-history":[{"count":0,"href":"https:\/\/www.joelsedano.com\/blog\/wp-json\/wp\/v2\/posts\/1130\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.joelsedano.com\/blog\/wp-json\/wp\/v2\/media?parent=1130"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.joelsedano.com\/blog\/wp-json\/wp\/v2\/categories?post=1130"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.joelsedano.com\/blog\/wp-json\/wp\/v2\/tags?post=1130"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}