Magento

Generalidades

Magento es una aplicación web de comercio electrónico (eCommerce) de código abierto. Este artículo proporciona pasos para instalar Magento en un dominio alojado en DreamHost.

Para obtener más información sobre Magento, visita:

Magento utiliza una gran cantidad de recursos del servidor. Debido a esto, solo se puede instalar y ejecutar Magento en un VPS o en un servidor Dedicado. Ejecutarlo en alojamiento compartido hará que el sitio alcance los límites de memoria lo que puede causar lentitud y tiempo de inactividad.

Para un rendimiento óptimo (especialmente para tiendas grandes), se recomienda un servidor dedicado o DreamCompute debido a la presencia de una instancia local de MySQL.

Magento actualmente no es compatible con PHP 7.4. Deberá configurar tu dominio en PHP 7.2 o 7.3 para completar la instalación.

Antes de instalar Magento

  1. Descarga Magento desde su sitio web en:

    Magento ofrece la opción de descargar el archivo de instalación en formato .zip, .tar o .tar.bz2. Se recomienda .tar.bz2 ya que es el archivo más pequeño para descargar, pero cualquier formato funcionará.

  2. Crea un archivo phprc bajo tu usuario. Incrementa el memory_limit a 756MB y luego incrementa el max_execution_time. Así es como debería verse tu archivo phprc:
    max_execution_time = 5000
    memory_limit = 756M
  3. Crea una base de datos que será utilizada por Magento. Consulta el siguiente artículo para obtener más información:
  4. Configura tu dominio para usar PHP 7.2 o una versión superior. Consulta el siguiente artículo para obtener más información:

Instalación

  1. Sube el archivo Magento que descargaste en tu servidor web a través de FTP.
  2. Inicia sesión en tu servidor a través de SSH, luego descomprime el archivo en el servidor.
  3. Confirma que los archivos de Magento están en el directorio web de tu dominio.
  4. Cuando visites tu dominio por primera vez, verás que arroja un error 500. Esto se debe al archivo .htaccess del sitio. Ahora debes editar ese archivo para eliminar ciertas líneas.

Editar tus archivos .htaccess

Tus archivos .htaccess tienen varias líneas que mencionan IfVersion. Esto requiere que 'mod_version' esté instalado en el servidor. Dado que los servidores DreamHost no tienen este módulo instalado, debes eliminar manualmente esas líneas de los archivos .htaccess. Los puedes encontrar en las siguientes dos ubicaciones:

example.com/.htaccess

example.com/pub/.htaccess

Puedes descargar el archivo .htaccess editado a continuación para el archivo .htaccess del directorio de inicio. NOTA: Este es el archivo Magento .htaccess para la versión 2.3.5.

  1. Abre tu archivo .htaccess usando FTPSSH.
  2. Aquí hay un ejemplo de un bloque que verás.
    <Files composer.json>
      <IfVersion < 2.4>
        order allow,deny
        deny from all
      </IfVersion>
      <IfVersion >= 2.4>
        Require all denied
      </IfVersion>
    </Files>
  3. Edita cada bloque de código para eliminar el texto 2.4 y el <IfVersion> bloque. Entonces, el ejemplo anterior se convertiría en esto:
    <Files composer.json>
      order allow,deny
      deny from all
    </Files>
  4. Repite esto para cada bloque que comienza con <IfVersion>.
  5. Guarda el archivo y visita tu sitio. Ahora debería cargar el asistente de instalación de Magento.

El resto del asistente de instalación es una configuración a nivel de sitio y se puede hacer referencia en esta página:

Solución de problemas

El sitio no se carga después de editar el archivo .htaccess

Es posible que después de editar el archivo .htaccess, el sitio muestre un error 500 al visitarlo. Verifica el archivo error.log de tu dominio y puede que veas lo siguiente:

mod_fcgid: stderr: PHP Parse error: syntax error, unexpected '?', expecting variable (T_VARIABLE) in /home/username/example.com/vendor/magento/framework/Filesystem/Directory/Write.php on line 35

Esto se debe a que la versión de Magento no es compatible con la versión de PHP que estás utilizando. Si estás utilizando Magento versión 2.3.0, asegúrate de utilizar PHP 7.2 o una versión superior. Eso resolverá el mensaje de error.

No puedo encontrar el asistente de instalación

Si no puedes cargar el asistente de instalación de Magento, es posible que tengas el archivo de instalación en otra ubicación distinta al directorio raíz del dominio. Verifica que el archivo de instalación no esté en un subdirectorio, y también asegúrate de que todos los archivos, carpetas y subcarpetas tengan el permiso correcto.

Los enlaces no redirigen correctamente

Si completaste la instalación y haces clic en enlaces como "mi cuenta", "mi lista de deseos", "mi carrito" o "sobre nosotros", y descubres que no funcionan correctamente, probablemente hayas marcado la casilla 'Usar servidor web (Apache) Reescribe' durante el asistente de instalación. Para solucionar esto, crea un archivo .htaccess en el directorio raíz del sitio web e ingresa lo siguiente:

Options +SymLinksIfOwnerMatch
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

Error de inicio de sesión 'Su sesión actual ha caducado'

Al ingresar tu usuario/contraseña de Magento, puedes ver el siguiente error:

Su sesión actual ha expirado.

Los siguientes pasos te ayudarán a resolver esto:

  1. Inicia sesión en su base de datos usando phpMyAdmin.
  2. En el panel izquierdo, haz clic en el nombre de tu base de datos para seleccionarlo.
  3. En el menú superior, haz clic en la pestaña 'SQL'.
  4. Ingresa el siguiente comando:
    INSERT INTO `core_config_data`(`path`, `value`) VALUES ('admin/security/session_lifetime',864000)
    Se verá así:
  5. Haz clic en el botón Go para ejecutarlo.
  6. Inicia sesión en tu servidor a través de SSH. Asegúrate de estar en el directorio de tu sitio web.
  7. Ejecuta los siguientes comandos:
    [server]$ rm -rf var/cache/*
    [server]$ rm -rf var/page_cache/*
    [server]$ php bin/magento cache:flush
  8. Actualiza tu página de inicio de sesión. Después de esto deberías poder iniciar sesión.

Errores al instalar extensiones

Es posible que veas el siguiente error al instalar una extensión.

Las secciones a continuación explican cómo resolver estos errores.

Comprobar secuencias de comandos de Cron

Magento requiere 3 cron jobs diferentes para existir. Consulta el siguiente artículo para obtener instrucciones sobre cómo crear un cron job:

Deberás crear tres cron jobs distintos. En los siguientes ejemplos, cambia la palabra 'username' por tu nombre de usuario de shell y 'example.com' a tu sitio web de Magento.

Cron Job #1

/usr/local/php72/bin/php /home/username/example.com/bin/magento cron:run | grep
  -v "Ran jobs by schedule" >> /home/username/example.com/var/log/magento.cron.log

Cron Job #2

/usr/local/php72/bin/php /home/username/example.com/update/cron.php >>
  /home/username/example.com/var/log/update.cron.log

Cron Job #3

/usr/local/php72/bin/php /home/username/example.com/bin/magento setup:cron:run
  >> /home/username/example.com/var/log/setup.cron.log

Esto configura correctamente los cron job que Magento necesita. Sin embargo, ahora debes ejecutarlos manualmente para que Magento sepa que existen. Ejecuta los siguientes tres comandos para forzar la actualización de los cron job en Magento:

[server]$ /usr/local/php72/bin/php /home/username/example.com/bin/magento cron:run | grep
  -v "Ran jobs by schedule" >> /home/username/example.com/var/log/magento.cron.log
[server]$ /usr/local/php72/bin/php /home/username/example.com/update/cron.php >>
  /home/username/example.com/var/log/update.cron.log
[server]$ /usr/local/php72/bin/php /home/username/example.com/bin/magento setup:cron:run
  >> /home/username/example.com/var/log/setup.cron.log

Haz clic en el botón Intentar de nuevo (Try Again) en Magento. Esta vez, el error cron ya no se mostrará.

Comprobar dependencia de componentes

Asegúrate de haber configurado memory_limit en tu archivo phprc a 2000M. En adición a esto, actualiza el siguiente archivo .user.ini con el mismo valor:

example.com/.user.ini

Una vez que ambos archivos tienen configurado memory_limit = 2000M, ejecuta los tres cron jobs anteriores para actualizar esta información.

Comprobación de configuración de PHP

Establecer memory_limit en 2000 en el PHP debería solucionar este error.

Comprobación de extensiones PHP

La ejecución de los cron jobs mencionados anteriormente corrige este error.

Copia de seguridad fallida

Durante el paso #2, es posible que veas que la copia de seguridad falló.

De ser así, ejecuta el siguiente comando en el directorio de tu sitio web.

[server]$ /usr/local/php72/bin/php bin/magento config:set system/backup/functionality_enabled 1

Haz clic en el botón Intentar de nuevo (Try Again) y se creará tu copia de seguridad.

Ver también

¿Este artículo ha respondido sus preguntas?

Última actualización el PST.

¿Aún no encuentra lo que busca?