Introducción
LAMP es un grupo de software de código abierto que normalmente se instala en conjunto para permitir que un servidor aloje sitios web y aplicaciones web dinámicos. LAMP incluye Apache, MySQL, PHP.
En este tutorial instalaremos LAMP con PrestaShop en Ubuntu 20.04 LTS Focal Fossa.
Si desea instalar Prestashop en un servidor remoto, continúe leyendo, de lo contrario, omita el primer párrafo "Conexión al servidor" y lea el siguiente.
Conexión al servidor
Para acceder al servidor, necesita conocer la dirección IP. También necesitará su nombre de usuario y contraseña para la autenticación. Para conectarse al servidor como root, escriba el siguiente comando:
ssh root@IP_DEL_SERVER
A continuación, deberá ingresar la contraseña del usuario root.
Si no usa el usuario raíz, puede iniciar sesión con otro nombre de usuario usando el mismo comando, luego cambie la raíz a su nombre de usuario:
ssh nome_utente@IP_DEL_SERVER
Luego se le pedirá que ingrese su contraseña de usuario.
El puerto estándar para conectarse a través de ssh es 22, si su servidor usa un puerto diferente, deberá especificarlo usando el parámetro -p, luego escriba el siguiente comando:
ssh nome_utente@IP_DEL_SERVER -p PORTA
Instalar Apache
Los repositorios de paquetes oficiales de Ubuntu incluyen una versión actualizada de Apache, luego podemos instalar los paquetes necesarios usando apt.
Actualice la lista de paquetes de Ubuntu para tener la última versión de las listas de repositorios, desde la terminal:
sudo apt update
Para instalar Apache, abra la terminal y emita estos comandos:
sudo apt install apache2
Si el firewall de Ubuntu está activo, debe habilitar el tráfico para Apache:
sudo ufw allow in "Apache Full"
En este punto, el servidor está listo con las configuraciones predeterminadas. Simplemente conéctese a su dirección IP pública o nombre de dominio:
http://IP_OPPURE_NOME_DOMINIO
Para ver el estado de Apache:
sudo service apache2 status
Debería ver un mensaje de salida similar al siguiente:
● apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2020-07-21 14:55:55 CEST; 5min ago
Docs: https://httpd.apache.org/docs/2.4/Main PID: 2907 (apache2)
Tasks: 55 (limit: 2286)
Memory: 5.1M
CGroup: /system.slice/apache2.service
├─2907 /usr/sbin/apache2 -k start
├─2908 /usr/sbin/apache2 -k start
└─2909 /usr/sbin/apache2 -k start
Para reiniciar Apache:
sudo service apache2 restart
Para detener Apache:
sudo service apache2 stop
Para iniciar Apache:
sudo service apache2 start
Configurar un host virtual
Cuando se utiliza el servidor web Apache, los hosts virtuales se pueden utilizar para alojar varios dominios y luego varios sitios web en un solo servidor. Configuraremos un dominio llamado example.com, pero debería usar un dominio existente.
Apache en Ubuntu 20.04 LTS Focal Fossa tiene un bloque de servidor habilitado de forma predeterminada que está configurado para servir documentos desde el /var/www/html
para un solo sitio. Si aloja varios sitios, en lugar de modificar /var/www/html
, cree una estructura de directorio dentro de /var/www
dejando /var/www/html
como el directorio predeterminado para servir si la solicitud de un cliente no coincide con ningún otro sitio configurado como un anfitrión virtual.
Cree el directorio para esempio.com
, usando la -p
para crear todos los directorios necesarios:
sudo mkdir -p /var/www/prestashop/
Asigne al usuario actual como propietario del nuevo directorio:
sudo chown -R $USER:$USER /var/www/prestashop
Asegúrese de que los permisos sean correctos:
sudo chmod -R 755 /var/www/prestashop
Cree un nuevo archivo de configuración para el esempio.com
, sin cambiar el predeterminado:
sudo nano /etc/apache2/sites-available/prestashop.conf
Pegue las siguientes líneas de código, asegurándose de cambiar los valores de su dominio, en este caso esempio.com
:
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName esempio.com
ServerAlias www.esempio.com
DocumentRoot /var/www/prestashop
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Guarde y cierre el archivo.
Habilite el nuevo sitio:
sudo a2ensite prestashop.conf
Verifique si los datos ingresados en los archivos son correctos:
sudo apache2ctl configtest
Debería ver un mensaje de salida similar al siguiente:
Syntax OK
Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
Reinicie Apache:
sudo systemctl restart apache2
Ahora puede conectarse al host virtual que acaba de crear conectándose a su dominio:
http://esempio.com
Instalar MySQL
Puede instalar MySQL usando el repositorio oficial de Ubuntu con apt. Instale MySQL:
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 raíz 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, necesita 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á utilizar 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 |
+------------------+------------------------------------------------------------------------+-----------------------+-----------+
| debian-sys-maint | $A$005$wiz.ZHn"U%%#RSRzx/183gaUy11ye4bLrE1dPfyuKzabsr9iPu/2hC/| caching_sha2_password | localhost |
| mysql.infoschema | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost |
| mysql.session | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost |
| mysql.sys | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost |
| root | | auth_socket | localhost |
+------------------+------------------------------------------------------------------------+-----------------------+-----------+
5 rows in set (0.00 sec)
auth_socket
método de autenticación auth_socket está configurado de forma predeterminada 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
Luego actualice las tablas:
FLUSH PRIVILEGES;
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 |
+------------------+------------------------------------------------------------------------+-----------------------+-----------+
| debian-sys-maint | $A$005$wiz.ZHn"U%%#RSRzx/183gaUy11ye4bLrE1dPfyuKzabsr9iPu/2hC/| caching_sha2_password | localhost |
| mysql.infoschema | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost |
| mysql.session | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost |
| mysql.sys | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost |
| root | *13097EDBBF2AB852D55D47ED1477E2901F60DFE1 | mysql_native_password | localhost |
+------------------+------------------------------------------------------------------------+-----------------------+-----------+
5 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 PrestaShop:
CREATE DATABASE prestashop DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
Cree y asocie un nuevo usuario a la base de datos de prestashop con contraseña y privilegios:
CREATE USER 'prestashopuser'@'localhost' IDENTIFIED BY 'nuova_password';
GRANT ALL PRIVILEGES ON prestashop.* TO 'prestashopuser'@'localhost' WITH GRANT OPTION;
Atención:Your password does not satisfy the current policy requirements.
este tutorial
Actualizar privilegios:
FLUSH PRIVILEGES;
Salir de mysql:
exit;
Instalar PHP
Para instalar PHP y extensiones útiles para PrestaShop, desde la terminal:
sudo apt install php libapache2-mod-php php-mysql php-curl php-gd php-mbstring php-xml php-xmlrpc php-soap php-intl php-zip
Reinicie Apache:
sudo service apache2 restart
Instalar PrestaShop
Da los siguientes comandos desde el terminal, ingresa a la carpeta PrestaShop:
cd /var/www/prestashop
Descarga PrestaShop, actualmente la última versión es 1.7.6.7:
sudo wget https://download.prestashop.com/download/releases/prestashop_1.7.6.7.zip
Instale Zip y Unzip para administrar archivos.zip:
sudo apt-get install zip unzip
Extraer PrestaShop:
sudo unzip prestashop_1.7.6.7.zip
Extraiga el archivo prestashop.zip:
sudo unzip prestashop.zip
Si es necesario, sobrescriba el archivo index.php. Luego presione y y luego enter (tecla enter en el teclado).
Habilitar mod_rewrite:
sudo a2enmod rewrite
Reinicie Apache:
sudo service apache2 restart
Cambiar permisos:
sudo chown -R www-data:www-data /var/www/
Conéctese a su nombre de dominio:
http://esempio.com
Debería ver la primera pantalla de instalación de PrestaShop.
Conclusión
En este tutorial hemos visto cómo instalar Prestashop en Ubuntu 20.04 LTS Focal Fossa con LAMP, MySQL y PHP.
Si desea utilizar phpMyAdmin para la administración de bases de datos, lea este tutorial: Cómo instalar y configurar phpMyAdmin en Ubuntu 20.04 LTS.
Puede instalar certificados HTTPS (SSL) de forma gratuita para obtener una conexión segura, lea este tutorial: Cómo instalar Let's Encrypt para Apache en Ubuntu 20.04 LTS.