:::: MENU ::::

Configurar un servidor en EC2 para Magento 2

Configurar un servidor en EC2 para Magento 2
1 voto, 5.00 media (90% puntos)

Para este tutorial hemos utilizado Centos 7, que está disponible en el AWS Marketplace de Amazon EC2 de forma gratuita.

Si todavía estáis en periodo de Free Tier en vuestra cuenta de Amazon, con esta configuración podréis tener 1 año gratis de prácticas con Magento 2 en un servidor de 1 CPU / 1 GB de RAM.

Una vez configurada la instancia con Centos 7, lo primero siempre será realizar la actualización del software del servidor (buenas prácticas aunque vayamos a dedicar el servidor a desarrollo o testing). Para ello, simplemente ejecutar:

yum update

Durante el tutorial utilizaremos algunos comandos que no vienen instalados en Centos 7, así que podemos instalarlos antes de comenzar.

yum install wget
yum install vim

Instalar Apache 2.4 para Magento 2 (Centos 7)

La instalación de apache es sencilla también:

yum install httpd

Una vez instalado, tendremos que cambiar algunas configuraciones para adecuarlas a los requisitos de Magento 2. Para ello editaremos el archivo de configuración de Apache, que en centos está ubicado en:

vim /etc/httpd/conf/httpd.conf

En el archivo deberemos buscar el bloque de líneas que define el acceso a la carpeta root del servidor web y modificar la configuración AllowOverride para que quede como en las siguientes líneas. Esto permite el uso de directivas de configuración por medio del archivo .htaccces.

<Directory "/var/www/html">
....
AllowOverride All
....
</Directory>

Una vez configurado, reiniciamos el servidor web y lo configuramos para que se inicie automáticamente si se reinicia el servidor:

service httpd restart
chkconfig --levels 235 httpd on

Para comprobar que hasta aquí lo estamos haciendo bien, probad a acceder al dominio o IP de vuestro servidor y deberíais ver una página por defecto de Apache.

Instalar PHP 5.6 para Magento 2 (Centos 7)

Magento 2 ya no soporta PHP 5.4 que es la versión por defecto en Centos 7. El soporte se limita a PHP 5.5 y 5.6, con lo que para instalar PHP necesitaremos utilizar repositorios externos. En nuestro caso utilizaremos el conocido repo de webtatic.

Para añadirlo a nuestro Centros, utilizamos los siguientes comandos.

rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

Una vez añadidos los repositorios, deberemos instalar PHP y todos los módulos adicionales que utiliza Magento 2. Para instalarlo todo de una vez, podemos utilizar el siguiente comando.

yum install -y php56w php56w-opcache php56w-xml php56w-mcrypt php56w-gd php56w-devel php56w-mysql php56w-intl php56w-mbstring php56w-bcmath

Una vez instalados los diferentes paquetes, reiniciamos apache una vez más y comprobamos que todo está bien

service httpd restart

Antes de continuar es recomendable crear un archivo PHP en la carpeta /var/www/html/index.php con alguna línea de PHP y comprobar que podemos acceder a él desde el navegador web sin que se produzcan errores.

Si todo va bien, procederemos a modificar la configuración de PHP para adaptarla a los requisitos de Magento 2. Para ello editamos el archivo php.ini.

vim /etc/php.ini

Y modificamos las siguientes líneas para que queden como sigue:

date.timezone = Europe/Madrid
memory_limit = 768M
always_populate_raw_post_data = -1
asp_tags = Off

Instalar mySQL 5.6 para Magento 2 (Centos 7)

Una vez más, Magento 2 va por delante de las versiones estables de Centos y nuevamente la versión requerida de MySQL no es la versión por defecto en Centos 7, así que nuevamente necesitaremos instalar un repositorio externo.

wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
rpm -ivh mysql-community-release-el7-5.noarch.rpm

Lanzamos la instalación de mysql 5.6 que nos instalará además de forma automática todos los paquetes dependientes.

yum install mysql-server

Una vez instalado, iniciamos el servicio y lo configuramos para que se inicie automáticamente en caso de reinicio del servidor.

systemctl start mysqld
chkconfig --levels 235 mysqld on

A continuación deberemos realizar la configuración inicial de MySQL, donde se nos pedirá un password de root (recordad, buenas prácticas también aquí).

mysql_secure_installation

Durante la instalación se os pedirá un password de root. El resto de valores que os solicita podéis dejarlos en su valor por defecto.

Crear la base de datos para Magento 2

Una vez instalado MySQL, debemos conectarnos como root con el password que hemos elegido y crear una base de datos vacía para nuestra instalación de Magento 2.

create database magento;
GRANT ALL ON magento.* TO magento@localhost IDENTIFIED BY '<password>';

Y con esto tenemos listo nuestro servidor Centos 7 para Magento 2.

Usuarios Linux y Magento 2. Buenas prácticas.

La recomendación en todo sistema web es mantener usuarios separados para la ejecución de apache (o el servidor web correspondiente) y la propiedad de los archivos, de forma que si alguien compromete nuestra tienda accediendo al panel de control, le ponemos más difícil modificar los archivos ya que el propietario de los mismos es un usuario diferente.

Siguiendo estas recomendaciones, deberemos crear en nuestro Linux un nuevo usuario, diferente del usuario apache o www-data que habitualmente son los usuarios bajo los que se ejecuta apache.

Para ello, debemos ejecutar los siguientes comandos que crean el usuario y le asignan una contraseña.

useradd magento
passwd magento

Cómo el usuario magento y el usuario apache ahora son diferentes, debemos considerar que el proceso de apache debe tener permisos de lectura y ejecución sobre los archivos creados por el usuario propietario de los archivos de magento.

Para conseguir esto, la forma más cómoda es asignar a cada usuario el grupo del contrario como grupo adicional. Suponiendo el usuario recién creado (magento) y el usuario apache, podemos hacerlo de la siguiente forma:

usermod -a -G apache magento
usermod -a -G magento apache

Con esto estaremos listos para la instalación de Magento 2.

Otras consideraciones y configuraciones

Instalar NTP

NTP es un servicio de sincronización de la hora de servidores, que podemos utilizar para mantener en hora nuestros sistemas. Para instalar el cliente NTP que sincronice la hora de nuestro servidor, podemos hacerlo mediante los siguientes comandos, que además configuran el servicio para iniciarse al hacer reboot:

yum -y install ntp.x86_64
chkconfig ntpd on

Una vez instalado, necesitaréis configurar los servidores contra los que se realiza la sincronización. Para ello (si estáis en centos), podéis editar el archivo:

 
vim /etc/ntp.conf

Y añadir las siguientes líneas:

 
server 1.es.pool.ntp.org
server 0.europe.pool.ntp.org
server 2.europe.pool.ntp.org

Una vez añadidas y guardado el archivo, reiniciamos el servicio mediante el siguiente comando:

service ntpd restart

Deshabilitar SELINUX

Si estáis trabajando bajo Centos 7, SeLinux viene activado por defecto.

En un sistema de producción os recomiendo dejarlo activado y si no tenéis conocimientos acerca de su configuración, os recomiendo buscar algún tutorial al respecto y conocerlo para realizar una configuración adecuada.

Si esta es vuestra primera vez configurando un servidor y sólo lo vais a utilizar para realizar pruebas, probablemente desactivarlo es una buena opción, ya que os ahorrará unos cuantos dolores de cabeza.

Para ello, editad el archivo de configuración de SeLinux y modificar las siguientes líneas:

vim /etc/sysconfig/selinux
SELINUX=disabled

A continuación deberéis reiniciar vuestro servidor para que la configuración se aplique y quede desactivado realmente.

Instalar un servidor FTP

Si vais a hacer pruebas con Magento 2, o con cualquier otra plataforma, seguramente querréis disponer de acceso FTP para realizar cambios o subir archivos. Para ello podéis proceder a instalar VSFTP de la siguiente forma:

yum install vsftpd

A continuación deberéis modificar la configuración, para modificar las siguientes líneas:

vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
chroot_local_user=YES

Y reiniciar el servicio mediante:

service vsftpd restart

Instalar Magento 2

En Magento 2 existen hasta 4 formas diferentes de realizar la instalación de la plataforma. Cada una de ellas es apropiada para un tipo de situación diferente.

Mediante FTP

Este método será el adecuado cuando Magento 2 vaya a ejecutarse en un servidor compartido.

Mediante SSH

Si tenemos acceso mediante SSH a nuestro servidor, este es un método igual que el anterior, pero más rápido, ya que no tenemos que realizar la descarga previa de los archivos.

Mediante Composer

Composer es la nueva herramienta para realizar actualizaciones y gestionar las dependencias del core de Magento 2, y también es la forma recomendada de instalación para la mayoría de los casos.

Mediante GitHub + Composer

Esta forma de instalación sólo está recomendada para desarrolladores que quieran contribuir al código del core de Magento 2. Es necesario tener algún conocimiento previo de Composer y Git para desenvolverse con mayor facilidad.

Si sois desarrolladores y queréis saber más acerca de esta forma de instalación, podéis leer el tutorial:

Instalar Magento 2 para realizar contribuciones al core




One Comment

  • Responder Edu |

    Hola! Quisiéramos desde Camping el FAR de Calella (Barcelona), soluciones para nuestro equipo de programación i mkt. Aceptaríamos presupuestos para cada operación en beneficios para la sociedad, u otros condiciones de mercado.

    Gracias de antemano,

    Cordialmente

    Edu

Hey! Qué opinas sobre el artículo?