Image

En esta guía instalaremos la aplicación Magento en un servidor virtual, para no hacer el mismo trabajo cada vez, tomaremos el ensamblaje como un servidor vps. pila web en Debian 12. Este ensamblado está especialmente creado para implementar rápidamente aplicaciones web que requieren PHP y mariadb. Descarguemos la última versión del sitio web oficial e instalémosla a través de un navegador. Todos los servicios necesarios ya están instalados y configurados. También puede solicitar un servidor vps con magento preinstalado. Todo lo que tiene que hacer es cambiar su nombre de usuario y contraseña para la administración.
1. Preparemos el servidor.
Versión 2.4.6-p3

1.1 Instale los módulos php necesarios

apt install php-fpm php-cli php-mysql php-mbstring php-xml php-gd php-bcmath php-zip php-curl php-tidy php-intl php-soap php-xsl libsodium-dev libsodium23 libssl-dev libcurl4-openssl-dev

1.2 Creemos una base de datos y un usuario.

mariadb -u root

CREATE DATABASE magento;
CREATE USER 'magentouser'@'localhost' IDENTIFIED BY 'Your_password2';
GRANT ALL PRIVILEGES ON magento.* TO 'magentouser'@'localhost';
GRANT ALL ON *.* TO 'myuser'@'localhost' IDENTIFIED BY 'Yourpassword32!' WITH GRANT OPTION;
FLUSH PRIVILEGES;
exit

1.3 Instalar compositor

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php composer-setup.php --2.2
php -r "unlink('composer-setup.php');"
mv composer.phar /usr/local/bin/composer

1.4 Descargar e instalar ElasticSearch

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.11.3-amd64.deb
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.11.3-amd64.deb.sha512
shasum -a 512 -c elasticsearch-8.11.3-amd64.deb.sha512
dpkg -i elasticsearch-8.11.3-amd64.deb

1.4.1 Agregar un archivo con la configuración

nano /etc/elasticsearch/jvm.options.d/memory.options

-Xms512m
-Xmx784m

1.4.2 Cambiemos la opción

nano /etc/elasticsearch/elasticsearch.yml

xpack.security.enabled: false

1.4.3 Empecemos el servicio

nano /etc/elasticsearch/elasticsearch.yml

systemctl enable elasticsearch --now
systemctl start elasticsearch.service

1.5 Instalar y configurar Redis

curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list
apt update
apt install redis

1.5.1 Establecer una contraseña para el servicio Redis

redis-cli

acl setuser default >Your_Redis_Password
> OK
AUTH Your_Redis_Password
> OK

1.6 Preparemos todo para instalar magento

1.6.1 Regístrese en el sitio para recibir las llaves

https://account.magento.com/
https://commercemarketplace.adobe.com/customer/accessKeys/

Creemos un archivo con el siguiente contenido

nano ~/.config/composer/auth.json 

{
"http-basic": {
"repo.magento.com": {
"username": "public_key",
"password": "private_key"
}

}
}

1.6.2 Creemos un directorio

mkdir /var/www/domain.tld -p

1.6.3 Vayamos allí y comencemos la instalación

cd /var/www/domain.tld
composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition

Al finalizar, recibirá un mensaje con la dirección en el panel de administración, la necesitaremos un poco más tarde
[SUCCESS]: Magento Admin URI: /admin_1tbbc0

1.6.4 Mueva todas las carpetas y archivos a la raíz de la carpeta dominio.tld

cd /var/www/domain.tld/project-community-edition
mv /var/www/domain.tld/project-community-edition/* /var/www/domain.tld/
mv /var/www/domain.tld/project-community-edition/.* /var/www/domain.tld/

1.6.5 Cambiemos las directivas en el archivo nginx

sed -i 's/php-fpm:9000/fastcgi_backend/g' /var/www/magento/nginx.conf.sample

1.6.6 Reemplace la línea en el archivo de configuración

nano /var/www/magento/app/etc/di.xml

Default
^10\.[2-6]\.
Replace
^10\.([2-9]|10|11)\.


1.6.7 Instalemos Magento

cd /var/www/domain.tld

bin/magento setup:install --base-url=http://magento.example.com --use-secure=1 --base-url-secure=https://magento.example.com --use-secure-admin=1 --db-host=localhost --db-name=magento --db-user=magentouser --db-password=Your_password2 --admin-firstname=myuser --admin-lastname=Lastname --admin-email=myuser@example.com --admin-user=myuser --admin-password=admin_password0 --language=en_US --currency=USD --timezone=America/Chicago --use-rewrites=1 --elasticsearch-host=http://127.0.0.1 --elasticsearch-port=9200 --session-save=redis --session-save-redis-db=0 --session-save-redis-password=Your_Redis_Password --cache-backend=redis --cache-backend-redis-db=2 --cache-backend-redis-password=Your_Redis_Password --page-cache=redis --page-cache-redis-db=4 --page-cache-redis-password=Your_Redis_Password

Una vez completada la instalación, recibirás un mensaje

.......
[SUCCESS]: Magento installation complete.
[SUCCESS]: Magento Admin URI: /admin_1tbbc0
Nothing to import.

1.6.8 Configuremos cron

php bin/magento cron:install

1.6.9 Asignemos derechos

chown -R www-data:www-data /var/www/domain.tld

1.7 Cambiemos la configuración php8.2-fpm

sed -i 's/max_execution_time = 30/max_execution_time = 180/' /etc/php/8.2/fpm/php.ini
sed -i 's/max_execution_time = 30/max_execution_time = 180/' /etc/php/8.2/cli/php.ini
sed -i 's/memory_limit = 128M/memory_limit = 256M/' /etc/php/8.2/fpm/php.ini
sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 25M/g' /etc/php/8.2/fpm/php.ini
sed -i 's/post_max_size = 8M/post_max_size = 25M/g' /etc/php/8.2/fpm/php.ini
sed -i 's/zlib.output_compression = Off/zlib.output_compression = On/g' /etc/php/8.2/fpm/php.ini

systemctl restart php8.2-fpm

1.8 Veamos el archivo de configuración principal de nginx:

nano /etc/nginx/conf.d/default.conf

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

server {
# Redirect any http requests to https
listen 80;
listen [::]:80;
server_name magento.example.com;
return 301 https://$host$request_uri;
}

server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name magento.example.com;

set $MAGE_ROOT /var/www/domain.tld;
include /var/www/domain.tld/nginx.conf.sample;
client_max_body_size 25m;

access_log /var/log/nginx/magento.access.log;
error_log /var/log/nginx/magento.error.log;

# TLS configuration
ssl_certificate /etc/ssl/domain_fullchain.pem;
ssl_certificate_key /etc/ssl/domain_privkey.pem;
ssl_trusted_certificate /etc/ssl/domain_chain.pem;
ssl_protocols TLSv1.2 TLSv1.3;

ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384';
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:50m;
ssl_session_timeout 1d;

# OCSP Stapling ---
# fetch OCSP records from URL in ssl_certificate and cache them
ssl_stapling on;
ssl_stapling_verify on;
# ssl_dhparam /etc/ssl/certs/dhparam.pem;
}

Reiniciemos el servicio:

systemctl restart nginx

Listo, ahora puedes ir a https://magento.example.com y probar la aplicación:

Puede ver el enlace a la sección administrativa con el comando

php /var/www/magento/bin/magento info:adminuri

La instalación está completa; a continuación proporcionamos soluciones a problemas populares que utilizan los comandos de la aplicación.

De forma predeterminada, la autenticación de dos factores por correo electrónico está habilitada para la sección administrativa; para deshabilitarla, use los siguientes comandos:

php /var/www/domain.tld/bin/magento module:disable Magento_AdminAdobeImsTwoFactorAuth
php /var/www/domain.tld/bin/magento module:disable Magento_TwoFactorAuth
php /var/www/domain.tld/bin/magento setup:di:compile
php /var/www/domain.tld/bin/magento c:c

Para ver el dominio configurado, use el comando

bin/magento config:show web/secure/base_url

Para cambiar de dominio

php bin/magento setup:store-config:set --base-url="http://new-domain.tld/"

o para https

php bin/magento setup:store-config:set --base-url-secure="https://new-domain.tld/"

Si los estilos no se muestran correctamente, utilice estos comandos:

cd /var/www/domain.tld
$ php bin/magento setup:static-content:deploy -f
$ php bin/magento indexer:reindex



Sin comentarios aún