Hacemos un respaldo de la base de datos
Creamos la base de datos, usuario e importamos:
mysql -u NombreUsuarioBaseDatos -p NombreBaseDatos < NombreBackupBaseDatos
Comprimimos la carpeta public_html:
tar -czvf hYYYYMMDDHHMM.tar.gz /RutaALaCarpetaPublicHtml/public_html
Copiamos en comprimido en el public_html del servidor Vesta
Descomprimimos los archivos
Instalar Redis:
wget http://download.redis.io/redis-stable.tar.gz
tar xvzf redis-stable.tar.gz
cd redis-stable
make
Ejecutar:
make test
sudo make install
make test
redis-server
Cerramos la terminal de Linux y abrimos otra
Ejecutamos:
redis-cli ping
Para verificar la versión instalada de redis:
redis-cli --versión
Las sesiones se pueden manejar a través de archivos o con Memcached.
Si las sesiones se van a manejar a través de archivos, se procede a:
Eliminar todos los archivos de la carpeta «session». Nos ubicamos en la carpeta session y ejecutamos el siguiente comando
sudo find . -name '*.*' -type f -delete
Otra opción es eliminar y crear nuevamente la carpeta «session», para ellos se procede a:
En la carpeta «var» del public_html, se elimina la carpeta «session» y se vuelve a crear la carpeta «session» con permisos «755»
sudo mkdir session
sudo chmod -R 755 session
En el archivo app/etc/env.php, el elemento «session» del vector «return» lo definimos como tipo «file»:
'session' => [
'save' => 'files',
Creamos un archivo phpinfo.php en el directorio donde están instalado Magento con las siguientes lineas:
<?php
phpinfo();
Desplegamos en el navegador htpps://dominio.com/phpinfo.php para verificar los valores de las directivas:
max_execution_time
max_input_time
memory_limit
En el cpanel del Vesta activamos la versión del php.ini que convenga para la instalación: 7.1, 7.2, 7.4, etc.
Actualizamos las siguientes directivas en el /etc/php/7.x/fpm/php.ini:
max_execution_time = 300
max_input_time = 300
memory_limit = 2048M
Actualizamos las siguientes directivas en el archivo /etc/php/7.x/fpm/pool.d/dominio.com.conf:
php_admin_value[session.save_path] = /rutaAlDirectorioPrincipalInstalacionMagento/var/session
php_admin_value[max_execution_time] = 300
php_admin_value[memory_limit] = 2048M
Ejecutamos el siguiente comando:
sudo systemctl restart php7.x-fpm
En el navegador desplegamos https://dominio.com/phpinfo.php y verificamos que efectivamente se actualizaron los valores de:
max_execution_time
max_input_time
memory_limited
Si no se va a manejar las sesiones con archivos, sino más bien con Memcached, se procede a instalar con los siguientes comandos:
sudo apt update
sudo apt install memcached
Verificamos el archivo /etc/memcached.conf
vi /etc/memcached.conf
Ejecutamos:
echo "stats" | nc localhost 11211
Instalamos la extensión memcached de Php:
sudo apt install php-memcached
phpenmod memcached
En el php.ini actualizamos:
session.save_handler = "memcached"
session.save_path = "localhost:11211"
sudo service apache2 restart
sudo service memcached stop
sudo service memcached start
sudo service memcached restart
telnet localhost 11211
netstat -ap | grep 11211
ps aux | grep memcached
En el navegador desplegamos https://dominio.com/phpinfo.php y verificamos que aparezca la extensión memcached
Instalamos Varnish:
sudo apt-get update
sudo apt-get install varnish
Verificamos la versión instalada:
sudo varnishd -V
Editamos el archivo /etc/default/varnish y hacemos los siguientes cambios:
DAEMON_OPTS="-a :80 \
-T localhost:6082 \
-f /etc/varnish/default.vcl \
-S /etc/varnish/secret \
-p http_req_hdr_len=1048576 \
-p http_resp_hdr_len=1048576 \
-p http_req_size=1048576 \
-p http_resp_size=1048576 \
-p workspace_client=1048576 \
-p workspace_backend=1048576 \
-p workspace_session=1048576 \
-p thread_pool_min=2000 \
-s malloc,4G"
VARNISH_LISTEN_PORT=80
Hacemos un respaldo del archivo default.vcl
cp /etc/varnish/default.vcl /etc/varnish/default.vcl.bak
Editamos el archivo /etc/varnish/default.vcl y cambiamos el puerto a ’80’
backend default {
.host = "127.0.0.1";
.port = "80";
}
sudo php7.1 bin/magento setup:config:set --http-cache-hosts=IpDelServidor:80
En el cpanel del Vesta, hacemos los cambios respectivos para que Apache escuche por el puerto 8080
En el cpanel de Vesta, ingresando por web, en Plantilla Proxy, seleccionamos: «hosting_legacy»
Reiniciamos apache:
sudo service apache2 restart
Iniciamos Varnish:
sudo service varnish start
Si se quiere reiniciar Varnish:
sudo service varnish restart
Editamos el archivo /app/etc/env.php y lo actualizamos con la información del backend y la base de datos:
'backend' => [
'frontName' => 'storeadmin'
],
'db' => [
'table_prefix' => '',
'connection' => [
'default' => [
'host' => 'localhost',
'dbname' => 'mi_base_de_datos',
'username' => 'usuario_base_de_datos',
'password' => 'clave_de_usuario',
'active' => '1'
]
]
Si en el directorio «var» existen las carpetas «page_cache» y «cache» se eliminan
Accedemos a la tabla «core_config_data» y hacemos los siguientes cambios, buscando siempre con Like %…% en el campo «path» y cambiando los valores en el campo «value».
Buscamos en el campo path con like %…%: web/unsecure/base_url y web/secure/base_url y actualizamos respectivamente en el campo «value»:
web/unsecure/base_url -> http://dominio.com
web/secure/base_url -> https://dominio.com
Buscamos con %…% en el campo «Path»: «admin/url/custom», si existen el ese registro actualizamos su valor a: https://dominio.com/storeadmin.
Si no existe el registro, lo creamos y le asignamos el valor: https://dominio.com/storeadmin
En la tabla «core_config_data» buscamos el path «web/secure/use_in_adminhtml» y colocar el valor «1»
Buscamos el patch «web/cookie» con Like %..% y le asignamos valor «null»
Verificamos que los directorios tengan permiso 755, si no los tienen procedemos a cambiarlos con el comando:
find /RutaALaCarpetaPublicHtml/public_html -type d -exec chmod -R 0755 {} \;de
Desde el cpanel del Vesta «Admin» configuramos los siguientes valores para mysql:
wait_timeout en 300
interactive_timeout en 300
max_allowed_packet en 500M
Nos posicionamos en el directorio public_html y desde allí ejecutamos los siguientes comandos:
sudo php7.1 bin/magento indexer:reindex
sudo php7.1 bin/magento cache:flush
sudo chmod -R 777 generated
Fuente:
https://qastack.mx/magento/127333/how-to-migrate-magento-2-0-x-from-one-server-to-another
http://www.rafelsanso.com/migrar-una-tienda-online-magento-otro-servidor/
https://redis.io/topics/quickstart
https://devdocs.magento.com/guides/v2.2/config-guide/varnish/config-varnish-configure.html