
Instalación de LAMP en Ubuntu para Magento 2.4.4.
A continuación se muestran los pasos para instalar un proyecto de Magento 2 en Ubuntu Linux con el servidor web Apache HTTP.
Magento es una plataforma de comercio electrónico gratuita y de código abierto basada en PHP y MySQL que es utilizada por millones de pequeñas empresas para vender y administrar sus productos online. Si deseas crear una tienda online, Magento podría ser la forma más sencilla de hacerlo.
Magento permite a los usuarios crear una tienda online completa:
- Administración de inventario.
- Catálogos de productos.
- Envío.
- Facturación
- Otras funciones.
Para obtener más información sobre Magento, consulte su página principal.
Este tutorial está basado en Ubuntu 22.04 por lo que si tiene otra distribución ajuste las versiones de los componentes necesarios soportados por su distribución. Instalaremos el servidor web Apache 2.4.52, el servidor de base de datos MySQL 8.0.32 y los módulos PHP 7.4 para ser compatibles con la versión 2.4.4 de Magento.
Instalar Apache2 en Ubuntu:
Ejecute los siguientes comandos:
sudo apt update
sudo apt install apache2
Una vez terminada la instalación compruebe que concluyó correctamente comprobando la versión de Apache instalada:
apache2 -v
La respuesta que debe de esperar es la siguiente:
Server version: Apache/2.4.52 (Ubuntu)
Server built: 2022-09-30T04:09:50
Ubicar proyecto de Magento:
En nuestro caso partimos de que ya tenemos el proyecto en nuestra máquina ahora solo lo vamos a ubicar en el directorio /var/www que es desde donde Apache lo reconocerá como un host virtual.
En caso de no poseer un repositorio de Magento puede visitar este enlace y seguir los pasos que describe para su descarga e instalación.
Instalar MySQL en Ubuntu:
Ejecute los siguientes comandos:
sudo apt install mysql-server
Asegurar MySQL:
Inicie un script MySQL para cambiar algunas configuraciones:
sudo mysql_secure_installation
Se le pedirá que ingrese una contraseña para el usuario root, que utilizará para iniciar sesión en el servidor MySQL.
Ingrese "y" para "sí" o cualquier otra letra para "no".
Se le preguntará si desea probar la seguridad de la contraseña.
Entonces se recomienda presionar "y" y luego "sí".
- Eliminar usuarios anónimos
- Deshabilitar el inicio de sesión de root de forma remota
- Eliminar la base de datos de prueba
- Actualizar las nuevas reglas
Cambiar el método de autenticación
A partir de la versión 5.7 de MySQL, el usuario root de MySQL está configurado para autenticarse a través del complemento auth_socket de forma predeterminada en lugar de una contraseña.
Para usar una contraseña para conectarse a MySQL como usuario root, debe cambiar el método de autenticación, de auth_socket a mysql_native_password.
Como aún no se ha establecido una contraseña, puede conectarse al servidor MySQL simplemente usando el comando mysql o sudo mysql si ha iniciado sesión como usuario normal. A continuación, deberá usar el comando:
mysql -u root -p como root, de lo contrario sudo mysql -u root -p como usuario normal.
Entonces, si ha iniciado sesión como root, escriba en la terminal:
mysql
De lo contrario, si ha iniciado sesión como un usuario normal con privilegios de sudo:
sudo mysql
Para verificar el método de autenticación asociado con las cuentas mysql:
SELECT user,authentication_string,plugin,host FROM mysql.user;
Debería recibir un mensaje similar a este:
+------------------+-------------------------------------------+-----------------------+-----------+
| user | authentication_string | plugin | host |
+------------------+-------------------------------------------+-----------------------+-----------+
| root | | auth_socket | localhost |
| mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *5852386AB32C5DAD5DDA4F5FED911A70DA342656 | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+
4 rows in set (0.00 sec)
Como puede ver, el método de autenticación auth_socket está configurado por defecto para el usuario root.
Para utilizar la autenticación de contraseña para la cuenta raíz, realice los siguientes cambios:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'TUA_PASSWORD';
Atención:Your password does not satisfy the current policy requirements.este tutorial
Ahora puede verificar el nuevo método de autenticación asociado con el usuario raíz:
SELECT user,authentication_string,plugin,host FROM mysql.user;
Debería recibir un mensaje similar a este:
+------------------+-------------------------------------------+-----------------------+-----------+
| user | authentication_string | plugin | host |
+------------------+-------------------------------------------+-----------------------+-----------+
| root | *E6A3377941E640ADEDCC8907E390B06B0C863862 | mysql_native_password | localhost |
| mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *5852386AB32C5DAD5DDA4F5FED911A70DA342656 | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+
4 rows in set (0.00 sec)
Salga del indicador de MySQL:
exit;
Para iniciar sesión nuevamente en el servidor MySQL ahora, deberá ingresar una contraseña, luego desde la terminal:
Si ha iniciado sesión como root, escriba en la terminal:
mysql -u root -p
De lo contrario, si ha iniciado sesión como un usuario normal con privilegios de sudo:
sudo mysql -u root -p
Cree una base de datos para Magento:
CREATE DATABASE <DB_NAME> DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
Asocie un nuevo usuario a la base de datos <DB_NAME> con contraseña y privilegios:
GRANT ALL ON <DB_NAME>.* TO 'user_name'@'localhost' IDENTIFIED BY 'tu_password';
Actualizar privilegios:
FLUSH PRIVILEGES;
Salir de mysql:
exit;
Modifique el fichero env.php ubicado en el directorio var/www/<tu_dominio>/app/etc/ con las credenciales de la base de datos name_user, db_name y password:
(...)
db' => [
'table_prefix' => '',
'connection' => [
'default' => [
'host' => '127.0.0.1',
'dbname' => 'm244_db',
'username' => 'admin',
'password' => 'Admin123*',
'model' => 'mysql4',
'engine' => 'innodb',
'initStatements' => 'SET NAMES utf8;',
'active' => '1',
'driver_options' => [
1014 => false
]
]
]
],
(...)
Instalar PHP en Ubuntu:
Ejecute los siguientes comandos:
sudo apt update
A continuación, ejecute los siguientes comandos para instalar PHP 7.4 y los módulos relacionados.
sudo apt install php7.4 php7.4-common php7.4-mysql php7.4-gmp php7.4-curl php7.4-intl php7.4-mbstring php7.4-xmlrpc php7.4-gd php7.4-xml php7.4-cli php7.4-zip php7.4-soap php7.4-bcmath
Configurar Apache para Magento:
Ejecute los siguientes comandos para crear un nuevo archivo de configuración llamado en nuestro caso <<tu_dominio>.conf> en el / etc / apache2 / sites-available / directorio para alojar nuestro bloque de servidor Magento, es recomendable llamar el fichero .conf con el nombre del dominio de su proyecto así no habrá confusiones futuras.
sudo nano /etc/apache2/sites-available/<tu_dominio>.conf
En el archivo, copie y pegue el contenido a continuación:
<VirtualHost *:80>
ServerName <tu_dominio>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/<tu_dominio>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
<Directory /var/www/magento/>
Options FollowSymlinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
Guarde y cierre el fichero.
Después de guardar el fichero anterior, ejecute los siguientes comandos para habilitar el nuevo archivo que contiene nuestro bloque de servidor Magento.
sudo a2ensite magento.conf
sudo systemctl restart apache2
Para actualizar los registros de Magento en la base de datos, generar ficheros estáticos y limpiar elementos de la cache es necesario correr los siguientes comandos desde el directorio raíz del proyecto:
php bin/magento setup:upgrade
php bin/magento setup:di:compile
php bin/magento indexer:reindex
php bin/magento cache:flush
php bin/magento setup:static-content:deploy -f
php bin/magento cache:clean
chmod -R 777 var/* generated/* pub/static/
En esta etapa, Magento está listo y se puede iniciar iendo al IP o al nombre de host del servidor.
http://<tu_dominio>