Skip to content

Instalacion PHP 8

sudo apt -y install php libapache2-mod-php
php -v

Verifique la instalación y reinicie Apache

sudo systemctl restart apache2

Probar PHP a su instancia

Cree el archivo:

sudo nano /var/www/html/info.php

En el archivo, introduzca el siguiente texto y guarde el archivo:

<?php
phpinfo();
?>

Ctrl + O

Ctrl + X

Nota: La direccion ip es el numero de la ip publica asignada por la instancia de oracle. pero en el caso que sea WSL Ubuntu realice la siguiente instrucción:

sudo ip a

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000     link/ether 00:15:5d:55:64:9e brd ff:ff:ff:ff:ff:ff     inet 172.21.161.61/20 brd 172.21.175.255 scope global eth0

Lo cual la ip de WSL Ubuntu para conectarse a los diferentes motores de base de datos es:

172.21.161.61

Conéctese a http://{.uri}172.21.161.61``/info.php

MYSQL Server

sudo apt install mysql-server
sudo mysql_secure_installation

Seleccionar Nivel 1, y presioone enter en todas las opciones

Asigne el password que desea como usuario root

mysql -u root -p

exit, para salir

Instalación con Docker

  1. Instalar Docker (si aún no lo tienes)
sudo apt update
sudo apt install -y docker.io
sudo systemctl enable --now docker

Verifica que Docker está funcionando:

docker --version

2. Descargar e iniciar un contenedor MySQL

docker run --name mysql-server -e MYSQL_ROOT_PASSWORD=MiNiCo57** -p 3306:3306 -d mysql:8 --bind-address=0.0.0.0

3. Verificar que el contenedor esté corriendo

docker ps

Cuando no aparece el contenedor, lo podemos mostrar con

docker ps -a

Y luego, se activa con

docker start mysql-server

donde mysql-server, es el nombre del contenedor

Si el contenedor está corriendo, verás algo como:

CONTAINER ID IMAGE COMMAND STATUS PORTS NAMES 123456789abc mysql:latest "docker-entrypoint.s…" Up X minutes 0.0.0.0:330

4. Conectarse al servidor MySQL dentro del contenedor

Ejecuta el siguiente comando para acceder a la consola de MySQL:

docker exec -it mysql-server mysql -uroot -p

5. Crear una base de datos

CREATE DATABASE mi_base_de_datos;
SHOW DATABASES;

6. Crear un usuario y darle permisos (opcional)

Si deseas crear un usuario con acceso a la base de datos:

CREATE USER 'mi_usuario'@'%' IDENTIFIED BY 'mi_contraseña';
GRANT ALL PRIVILEGES ON mi_base_de_datos.* TO 'mi_usuario'@'%';
FLUSH PRIVILEGES;

Phpmyadmin

Puede usar APT para instalar phpMyAdmin desde los repositorios predeterminados de Ubuntu.

Como usuario sudo no root, actualice el índice de paquetes de su servidor:

sudo apt update 

A continuación, puede instalar el paquete. Junto con este paquete, la documentación oficial también recomienda que instales algunas extensiones PHP en tu servidor para habilitar ciertas funcionalidades y mejorar el rendimiento.phpmyadmin

Si ha seguido el tutorial de pila LAMP de requisitos previos, varios de estos módulos se habrán instalado junto con el paquete. Sin embargo, se recomienda instalar también estos paquetes:php

  • php-mbstring: Un módulo para administrar cadenas no ASCII y convertir cadenas a diferentes codificaciones

  • php-zip: Esta extensión admite la carga de archivos a phpMyAdmin.zip

  • php-gd: Habilita la compatibilidad con la biblioteca de gráficos GD

  • php-json: Proporciona a PHP soporte para la serialización JSON

  • php-curl: Permite a PHP interactuar con diferentes tipos de servidores utilizando diferentes protocolos

Tenga en cuenta que si está utilizando una versión de PHP que no sea la predeterminada instalada en el tutorial de pila de LAMP de requisitos previos, deberá instalar las versiones apropiadas de estos paquetes de módulos. Por ejemplo, si está utilizando la versión 8.0 de PHP, deberá instalar el paquete en lugar del paquete predeterminado.php8.0-mbstringphp-mbstring

Ejecute el siguiente comando para instalar estos paquetes en el sistema. Sin embargo, tenga en cuenta que el proceso de instalación requiere que tome algunas decisiones para configurar phpMyAdmin correctamente. En breve repasaremos estas opciones:

sudo apt install phpmyadmin php-mbstring php-zip php-gd php-json php-curl 

Estas son las opciones que debe elegir cuando se le solicite para configurar su instalación correctamente:

  • Para la selección del servidor, elija apache2

Advertencia: Cuando aparece el mensaje, "apache2" se resalta, pero no se selecciona. Si no pulsa para seleccionar Apache, el instalador no moverá los archivos necesarios durante la instalación. Presione , y luego para seleccionar Apache.SPACESPACETABENTER

  • Seleccione cuando se le pregunte si desea usar para configurar la base de datosYesdbconfig-common

  • A continuación, se le pedirá que elija y confirme una contraseña de aplicación MySQL para phpMyAdmin

Nota: Suponiendo que instaló MySQL siguiendo el paso 2 del tutorial de la pila LAMP de requisitos previos, es posible que haya decidido habilitar el complemento Validar contraseña. En el momento de escribir este artículo, la activación de este componente provocará un error cuando intente establecer una contraseña para el usuario phpmyadmin:

Para resolver esto, seleccione la opción abortar para detener el proceso de instalación. A continuación, abre el prompt de MySQL:

sudo mysql 

O bien, si habilitó la autenticación de contraseña para el usuario raíz de MySQL, ejecute este comando y, a continuación, ingrese su contraseña cuando se le solicite:

mysql -u root -p 

En el símbolo del sistema, ejecute el siguiente comando para deshabilitar el componente Validar contraseña. Tenga en cuenta que esto no lo desinstalará realmente, sino que simplemente evitará que el componente se cargue en su servidor MySQL:

UNINSTALL COMPONENT "file://component_validate_password"; 

A continuación, puede cerrar el cliente MySQL:

exit 

A continuación, intente instalar el paquete de nuevo y funcionará como se espera:phpmyadmin

sudo apt install phpmyadmin 

Una vez instalado phpMyAdmin, puede abrir el símbolo del sistema de MySQL una vez más con or y luego ejecutar el siguiente comando para volver a habilitar el componente Validar contraseña:sudo sudo mysql -u root -p

INSTALL COMPONENT "file://component_validate_password";

El proceso de instalación agrega el archivo de configuración phpMyAdmin Apache al directorio, donde se lee automáticamente. Para terminar de configurar Apache y PHP para que funcionen con phpMyAdmin, la única tarea que queda en esta sección del tutorial es habilitar explícitamente la extensión PHP, lo que puede hacer escribiendo:/etc/apache2/conf-enabled/mbstring

sudo phpenmod mbstring 

Después, reinicie Apache para que se reconozcan los cambios:

sudo systemctl restart apache2

Probar remotamente el phpmyadmin

http://158.247.124.221/phpmyadmin ==> Para la Ip publica de Oracle

Para la ip de WSL Ubuntu para conectarse a los diferentes motores de base de datos es:

172.21.161.61

Conéctese a http://{.uri}172.21.161.61/info.php

Habilitar conexión remota a MySQL

Paso 1: Permitir a MySQL escuchar tráfico externo

A fin de habilitar un acceso remoto a MySQL es necesario que se habilite la escucha de direcciones IP externas.

Para activar esto, abre tu archivo mysqld.cnf:

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

Allí debes ubicar la línea que empieza con la directiva bind-address.

Por defecto, el valor asignado es 127.0.0.1.

Esto significa que el servidor permitirá únicamente conexiones locales.

Tienes que cambiar esta directiva para que haga referencia a una dirección IP externa.

Con fines demostrativos, podemos usar wildcards (comodines) y permitir conexiones remotas en general, sin restringir a direcciones IP específicas.

Para esto asignamos el valor como *, ::, o 0.0.0.0:

lc-messages-dir = /usr/share/mysql
skip-external-locking
# 
# Instead of skip-networking the default is now to listen only on 
# localhost which is more compatible and is not less secure. 
bind-address            = 0.0.0.0

Luego de cambiar esta línea, guarda y cierra el archivo.

Si editaste con nano, usa los comandos CTRL + X, Y, y luego ENTER.

Luego reinicia el servicio de MySQL para que los cambios realizados en mysqld.cnf tengan efecto:

sudo systemctl restart mysql

Paso 2: Permitir la conexión remota a un usuario de MySQL

Para esto, primero que todo debes conectarte a tu cliente de MySQL.

Para hacer ello, ejecuta el siguiente comando:

sudo mysql

Si tienes habilitada la autenticación por contraseña para tu usuario root, necesitarás usar en cambio el siguiente comando de MySQL:

mysql -u root -p

Alternativa 1: Actualizar un usuario existente

Si tienes un usuario de MySQL existente que quieres usar para conectarte a la base de datos de forma remota, necesitarás configurar dicho usuario para que pueda conectarse desde un servidor remoto en vez de localhost.

Para cambiar el host de un usuario, puedes usar el comando RENAME USER de MySQL.

Si el usuario que usarás para conectarte de forma remota se llama "pym", entonces usarás un comando como el siguiente:

RENAME USER 'pym'@'localhost' TO 'pym'@'ip_servidor_remoto';

En el comando anterior debes reemplazar ip_servidor_remoto por la ip del servidor remoto desde donde realizarás la conexión.

Alternativa 2 (recomendada): Crear un nuevo usuario

De manera alternativa, puedes crear un usuario nuevo, que podrá conectarse únicamente desde el host remoto.

Ello lo puedes hacer con el siguiente comando:

CREATE USER 'pym'@'ip_servidor_remoto' IDENTIFIED BY 'password';
CREATE USER 'admin'@'%' IDENTIFIED BY 'xxxxxx';

Recuerda que:

  • Debes reemplazar "pym" por el nombre de usuario que quieres usar, y "password" por la contraseña que quieras asignarle.

  • Si reemplazas ip_servidor_remoto por %, el usuario admitirá conexiones remotas desde cualquier IP.

Luego debes asignar al nuevo usuario los privilegios apropiados según tus necesidades.

  • El siguiente ejemplo otorga al usuario privilegios globales para crear (CREATE), modificar (ALTER), y eliminar (DROP) bases de datos, tablas, y usuarios.

  • Así como permisos para hacer INSERT, UPDATE, y DELETE sobre cualquier tabla.

  • También le permite consultar datos con SELECT, crear claves foráneas con la palabra reservada REFERENCES, y realizar operaciones FLUSH (con el privilegio RELOAD).

Recuerda asignar sólo los permisos necesarios según tu caso en particular.

GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES, RELOAD on *.* TO 'pym'@'ip_servidor_remoto' WITH GRANT OPTION;

GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%' WITH GRANT OPTION;

__________________________________________________

GRANT ALL PRIVILEGES
ON *.*
TO 'admin'@'%'
WITH GRANT OPTION;

Luego de esto, es una buena práctica ejecutar el comando:

FLUSH PRIVILEGES;

Y finalmente puedes salir del cliente de MySQL ejecutando exit.

sudo ufw allow 3306/tcp

Por último, reinicia Postgres para aplicar todos los cambios que hayas realizado en su configuración ejecutando:

sudo systemctl restart apache2

Nota: Hacer lo mismo en la instancia. Crear regla para permitir el puerto 3306

Para probar desde una terminal de un equipo remoto con MySQL instalado

mysql -h 158.247.120.66 -u admin -p

Configuración en conexión con DBeaver

Pulse en Finalizar

Para crear una base de datos, pulse botón derecho del mouse encima de la conexión

Copias de Respaldo (Backup)

Existen diferentes opciones:

Backup con WorkBench

Luego verificamos el archivo en la ubicacion que elegimos.

Para recuperar o restaurar el archivo al motor de la base de datos hacemos el proceso contrario, en Data Import/Restore

Backup con Dbeaver

Y verificamos el archivo en la ubicacion que elegimos.