Magento 2.4+
Ya no es posible instalar Magento (versiones 2.4+) en servidores DreamHost desde Magento ahora requiere que Elasticsearch sea instalado en el servidor para que funcione.
Si deseas ejecutar Magento 2.4+ en un servidor DreamHost, la única opción sería actualizar a un Servidor Dedicado. Allí podrías instalar Elasticsearch
Ten en cuenta que el soporte de DreamHost no puede ayudarte con este tipo de instalación personalizada.
Las instrucciones a continuación son para versiones anteriores de Magento y solo deben usarse como referencia general.
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 usa 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. Correrlo en un Shared Hosting 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.
Antes de instalar Magento
- 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á.
- 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
- Crea una base de datos que será utilizada por Magento. Consulta el siguiente artículo para obtener más información:
- Configura tu dominio para usar PHP 7.4. Consulta el siguiente artículo para obtener más información:
Instalación
- Sube el archivo Magento que descargaste en tu servidor web a través de FTP.
- Inicia sesión en tu servidor a través de SSH, luego descomprime el archivo en el servidor.
- Confirma que los archivos de Magento están en el directorio web de tu dominio.
- Desde el directorio web de tu sitio, corre el siguiente comando para iniciar el proceso de instalación:
[server]$ bin/magento setup:install --db-host=mysql.example.com --db-name=example_magento --db-user=magentodb --db-password=example123 --base-url=https://example.com/ --backend-frontname=example_admin --admin-firstname=Admin --admin-lastname=Example --admin-email=magento@example.com --admin-user=admin --admin-password=example123
Editar tus archivos .htaccess
Tus archivos .htaccess tienen varias líneas que mencionan IfVersion. Esto requiere que 'mod_version' esté instalado en el servidor. Los servidores DreamHost que ejecutan Bionic (Ubuntu 18.04) o Stretch (Debian 9) tienen este módulo instalado y no requieren más modificaciones. Si tu servidor web aún no se ha actualizado a ninguna de las versiones, debes eliminar manualmente esas líneas de los archivos .htaccess. Están ubicados 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 principal del sitio. NOTA: Este es el archivo Magento .htaccess para la versión 2.3.5.
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 usando Magento versión 2.3.0, asegúrate de utilizar PHP 7.4. 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 my account, my wishlist, my cart, o about us, 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:
- Inicia sesión en tu base de datos usando phpMyAdmin.
- En el panel izquierdo, haz clic en el nombre de tu base de datos para seleccionarlo.
- En el menú superior, haz clic en la pestaña SQL.
- Ingresa el siguiente comando:
INSERT INTO `core_config_data`(`path`, `value`) VALUES ('admin/security/session_lifetime',864000)
- Haz clic en el botón Continuar para ejecutarlo.
- Inicia sesión en tu servidor a través de SSH. Asegúrate de estar en el directorio de tu sitio web.
- Corre los siguientes comandos:
[server]$ rm -rf var/cache/* [server]$ rm -rf var/page_cache/* [server]$ php bin/magento cache:flush
- 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, username sería tu usuario Shell y example.com tu sitio web.
Cron Job #1
/usr/local/php74/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/php74/bin/php /home/username/example.com/update/cron.php >> /home/username/example.com/var/log/update.cron.log
Cron Job #3
/usr/local/php74/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 correrlos manualmente para que Magento sepa que existen. Corre los siguientes tres comandos para forzar la actualización de los cron job en Magento:
[server]$ /usr/local/php74/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/php74/bin/php /home/username/example.com/update/cron.php >> /home/username/example.com/var/log/update.cron.log
[server]$ /usr/local/php74/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í, corre el siguiente comando en el directorio de tu sitio web.
[server]$ /usr/local/php74/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.
Actualizar
Magento Open Source actualmente no ofrece un método para actualizar su software dentro del panel de administración. La actualización requiere el uso de Composer y debe realizarse a través de SSH. A continuación se muestran las instrucciones oficiales de Magento para el proceso.