GNU/Linux >> Tutoriales Linux >  >> Cent OS

Cómo instalar Magento 2.1 en CentOS 7

Magento es una tienda de código abierto (software de comercio electrónico) y un sistema de gestión de contenido para sitios web de comercio electrónico basado en PHP Zend Framework. Magento aplica las convenciones de la programación orientada a objetos y la arquitectura MVC (Modelo-Vista-Controlador) y utiliza MySQL/MariaDB como base de datos. El software desarrollado fue iniciado en 2008 por Varien Inc. En los últimos años, Magento se ha convertido en una plataforma confiable para software de comercio electrónico que impulsa negocios en línea en todo el mundo.

En este tutorial, lo guiaré a través de la instalación de Magento 2.1. Instalaremos Magento 2.1 con Nginx y Php7.0-fpm y MySQL como base de datos. Para este propósito, usaré un servidor CentOS 7 con SELinux habilitado.

Paso 1:instalar Nginx

En este paso, instalaremos Nginx desde el repositorio de epel. Epel no está disponible de forma predeterminada, por lo que debemos instalar el repositorio de epel antes de instalar Nginx.

Instale el repositorio epel con este comando yum.

yum -y install epel-release

Ahora podemos instalar Nginx desde el repositorio de epel.

yum -y install nginx

Una vez completada la instalación, inicie Nginx y agréguelo para que comience en el momento del arranque.

systemctl start nginx
systemctl enable nginx

Nginx se inicia en el puerto 80, puede verificarlo con el comando netstat a continuación.

netstat -plntu

En caso de que vea el resultado 'comando no encontrado', puede instalar herramientas de red como esta.

yum -y install net-tools

Paso 2:instalar y configurar PHP-FPM

En este tutorial, usaremos PHP-FPM 7 para la instalación de Magento. Usaré paquetes de PHP 7 del repositorio de Webtatic.

Descargue y agregue un nuevo repositorio webtatic al sistema.

rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

Ahora ejecute el siguiente comando para instalar PHP-FPM7 con todos los paquetes y la extensión necesarios para la instalación de Magento.

yum -y install php70w-fpm php70w-mcrypt php70w-curl php70w-cli php70w-mysql php70w-gd php70w-xsl php70w-json php70w-intl php70w-pear php70w-devel php70w-mbstring php70w-zip php70w-soap

Cuando se completa una instalación de PHP-FPM7, debemos configurarla. Configuraremos el archivo php.ini y el archivo de configuración php-fpm 'www.conf'.

Edite php.ini con vim.

vim /etc/php.ini

Descomente la línea 762 de cgi.fix_pathinfo y cambie el valor a 0.

cgi.fix_pathinfo=0

Configure el límite de memoria, el tiempo máximo de ejecución y habilite la compresión de salida zlib, asegúrese de establecer los valores como se muestra a continuación.

memory_limit = 512M
max_execution_time = 1800
zlib.output_compression = On

Descomente el directorio de la ruta de la sesión y cambie el directorio como se muestra a continuación.

session.save_path = "/var/lib/php/session"

Guardar y salir.

A continuación, edite el archivo de configuración de php-fpm www.conf con el comando vim.

vim /etc/php-fpm.d/www.conf

PHP-FPM7 se ejecutará bajo el usuario y grupo 'nginx', cambie el valor a 'nginx' para las líneas de usuario y grupo.

user = nginx
group = nginx

Ejecutaremos php-fpm en un archivo de socket, no en un puerto de servidor. Cambie el valor de la línea de escucha a la ruta del archivo de socket.

listen = /var/run/php/php-fpm.sock

El archivo de socket debe ser propiedad del usuario y grupo 'nginx', descomente las líneas de escucha y cambie los valores como se muestra a continuación.

listen.owner = nginx
listen.group = nginx
listen.mode = 0660

Finalmente, descomente las líneas de entorno PHP-FPM 366-370.

env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp

Guardar y salir.

A continuación, cree un nuevo directorio para la ruta de la sesión y la ubicación del archivo sock de php. Luego cambie el propietario al usuario y grupo 'nginx'.

Cree un nuevo directorio para la ruta de la sesión.

mkdir -p /var/lib/php/session/
chown -R nginx:nginx /var/lib/php/session/

Cree un nuevo directorio para la ubicación del archivo de socket php-fpm.

mkdir -p /run/php/
chown -R nginx:nginx /run/php/

La configuración de PHP-FPM7 está completa, inicie el demonio ahora y habilítelo para que se inicie en el momento del arranque con el siguiente comando systemctl.

systemctl start php-fpm
systemctl enable php-fpm

Cuando no hay errores, puede usar el siguiente comando para verificar si php-fpm se está ejecutando en el archivo de socket.

netstat -pl | grep php-fpm.sock

Paso 3:instalar el servidor MySQL 5.7

Magento 2.1 requiere una versión actual de MySQL, puede usar MySQL 5.6 o 5.7 para la instalación. En este tutorial, usaremos MySQL 5.7, que se puede instalar desde el repositorio oficial de MySQL. Entonces, primero debemos agregar el nuevo repositorio MySQL.

Descargue y agregue el nuevo repositorio de MySQL para la instalación de MySQL 5.7.

yum localinstall https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm

Ahora instale MySQL 5.7 desde el repositorio de MySQL con el siguiente comando yum.

yum install mysql-community-server

Cuando se complete la instalación, inicie mysql y agréguelo para que comience en el momento del arranque.

systemctl start mysqld
systemctl enable mysqld

MySQL 5.7 se ha instalado con una contraseña raíz predeterminada, se almacena en el archivo mysqld.log. Use el comando grep para ver la contraseña predeterminada para MySQL 5.7. Ejecute el siguiente comando.

grep 'temporary' /var/log/mysqld.log

Ahora que ve la contraseña raíz actual de MySQL, debe cambiar la contraseña predeterminada.

Conéctese al shell mysql con el usuario root y la contraseña predeterminada.

mysql -u root -p
TYPE DEFAULT PASSWORD

Cambie la contraseña raíz predeterminada con la consulta a continuación. Usaré la nueva contraseña '[email protected]' aquí. Elija una contraseña segura.

ALTER USER 'root'@'localhost' IDENTIFIED BY '[email protected]';
flush privileges;

Se ha cambiado la contraseña raíz predeterminada de MySQL. A continuación, debemos crear un nuevo usuario y una nueva base de datos para la instalación de Magento.

Crearemos una nueva base de datos llamada 'magentodb' y un nuevo usuario 'magentouser' con contraseña '[email protected]'. Luego otorgue todos los privilegios de la base de datos al nuevo usuario. Ejecute la consulta mysql a continuación.

create database magentodb;
create user [email protected] identified by '[email protected]';
grant all privileges on magentodb.* to [email protected] identified by '[email protected]';
flush privileges;

La instalación y configuración de MySQL 5.7 ha finalizado y se ha creado una base de datos para la instalación de Magento.

Paso 4 Instalar y configurar Magento

En este paso, comenzaremos a instalar y configurar Magento. Para el directorio raíz web, usaremos el directorio '/var/www/magento2'. Necesitamos el compositor PHP para la instalación del paquete Magento.

Instalar PHP Composer

Usaremos Composer para la instalación de dependencias del paquete PHP. Instale Composer con el siguiente comando curl.

curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/bin --filename=composer

Cuando se complete la instalación, puede verificar la versión del compositor como se muestra a continuación.

composer -v

Se ha instalado PHP Composer.

Descargar y Extraer Magento

Vaya al directorio '/var/www' y descargue el código de Magento con el comando wget.

cd /var/www/
wget https://github.com/magento/magento2/archive/2.1.zip

Instalar descomprimir con yum.

yum -y install unzip

Extraiga el código de Magento y cambie el nombre del directorio a directorio 'magento2'.

unzip 2.1.zip
mv magento2-2.1 magento2

Instalar Dependencias de PHP

Vaya al directorio magento2 e instale todas las dependencias de Magento con el comando composer.

cd magento2
composer install -v

Espere a que finalice la instalación de la dependencia de PHP.

Configurar el host virtual de Magento

Vaya al directorio Nginx y cree un nuevo archivo de configuración de host virtual llamado 'magento.conf' en el directorio 'conf.d'.

cd /etc/nginx/
vim conf.d/magento.conf

Pegue la configuración del host virtual a continuación.

upstream fastcgi_backend {
        server  unix:/run/php/php-fpm.sock;
}

server {

        listen 80;
        server_name magento.hakase-labs.com;
        set $MAGE_ROOT /var/www/magento2;
        set $MAGE_MODE developer;
        include /var/www/magento2/nginx.conf.sample;
}

Guardar y salir.

Ahora pruebe la configuración. Cuando no haya ningún error, reinicie el servicio Nginx.

nginx -t
systemctl restart nginx

Instalar Magento 2.1

Vaya al directorio magento2 para instalar Magento en la línea de comandos.

cd /var/www/magento2

Ejecute el siguiente comando, asegúrese de tener la configuración correcta. Los valores que debe cambiar usted se explican a continuación.

bin/magento setup:install --backend-frontname="adminlogin" \
--key="biY8vdWx4w8KV5Q59380Fejy36l6ssUb" \
--db-host="localhost" \
--db-name="magentodb" \
--db-user="magentouser" \
--db-password="[email protected]" \
--language="en_US" \
--currency="USD" \
--timezone="America/New_York" \
--use-rewrites=1 \
--use-secure=0 \
--base-url="http://magento.hakase-labs.com" \
--base-url-secure="https://magento.hakase-labs.com" \
--admin-user=adminuser \
[email protected] \
[email protected] \
--admin-firstname=admin \
--admin-lastname=user \
--cleanup-database

Cambiar valor para:

  • --backend-frontname:página de inicio de sesión del administrador de Magento "adminlogin"
  • --key:genera tu propia clave
  • --db-host:host local de la base de datos
  • --db-name:nombre de la base de datos 'magentodb'
  • --db-user:usuario de la base de datos 'magentouser'
  • --db-password:contraseña de la base de datos '[email protected]'
  • --base-url:URL de Magento
  • --admin-user:Su usuario administrador
  • --admin-password:Su contraseña de administrador de Magento
  • --admin-email:Su dirección de correo electrónico

Cuando no tenga ningún error en el comando, verá los resultados a continuación.

Magento 2.1 está instalado. Ejecute el siguiente comando para cambiar el permiso para el directorio etc y cambie el propietario del directorio magento2 al usuario 'nginx'.

chmod 700 /var/www/magento2/app/etc
chown -R nginx:nginx /var/www/magento2

Configurar Magento Cron

Este cronjob es necesario para el indexador de Magento. Cree un nuevo cronjob como usuario 'nginx' (porque magento se ejecuta bajo el usuario y grupo nginx).

crontab -u nginx -e

Pegue la configuración a continuación.

* * * * * /usr/bin/php /var/www/magento2/bin/magento cron:run | grep -v "Ran jobs by schedule" >> /var/www/magento2/var/log/magento.cron.log
* * * * * /usr/bin/php /var/www/magento2/update/cron.php >> /var/www/magento2/var/log/update.cron.log
* * * * * /usr/bin/php /var/www/magento2/bin/magento setup:cron:run >> /var/www/magento2/var/log/setup.cron.log

Guardar y salir.

Paso 5:configurar SELinux y Firewalld

En este tutorial, dejaremos SELinux en modo 'Aplicar'. Ejecute los siguientes comandos para comprobar el estado de SELinux.

sestatus

SELinux está en modo 'Aplicar'.

Instale la herramienta de administración de SELinux 'policycoreutils-python' con el siguiente comando yum.

yum -y install policycoreutils-python

Vaya al directorio '/var/www/'.

cd /var/www/

Ejecute los siguientes comandos para cambiar el contexto de seguridad de los archivos y directorios de Magento.

semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/magento2(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/magento2/app/etc(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/magento2/var(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/magento2/pub/media(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/magento2/pub/static(/.*)?'
restorecon -Rv '/var/www/magento2/'

La configuración de SELinux está hecha. Ahora necesitamos configurar firewalld.

Instale el paquete firewalld si aún no lo tiene en su servidor.

yum -y install firewalld

Inicie el firewall y agregue firewalld para comenzar en el momento del arranque.

systemctl start firewalld
systemctl enable firewalld

Abra los puertos para HTTP y HTTPS para que podamos acceder a la URL de Magento desde un navegador web.

firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload

Vea los puertos abiertos para servicios con el siguiente comando.

firewall-cmd --list-all

HTTP y HTTPS están listos para las conexiones.

Paso 6 - Prueba

Abra su navegador web y luego busque la URL de Magento. El mío es:

magento.hakase-labs.com

Y verá la página de inicio predeterminada de Magento.

A continuación, inicie sesión en el panel de administración abriendo la URL de inicio de sesión del administrador.

magento.hakase-labs.com/adminlogin

Inicie sesión con su usuario y contraseña de administrador.

Panel de administración de Magento.

Magento 2.1 se instaló correctamente con Nginx, PHP-FPM7 y MySQL 5.7 en un servidor CentOS 7.


Cent OS
  1. Cómo instalar y configurar Nginx en CentOS 7

  2. Cómo instalar Nginx en CentOS 7

  3. Cómo instalar R en CentOS 7

  4. Cómo instalar phpMyAdmin con Nginx en CentOS 7

  5. Cómo instalar Nginx en CentOS 8

Cómo instalar Nginx en CentOS 6

Cómo instalar Magento en CentOS 7

Cómo instalar Magento en CentOS 8

Cómo instalar Nginx en CentOS 7

¿Cómo instalar Nginx en CentOS 7?

Cómo instalar Nginx en CentOS 8