Cómo instalar Magento en CentOS 7


Magento es una plataforma de comercio electrónico de código abierto potente y altamente flexible (o sistema de gestión de contenido (CMS)) escrita en PHP. Se envía en dos ediciones principales: Enterprise y Community. La Community Edition está destinada a desarrolladores y pequeñas empresas.

Es completamente personalizable para cumplir con los requisitos de los usuarios, lo que les permite configurar y administrar una tienda de comercio electrónico completamente operativa en minutos. Magento se ejecuta en servidores web como Apache, Nginx e IIS, bases de datos backend: MySQL o MariaDB, Percona.

En esta guía, mostraremos cómo instalar Magento Community Edition en un VPS CentOS 7 con pila LAMP (Linux, Apache MariaDB y PHP). Las mismas instrucciones también funcionan en distribuciones basadas en RHEL y Fedora con ligeros cambios en los comandos.

Este artículo lo guiará para instalar la versión más reciente de "Community Edition" de Magento en un sistema que se ejecute:

  1. Apache versión 2.2 o 2.4
  2. PHP versión 5.6 o 7.0.xo posterior con las extensiones necesarias
  3. MySQL versión 5.6 o posterior

Nota: Para esta configuración, estoy usando el nombre de host del sitio web como "magneto-tecmint.com" y la dirección IP es "192.168.0.106".

Paso 1: Instalar el servidor web Apache

1. Instalar el servidor web Apache es muy simple, desde los repositorios oficiales:

# yum install httpd

2. Luego, para permitir el acceso a los servicios de Apache desde HTTP y HTTPS, tenemos que abrir los puertos 80 y 443 donde el demonio HTTPD está escuchando de la siguiente manera:

------------ On CentOS/RHEL 7 ------------ 
# firewall-cmd --permanent --zone=public --add-service=http
# firewall-cmd --permanent --zone=public --add-service=https
# firewall-cmd --reload

---------- On CentOS/RHEL 6 ----------
# iptables -A INPUT -p tcp -m state --state NEW --dport 80 -j ACCEPT
# iptables -A INPUT -p tcp -m state --state NEW --dport 443 -j ACCEPT
# service iptables save

Paso 2: Instale el soporte PHP para Apache

Como dije, Magento requiere PHP 5.6 o 7.0 y el repositorio predeterminado de CentOS incluye PHP 5.4, que no es compatible con la última versión de Magento 2.

3. Para instalar PHP 7, debe agregar el repositorio EPEL e IUS (Inline with Upstream Stable) para instalar PHP 7 usando yum:

# yum install -y http://dl.iuscommunity.org/pub/ius/stable/CentOS/7/x86_64/ius-release-1.0-14.ius.centos7.noarch.rpm
# yum -y update
# yum -y install php70u php70u-pdo php70u-mysqlnd php70u-opcache php70u-xml php70u-mcrypt php70u-gd php70u-devel php70u-mysql php70u-intl php70u-mbstring php70u-bcmath php70u-json php70u-iconv
# yum -y update
# yum -y install epel-release
# wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm
# wget https://centos6.iuscommunity.org/ius-release.rpm
# rpm -Uvh ius-release*.rpm
# yum -y update
# yum -y install php70u php70u-pdo php70u-mysqlnd php70u-opcache php70u-xml php70u-mcrypt php70u-gd php70u-devel php70u-mysql php70u-intl php70u-mbstring php70u-bcmath php70u-json php70u-iconv

4. A continuación, abra y modifique la siguiente configuración en su archivo /etc/php.ini :

max_input_time = 30
memory_limit= 512M
error_reporting = E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR
error_log = /var/log/php/error.log
date.timezone = Asia/Calcutta

Nota: El valor de date.timezone variará según la zona horaria de su sistema. Consulte establecer zona horaria en Linux.

5. A continuación, para recuperar una información completa sobre la instalación de PHP y todas sus configuraciones actuales desde un navegador web, creemos un archivo info.php en Apache DocumentRoot (/ var/www/html) usando el siguiente comando.

# echo "<?php  phpinfo(); ?>" > /var/www/html/info.php

6. Una vez que se complete toda la configuración requerida, es hora de iniciar el servicio Apache y habilitarlo para que se inicie automáticamente desde el siguiente inicio del sistema, así como así:

------------ On CentOS/RHEL 7 ------------ 
# systemctl start httpd
# systemctl enable httpd

------------ On CentOS/RHEL 6 ------------
# service httpd start
# chkconfig httpd on

7. A continuación, podemos verificar que Apache y PHP funcionan bien; Abra un navegador remoto y escriba la dirección IP de su servidor utilizando el protocolo HTTP en la URL y debería aparecer la página de información predeterminada de Apache2 y PHP.

http://server_domain_name_or_IP/
http://server_domain_name_or_IP/info.php

Paso 3: instalar y configurar la base de datos MariaDB

8. Debemos notar que Red Hat Enterprise Linux/CentOS 7.0 pasó de ser compatible con MySQL a MariaDB como el sistema de administración de base de datos predeterminado.

Para instalar la base de datos MariaDB, necesitamos agregar el siguiente repositorio oficial de MariaDB al archivo /etc/yum.repos.d/MariaDB.repo como se muestra.

[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.1/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.1/rhel7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.1/centos6-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.1/rhel6-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

9. Una vez creado el archivo de repositorio, ahora podemos instalar MariaDB de la siguiente manera:

# yum install mariadb-server mariadb
OR
# yum install MariaDB-server MariaDB-client

10. Una vez completada la instalación de los paquetes MariaDB, inicie el demonio de la base de datos por el momento y habilítelo para que se inicie automáticamente en el siguiente arranque.

------------ On CentOS/RHEL 7 ------------ 
# systemctl start mariadb
# systemctl enable mariadb

------------ On CentOS/RHEL 6 ------------
# service mysqld start
# chkconfig mysqld on

11. Luego, ejecute el script mysql_secure_installation para proteger la base de datos (establezca la contraseña de root, deshabilite el inicio de sesión de root remoto, elimine la base de datos de prueba y elimine usuarios anónimos) de la siguiente manera:

# mysql_secure_installation

12. A continuación, cree una base de datos de magento y un usuario como se muestra.

# mysql -u root -p

## Creating New User for Magento Database ##
mysql> CREATE USER magento@localhost IDENTIFIED BY "your_password_here";

## Create New Database ##
mysql> create database magento;

## Grant Privileges to Database ##
mysql> GRANT ALL ON magento.* TO magento@localhost;

## FLUSH privileges ##
mysql> FLUSH PRIVILEGES;

## Exit ##
mysql> exit

Paso 4: Instale Magento Community Edition

12. Ahora, vaya al sitio web oficial de Magento y cree una cuenta de usuario en caso de que sea un nuevo cliente (o simplemente inicie sesión si ya tiene una cuenta) y descargue la última versión de Magento Community Edition.

  1. http://www.magentocommerce.com/download

13. Después de descargar el archivo tar de Magento, extraiga el contenido en la raíz del documento Apache (/ var/www/html) de la siguiente manera:

# tar -zxvf Magento-CE-2.1.5-2017-02-20-05-36-16.tar.gz -C /var/www/html/

14. Ahora necesita establecer la propiedad de Apache para los archivos y carpetas.

# chown -R apache:apache /var/www/html/

15. Ahora abra su navegador y navegue a la siguiente URL, se le presentará el asistente de instalación de Magento.

http://server_domain_name_or_IP/

16. A continuación, el asistente realizará una comprobación de preparación para conocer la versión correcta de PHP, los permisos de archivo y la compatibilidad.

17. Ingrese la configuración de la base de datos de magento.

18. Configuración del sitio web de Magento.

19. Personalice su tienda Magento configurando zona horaria, moneda e idioma.

20. Cree una nueva cuenta de administrador para administrar su tienda Magento.

21. Ahora haga clic en "Instalar ahora" para continuar con la instalación de Magento.

¡Eso es! ha instalado con éxito Magento en CentOS 7. Si tiene algún error durante la instalación, no dude en pedir ayuda en los comentarios.