Instale Nginx para implementaciones locales nginx
Esta guía le explica cómo instalar Nginx para implementaciones locales de Adobe Commerce y cómo configurar los ajustes de Nginx que Commerce requiere. Incluye procedimientos específicos del sistema operativo para Ubuntu y CentOS, junto con directrices para configurar PHP-FPM. Adobe recomienda seguir las instrucciones de configuración proporcionadas en esta guía para conservar la funcionalidad y la seguridad de la aplicación de Commerce.
Adobe es compatible con las versiones de Nginx enumeradas en requisitos del sistema para su versión de Adobe Commerce. Las versiones compatibles varían según la versión. Nginx también requiere una configuración compatible con PHP-FPM. Para ver los requisitos de PHP relacionados, consulte PHP.
Instalar en Ubuntu
Utilice esta sección para instalar Adobe Commerce en Ubuntu con Nginx, PHP y MySQL.
Instalar Nginx
sudo apt -y install nginx
También puede compilar Nginx desde el origen.
Después de completar las secciones siguientes e instalar la aplicación, use el archivo de configuración de ejemplo para configurar Nginx. Esta configuración recomendada preserva la funcionalidad y la seguridad de la aplicación de Commerce.
Instalación y configuración de PHP-FPM
Adobe Commerce requiere varias extensiones PHP para funcionar correctamente. Además de estas extensiones, también debe instalar y configurar la extensión php-fpm si utiliza Nginx.
Para instalar y configurar php-fpm:
-
Instale los paquetes
php-fpmyphp-clipara la versión de PHP compatible con su versión de Adobe Commerce. En Ubuntu, los nombres de los paquetes suelen seguir este patrón:code language-shell apt-get -y install php<php-version>-fpm php<php-version>-clinote note NOTE Reemplace <php-version>por la versión secundaria de PHP compatible que se enumera en requisitos del sistema para la versión de Adobe Commerce que está instalando. Utilice el mismo valor en las rutas de archivo, el nombre de servicio y la ruta de socket en los siguientes pasos. -
Abra los
php.iniarchivos en un editor:code language-shell vim /etc/php/<php-version>/fpm/php.inicode language-shell vim /etc/php/<php-version>/cli/php.ini -
Edite ambos archivos para que coincidan con las siguientes líneas:
code language-conf memory_limit = 2G max_execution_time = 1800 zlib.output_compression = Onnote note NOTE Adobe recomienda establecer el límite de memoria en 2 GB al probar Adobe Commerce. Consulte Configuración de PHP requerida para obtener más información. -
Guarde y salga del editor.
-
Reinicie el servicio
php-fpm:code language-shell systemctl restart php<php-version>-fpm
Instalar y configurar MySQL
Consulte MySQL para obtener más información.
Instalación de Adobe Commerce
Puede descargar Adobe Commerce de varias formas:
Este ejemplo muestra una instalación basada en Composer mediante la línea de comandos.
-
Como propietario del sistema de archivos, inicie sesión en su servidor de aplicaciones.
-
Cambie al directorio docroot del servidor web o a un directorio que haya configurado como docroot del host virtual. Para este ejemplo, se usa el valor predeterminado de Ubuntu
/var/www/html.code language-shell cd /var/www/html -
Instale Composer globalmente. Se requiere el Compositor para actualizar las dependencias antes de instalar Adobe Commerce:
code language-shell curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/bin --filename=composer -
Cree un proyecto Composer utilizando el metapaquete de Adobe Commerce.
Magento Open Source
code language-shell composer create-project --repository=https://repo.magento.com/ magento/project-community-edition <install-directory-name>Adobe Commerce
code language-shell composer create-project --repository=https://repo.magento.com/ magento/project-enterprise-edition <install-directory-name>Cuando se le solicite, escriba sus claves de autenticación. Su clave pública es su nombre de usuario; su clave privada es su contraseña.
-
Establezca permisos de lectura y escritura para el grupo de servidores web antes de instalar la aplicación. Esto es necesario para que la línea de comandos pueda escribir archivos en el sistema de archivos.
code language-shell cd /var/www/html/<magento install directory>code language-shell find var generated vendor pub/static pub/media app/etc -type f -exec chmod g+w {} +code language-shell find var generated vendor pub/static pub/media app/etc -type d -exec chmod g+ws {} +code language-shell chown -R :www-data . # Ubuntucode language-shell chmod u+x bin/magento -
Instale desde la línea de comandos. En este ejemplo se supone que el directorio de instalación se llama
magento2eey que el host de la base de datos está en el mismo equipo (localhost):code language-shell bin/magento setup:install \ --base-url=http://localhost/magento2ee \ --db-host=localhost \ --db-name=<db-name> \ --db-user=<db-user> \ --db-password=<db-password> \ --backend-frontname=<backend-uri> \ --admin-firstname=<admin-first-name> \ --admin-lastname=<admin-last-name> \ --admin-email=<admin-email> \ --admin-user=<admin-user> \ --admin-password=<admin-password> \ --language=en_US \ --currency=USD \ --timezone=America/Chicago \ --use-rewrites=1 \ --search-engine=<search-engine-value> \ --<search-engine-host-parameter>=search-host.example.com \ --<search-engine-port-parameter>=9200note note NOTE Utilice el valor --search-enginey las opciones de host/puerto coincidentes que requiere la versión de Adobe Commerce que está instalando. Para las versiones anteriores a la 2.4.6, useelasticsearch7con las opciones--elasticsearch-*de Elasticsearch 7 o OpenSearch. En la versión 2.4.6 y posteriores, utilice el valor del motor de búsqueda y las opciones de CLI correspondientes que admite dicha versión. -
Cambiar a modo de desarrollador:
code language-shell cd /var/www/html/magento2/bincode language-shell ./magento deploy:mode:set developer
Configuración De Nginx
Adobe recomienda configurar Nginx utilizando el archivo de configuración nginx.conf.sample proporcionado en el directorio de instalación y la configuración del host virtual Nginx para conservar tanto la funcionalidad como la seguridad de la aplicación Commerce.
nginx.conf.sample proporciona el enrutamiento de aplicación necesario, así como reglas de protección de seguridad. Por ejemplo, restringe la ejecución de scripts dañinos cargados en el servidor. Si no utiliza este archivo ni modifica sus reglas, será responsable de implementar controles de seguridad equivalentes en la configuración de nginx personalizada.Estas instrucciones suponen que está utilizando la ubicación predeterminada de Ubuntu para el host virtual de Nginx, como /etc/nginx/sites-available, y el docroot predeterminado de Ubuntu, como /var/www/html. Puede cambiar estas ubicaciones para adaptarlas a su entorno.
-
Cree un nuevo host virtual para el sitio:
code language-shell vim /etc/nginx/sites-available/magento -
Añada la siguiente configuración:
code language-conf upstream fastcgi_backend { server unix:/run/php/php<php-version>-fpm.sock; } server { listen 80; server_name www.magento-dev.com; set $MAGE_ROOT /var/www/html/magento2; include /var/www/html/magento2/nginx.conf.sample; }note note NOTE La directiva includedebe apuntar al archivo de configuración nginx de ejemplo en el directorio de instalación. -
Reemplace
www.magento-dev.comcon su nombre de dominio. Debe coincidir con la dirección URL base que especificó al instalar Adobe Commerce. -
Guarde y salga del editor.
-
Active el host virtual recién creado creando un enlace simbólico con él en el directorio
/etc/nginx/sites-enabled:code language-shell ln -s /etc/nginx/sites-available/magento /etc/nginx/sites-enabled -
Compruebe que la sintaxis es correcta:
code language-shell nginx -t -
Reiniciar Nginx:
code language-shell systemctl restart nginx
Compruebe la instalación
Para comprobar la instalación, abra un explorador web y vaya a la dirección URL base del sitio. Para obtener más información, vea Comprobar la instalación.
Instalar en CentOS 7
Utilice esta sección para instalar Adobe Commerce en CentOS 7 con Nginx, PHP y MySQL.
Instalar Nginx
yum -y install epel-release
yum -y install nginx
Una vez finalizada la instalación, inicie nginx y configúrelo para que se inicie durante el arranque:
systemctl start nginx
systemctl enable nginx
Después de completar las siguientes secciones e instalar la aplicación, utilice un archivo de configuración de ejemplo para configurar Nginx.
Instalación y configuración de PHP-FPM
Adobe Commerce requiere varias extensiones PHP para funcionar correctamente. Además de estas extensiones, también debe instalar y configurar la extensión php-fpm si utiliza Nginx.
-
Instalar
php-fpm:code language-shell yum -y install <php-fpm-package> -
Abra el archivo
/etc/php.inien un editor.note note NOTE Instale el paquete que proporciona php-fpmpara la versión de PHP compatible con la versión de Adobe Commerce que está instalando. Los nombres de los paquetes varían según el repositorio y el sistema operativo. Consulte requisitos del sistema. -
Elimine los comentarios de la línea
cgi.fix_pathinfoy cambie el valor a0. -
Edite el archivo para que coincida con las siguientes líneas:
code language-conf memory_limit = 2G max_execution_time = 1800 zlib.output_compression = Onnote note NOTE Adobe recomienda establecer el límite de memoria en 2 GB al probar Adobe Commerce. Consulte Configuración de PHP requerida para obtener más información. -
Elimine los comentarios del directorio de rutas de sesión y defina la ruta:
code language-conf session.save_path = "/var/lib/php/session" -
Guarde y salga del editor.
-
Abra
/etc/php-fpm.d/www.confen un editor. -
Edite el archivo para que coincida con las siguientes líneas:
code language-conf user = nginx group = nginx listen = /run/php-fpm/php-fpm.sock listen.owner = nginx listen.group = nginx listen.mode = 0660 -
Elimine los comentarios de las líneas de entorno:
code language-conf env[HOSTNAME] = $HOSTNAME env[PATH] = /usr/local/bin:/usr/bin:/bin env[TMP] = /tmp env[TMPDIR] = /tmp env[TEMP] = /tmp -
Guarde y salga del editor.
-
Cree un directorio para la ruta de sesión PHP y cambie el propietario al usuario y grupo
nginx:code language-shell mkdir -p /var/lib/php/session/code language-shell chown -R nginx:nginx /var/lib/php/ -
Cree un directorio para el socket PHP-FPM y cambie el propietario al usuario y grupo
nginx:code language-shell mkdir -p /run/php-fpm/code language-shell chown -R nginx:nginx /run/php-fpm/ -
Inicie el servicio
php-fpmy configúrelo para que se inicie al arrancar:code language-shell systemctl start php-fpmcode language-shell systemctl enable php-fpm -
Compruebe que el servicio
php-fpmse está ejecutando:code language-shell netstat -pl | grep php-fpm.sock
Instalar y configurar MySQL
Consulte MySQL para obtener más información.
Instalación de Adobe Commerce
Puede descargar Adobe Commerce de varias formas:
Este ejemplo muestra una instalación basada en Composer mediante la línea de comandos.
-
Como propietario del sistema de archivos, inicie sesión en su servidor de aplicaciones.
-
Cambie al directorio docroot del servidor web o a un directorio que haya configurado como docroot del host virtual. Para este ejemplo, use el valor predeterminado de CentOS
/usr/share/nginx/html.code language-shell cd /usr/share/nginx/html -
Instale Composer globalmente. Se requiere el Compositor para actualizar las dependencias antes de instalar Adobe Commerce:
code language-shell curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/bin --filename=composer -
Cree un proyecto Composer utilizando el metapaquete de Adobe Commerce.
Magento Open Source
code language-shell composer create-project --repository=https://repo.magento.com/ magento/project-community-edition <install-directory-name>Adobe Commerce
code language-shell composer create-project --repository=https://repo.magento.com/ magento/project-enterprise-edition <install-directory-name>Cuando se le solicite, escriba sus claves de autenticación. Su clave pública es su nombre de usuario; su clave privada es su contraseña.
-
Establezca permisos de lectura y escritura para el grupo de servidores web antes de instalar la aplicación. Esto es necesario para que la línea de comandos pueda escribir archivos en el sistema de archivos.
code language-shell cd /usr/share/nginx/html/<magento install directory>code language-shell find var generated vendor pub/static pub/media app/etc -type f -exec chmod g+w {} +code language-shell find var generated vendor pub/static pub/media app/etc -type d -exec chmod g+ws {} +code language-shell chown -R :nginx . # CentOScode language-shell chmod u+x bin/magento -
Instale desde la línea de comandos. En este ejemplo se supone que el directorio de instalación se llama
magento2eey que el host de la base de datos está en el mismo equipo (localhost):code language-shell bin/magento setup:install \ --base-url=http://localhost/magento2ee \ --db-host=localhost \ --db-name=<db-name> \ --db-user=<db-user> \ --db-password=<db-password> \ --backend-frontname=<backend-uri> \ --admin-firstname=<admin-first-name> \ --admin-lastname=<admin-last-name> \ --admin-email=<admin-email> \ --admin-user=<admin-user> \ --admin-password=<admin-password> \ --language=en_US \ --currency=USD \ --timezone=America/Chicago \ --use-rewrites=1 -
Cambiar a modo de desarrollador:
code language-shell cd /usr/share/nginx/html/magento2/bincode language-shell ./magento deploy:mode:set developer
Configuración De Nginx
Se recomienda configurar Nginx usando el archivo nginx.conf.sample en el directorio de instalación y la configuración de su host virtual Nginx.
nginx.conf.sample proporciona el enrutamiento de aplicación necesario, así como reglas de protección de seguridad. Por ejemplo, restringe la ejecución de scripts dañinos cargados en el servidor. Si no utiliza este archivo ni modifica sus reglas, será responsable de implementar controles de seguridad equivalentes en la configuración de nginx personalizada.Estas instrucciones suponen que está utilizando la ubicación predeterminada de CentOS para el host virtual Nginx, como /etc/nginx/conf.d, y el docroot predeterminado, como /usr/share/nginx/html. Puede cambiar estas ubicaciones para adaptarlas a su entorno.
-
Cree un nuevo host virtual para el sitio:
code language-shell vim /etc/nginx/conf.d/magento.conf -
Añada la siguiente configuración:
code language-conf upstream fastcgi_backend { server unix:/run/php-fpm/php-fpm.sock; } server { listen 80; server_name www.magento-dev.com; set $MAGE_ROOT /usr/share/nginx/html/magento2; include /usr/share/nginx/html/magento2/nginx.conf.sample; }note note NOTE La directiva includedebe apuntar al archivo de configuración nginx de ejemplo en el directorio de instalación. -
Reemplace
www.magento-dev.comcon su nombre de dominio. -
Guarde y salga del editor.
-
Compruebe que la sintaxis es correcta:
code language-shell nginx -t -
Reiniciar Nginx:
code language-shell systemctl restart nginx
Configuración de SELinux y firewall
SELinux está habilitado de forma predeterminada en CentOS 7. Utilice el siguiente comando para confirmar que se está ejecutando:
sestatus
Para configurar SELinux y el cortafuegos:
-
Instale las herramientas de administración de SELinux:
code language-shell yum -y install policycoreutils-python -
Ejecute los siguientes comandos para cambiar el contexto de seguridad del directorio de instalación:
code language-shell semanage fcontext -a -t httpd_sys_rw_content_t '/usr/share/nginx/html/magento2/app/etc(/.*)?'code language-shell semanage fcontext -a -t httpd_sys_rw_content_t '/usr/share/nginx/html/magento2/var(/.*)?'code language-shell semanage fcontext -a -t httpd_sys_rw_content_t '/usr/share/nginx/html/magento2/pub/media(/.*)?'code language-shell semanage fcontext -a -t httpd_sys_rw_content_t '/usr/share/nginx/html/magento2/pub/static(/.*)?'code language-shell restorecon -Rv '/usr/share/nginx/html/magento2/' -
Instale el paquete del cortafuegos:
code language-shell yum -y install firewalld -
Inicie el servicio de cortafuegos y configúrelo para que se inicie durante el arranque:
code language-shell systemctl start firewalldcode language-shell systemctl enable firewalld -
Ejecute los siguientes comandos para abrir los puertos para HTTP y HTTPS y poder acceder a la dirección URL base desde un explorador web:
code language-shell firewall-cmd --permanent --add-service=httpcode language-shell firewall-cmd --permanent --add-service=httpscode language-shell firewall-cmd --reload
Compruebe la instalación
Para comprobar la instalación, abra un explorador web y vaya a la dirección URL base del sitio. Para obtener más información, vea Comprobar la instalación.