domingo, 26 de enero de 2020

Instalación de Synaptic e Instalación de Apache, MariaDB, Joomla y PHP

Instalación de Synaptic e Instalación de Apache, MariaDB, Joomla y Wordpress:

¿Qué es Synaptic?

Synaptic un programa muy potente para instalar o eliminar aplicaciones en Linux, con un entorno gráfico muy limpio y amigable, su interfaz gráfica es personalizable mediante el menú de configuración.

Este tiene el control de los paquetes (aplicaciones) instalados en tu sistema, y desde aquí puedes seleccionar los diferentes paquetes a instalar según nuestras necesidades.

¿Como se instala?

- sudo apt-get update
- sudo apt-get upgrade
- sudo apt-get install synaptic

Una vez terminado de instalar vamos a iniciar el programa:


Dentro de este programa tenemos:

Recargar: Para recargar todos los repositorios y paquetes.

Marcar todas las actualizaciones: Marca todas las actualizaciones, si marcas y tienes alguna pendiente, se te va a activar la opción de "Aplicar" al lado de esta.

Aplicar: Aplica tanto la instalación como la actualización.

Buscar: Busca los paquetes que quieras instalar.

Dentro de "Estado", si nos vamos a "Instalado", nos muestra todos los paquetes que tenemos instalados, tanto manualmente, como no.


Ahora por ejemplo, vamos a descargar el paquete de PHP.

1º Vamos a "Buscar" y ponemos: "php".


Y le damos a "Buscar".

Dentro de toda la lista que se nos despliega, buscamos "php"

Le damos doble click y nos va a salir esta pantalla:

Y le damos a "Marcar" y ahora en la barra de arriba, se nos abra activado la opción de "Aplicar" pues le damos.


Al darle nos saldrá una pantalla que nos preguntará que si queremos aplicar los cambios.
Aquí dentro podemos pinchar también en la opción de descargar solo los paquetes por si queremos guardarlos.
Pero nosotros le vamos a dar a "Aplicar".


Y ya se nos deberían estar descargando e instalando los paquetes automáticamente.


Si no funcionaría así, se tendría que descargar a mano. (MÁS ADELANTE EXPLICARÉ COMO INSTALAR PHP A MANO).


Instalación de Apache, MariaDB, Joomla y PHP

Ahora vamos a proceder a la instalación y configuración del Apache, MariaDB, Joomla y PHP.
Para que todo esto funcione correctamente tenemos que seguir los siguientes pasos:

1º Instalación de Apache:

El servidor HTTP Apache2 representa la A en LAMP
Para instalar Apache2:

- sudo apt-get update && sudo apt-get upgrade
- sudo apt install apache2


Cuando se hizo la instalación con el Synaptic del PHP también se instalo Apache2, pero se asegura también poniendo el comando.


Después de instalar Apache2:

Los comandos a continuación se pueden usar para detener, iniciar y habilitar el servicio:
- sudo systemctl stop apache2.service (Parar)
- sudo systemctl start apache2.service (Iniciar)
- sudo systemctl enable apache2.service (Habilitar)
- sudo systemctl restart apache2.service (Reiniciar)

Para probar la configuración de Apache2, ponemos en el navegador del HOST: 127.0.0.1 y nos deberá aparecer una página como esta:
Antes tenemos que abrir el puerto 80 en el VBox.


2º Instalación de Mariadb (Servidor de BBDD):

Comando para instalar:
- sudo apt-get install mariadb-server mariadb-client

Después de instalar MariaDB , los comandos a continuación se pueden utilizar para detener, iniciar y habilitar MariaDB:

- sudo systemctl stop mariadb.service (Parar)
- sudo systemctl start mariadb.service  (Iniciar)
- sudo systemctl enable mariadb.service (Habilitar)

Después de instalar vamos a ejecutar el siguiente comando para asegurarnos de que el Servidor MariaDB tiene creada una contrseña de root y no permite el acceso remoto: 

Comando:

- sudo mysql_secure_installation

Y hay que responder a unas preguntas de la siguiente manera:

Entrar contraseña de root actual (Enter para ninguna): Pulsamos "Enter" para no poner ninguna.

Establecer contraseña de root? [Y / n]: Y 

Nueva contraseña: Entrar contraseña 

Vuelva a ingresar la nueva contraseña: Repetir contraseña 

Eliminar usuarios anónimos? [Y / n]: Y 

No permitir sesión de root de forma remota? [Y / n]: n

¿Eliminar la base de datos de prueba y acceder a ella ? [Y / n]: Y 

Recargar tablas de privilegios ahora ? [Y / n]: Y

Ahora tenemos que reiniciar el servidor MariaDB y probar si está instalado correctamente:

1º Reiniciar: 

- sudo systemctl restart mariadb.service (Reiniciar)


2º Comando para comprobar:

- sudo mysql -u root -p

Metemos la contraseña del root que hemos puesto en el comando anterior, y nos tendría que salir algo como esto.


Si queremos salir, pulsamos CTRL+C.

3º Instale PHP 7.2 y módulos relacionados

Si una vez instalaste con Synaptic el PHP, no hace falta, pero se puede poner para comprobar que todo está instalado correctamente. Pondríamos:

Comando:

- sudo apt install php php-mbstring php-xmlrpc php-soap php-gd php-xml php-intl php-mysql php-cli php-zip php-curl 

Si por alguna casualidad no te dejara con el Synaptic, para hacerlo tendríamos que ir a "Software y actualizaciones", pinchar en "Descargar desde", poner "Otro" y arriba del todo seleccionar "mirrors.ubuntu.com".

(Aunque antes lo he instalado con Synaptic, me ha pedido instalar más paquetes), le das a "S" para comenzar a instalar.

Después de instalar PHP 7.2, hay que ejecutar el siguiente comando para abrir el archivo de configuración predeterminado de PHP para Apache2: 

- sudo nano /etc/php/7.2/apache2/php.ini

Hay que hacer algunos cambios en el archivo

Le damos a  CTRL-W para buscar cadenas de texto y ponemos: file_uploads


Le damos a "Enter" y nos aparecer directamente la línea:


Pues así lo tenemos que hacer con todas estas lineas:

file_uploads = On 
allow_url_fopen = On 
memory_limit = 256M 
upload_max_filesize = 100M 
max_execution_time = 360 
date.timezone = "Europe/Madrid"

Una vez terminemos esto tenemos que habilitar las extensiones que hemos instalado, para ello en el mismo fichero de configuración que arriba, ponemos en el buscador: extension=mysqli y dejamos y el siguiente apartado del fichero lo dejamos así quitando los ";" correspondientes.:


Cuando terminemos guardamos y salimos.

4º Reiniciar Apache2 

Ahora ya una vez instalador y configurado PHP vamos a reiniciar Apache2:
- sudo systemctl restart apache2.service

Para probar la configuración de PHP 7.2 con Apache2, vamos a crear un archivo phpinfo.php en el directorio raíz de Apache2

- sudo nano /var/www/html/phpinfo.php

Y vamos a escribir este contenido:

- <?php phpinfo (); ?>

Tal que así:


Guardamos y salimos.
Ahora nos vamos al navegador del Host y ponemos:

-  http://localhost/phpinfo.php 

Y nos tendría que salir algo tal que así:


5º Crear la base de datos Joomla:

Ahora ya tenemos todos los paquetes que se requieren para que funcione Joomla. 

Ahora vamos a crear una base de datos llamada "Joomladb" en MariaDB, para ello ponemos primeramente:

- sudo mysql -u root -p  (Ingresamos la contraseña del root que hemos puesto antes).

Una vez hallamos accedido al sistema de MariaDB, tenemos que poner el siguiente comando para crear la base de datos llamada "Joomladb":

- create database joomladb;


Ahora vamos a crear un usuario llamado "joomlauser" con una nueva contraseña (DENTRO DEL MARIADB TAMBIÉN)

Comando:

- CREATE USER 'joomlauser'@'localhost' IDENTIFIED BY 'nuevaclave';


Ahora vamos a conceder al usuario acceso completo a la base de datos:

Comando:
- GRANT ALL ON joomladb.* TO 'joomlauser'@'localhost' IDENTIFIED BY 'nuevaclave' WITH GRANT OPTION;


Y antes de salir ponemos:

Comando:
FLUSH PRIVILEGES;

exit;


6º Descargar Joomla:

Ahora por último paso, vamos a descargar Joomla, para ello nos vamos a la página oficial de Joomla y descargamos el último paquete:

Nos vamos a https://www.joomla.org y le damos a "Download"



Ahora nos saldrá una pantalla y le damos a "Download Joomla!"


Y le damos a "Guardar", todavía no lo ejecutamos.

Ahora abrimos un terminal, y ponemos:

- sudo apt-get install unzip (Para instalar el programa unzip)
- sudo unzip /home/antonio/Downloads/Joomla*.zip -d /var/www/html (Para descomprimirlo en la carpeta seleccionada)


O bien vamos a Downloads, y le damos click derecho, "Abrir terminal aquí" :


Y ponemos:

- sudo unzip Joomla*.zip -d /var/www/html



Ahora vamos a darle los permisos para que Joomla funcione con los siguientes comandos:

- sudo chown -R www-data:www-data /var/www/html/ 
- sudo chmod -R 755 /var/www/html/



Ya se podrá iniciar la instalación de Joomla y si todo se ha realizado correctamente el asistente funcionará bien.
(Para que nos salga directamente tendremos que borrar el archivo "index.html" alojado dentro de /var/www/html)

Ahora en el navegador web ponemos: 
Y automáticamente se nos abrirá la página de instalación de Joomla. (O directamente ponemos borrando el archivo: 127.0.0.1 y se nos abrirá)



(EL USUARIO DE LA BASE DE DATOS Y LA CONTRASEÑA INTRODUCIDA)

Una vez terminada la configuración le damos a "Instalar", cuando esté terminado la instalación tenemos que hacer un último paso:

Nos situamos en la carpeta de /var/www/html y ponemos:

- sudo mv installation _installation
Para renombrar la carpeta de instalación y no volver a iniciar la instalación cuando entremos.

Y para entrar ponemos:

127.0.0.1/index.php



Instalación servidor FTP y Ejercicio FTP

Instalación servidor FTP

¿Qué es FTP?

El Protocolo de transferencia de archivos (FTP) es un protocolo de red para la transferencia de archivos entre sistemas conectados a una red, basado en la arquitectura cliente-servidor.

Lo normal es utilizar un cliente como Filezilla, para conectarse al FTP:

Como se instala:

Se instala con el siguiente comando:

- sudo apt-get update && sudo apt-get upgrade (Si no lo tienes actualizado).
- sudo apt-get install vsftpd

Cuando se termina de instalar podemos editarlo en el siguiente fichero de configuración:

- sudo nano /etc/vsftpd.conf

Y tenemos que configurar lo siguiente:


Y ademas tenemos que descomentar más abajo:
write_enable=YES


Se guarda.
Y se reinicia el servicio con:

sudo service vsftpd restart

Puertos que hay que abrir con el FTP:

Siempre el 21 TCP.

Y cuando se quiere utilizar de manera segura y transferencia mucha
20 TCP.

Osea que hay que abrir el puerto: 20 y 21.

Para abrir los puertos nos vamos al VBox, nos vamos a "Archivo","Preferencias", "Red", seleccionamos el icono de configuración, "Reenvío de puertos", y aquí dentro lo dejamos tal que así:


Y ahora nos vamos a descargar el Filezilla.

Filezilla no solamente utilizan los puertos, 20 y 21, utilizan conexiones pasivas: que son puertos aleatorios que abren, para conectarse.

Para configurar lo mas compatible tenemos que ir:

sudo nano/etc/vsftpd.conf 

Descomentar: connect_from_port_20=YES


Y al final del documento tenemos que poner:

pasv_max_port=9001
pasv_min_port=9000
pasv_enable=NO

Y lo guardamos y lo reiniciamos

sudo service vsftpd restart

Ahora volvemos al VBox y abrimos los puertos 9000 y 9001, o los puertos que necesites.


Para conectarlo con el HOST, tienes que abrir los puertos en el Firewall también.


Una vez tengamos esto configurado, nos vamos al Filezilla:

Configuración Filezilla:
Para poder conectarnos tenemos que seguir estos pasos:

1º: Nos vamos a "Archivos", "Gestor de sitios" y le damos a "Nuevo sitio"



A la derecha nos vamos a "General" y lo quedamos tal que así:

Protocolo: FTP
Servidor: La IP de la máquina HOST. Puerto: 21
Cifrado: Usar FTP explícito.

Avanzado:
Tipo de servidor: Predeterminado

Opciones de transferencia: 
Modo de transferencia "Activo".

Y le damos a "Conectar", Y nos debería de salir tal que esto:



Ahora vamos a darle un enfoque diferente, vamos a crear un usuario, el cual solamente va a tener acceso al FTP con su carpeta expecífica, los demás usuarios no tendrán acceso.

1º Añadir el usuario que queramos:
- sudo adduser "nombre_usuario" y pones la información correspondiente.

2º Creas la carpeta ftp dentro de la carpeta del usuario:
-  sudo mkdir /home/mateos/ftp

3º Estableces la propiedad de la carpeta:
- sudo chown nobody:nogroup /home/mateos/ftp



4º Finalmente, elimina los permisos de escritura:
- sudo chmod a-w /home/mateos/ftp





5º Ahora, usa el siguiente comando para verificar los permisos:
- sudo ls -la /home/mateos/ftp
y tendria que quedar asi:
- total 8
dr-xr-xr-x 2 nobody nogroup 4096 Jun 29 11:32 .
drwxr-xr-x 3 mateos  mateos   4096 Jun 29 11:32 ..



6º Crearemos el directorio contenedor de archivos y asignaremos la propiedad:

- sudo mkdir /home/mateos/ftp/files
- sudo chown mateos:mateos /home/mateos/ftp/files


7º Agrega un archivo de prueba al directorio:

- echo "Hola" | sudo tee /home/mateos/ftp/files/ejemplo.txt




8º Vamos al archivo de configuración ftp:

- sudo nano /etc/vsftpd.conf

Y ponemos las siguientes configuraciones:

Descomentamos esto estas líneas:

listen=YES

anonymous_enable=NO

local_enable=YES

write_enable=YES

chroot_local_user=YES


ESTOS SE AGREGAN ABAJO DEL TODO:
user_sub_token=$USER
local_root=/home/$USER/ftp

pasv_min_port = 9000
pasv_max_port = 9001 (PUERTOS)

userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO




9º Procederemos con la creación y adición de nuestro usuario al archivo:

- echo "mateos" | sudo tee -a /etc/vsftpd.userlist

Y verificamos que el usuario esté realmente activo ejecutando el siguiente comando:

- cat /etc/vsftpd.userlist


10º Reinicia el servicio utilizando el siguiente comando para cargar los cambios de configuración:

- sudo systemctl restart vsftpd

11º Ahora vamos al Filezilla y vamos a comprobar que se puede entrar con el usuario "mateos"




Como podemos comprobar, solamente sale la carpeta "files" creada anteriormente y el fichero "ejemplo.txt" dentro de esa carpeta.


Si nos intentamos conectar con otro usuario no podríamos, nos saldría el error:


Para meter más usuarios tendriamos que:

1º Añadir al usuario que queramos en la lista de usuarios permitidos:
 
- echo "antonio" | sudo tee -a /etc/vsftpd.userlist

2º Creas la carpeta ftp dentro de la carpeta del usuario:
-  sudo mkdir /home/antonio/ftp

3º Estableces la propiedad de la carpeta:
- sudo chown nobody:nogroup /home/antonio/ftp

4º Finalmente, elimina los permisos de escritura:
- sudo chmod a-w /home/antonio/ftp

5º Crearemos el directorio contenedor de archivos y asignaremos la propiedad:
- sudo mkdir /home/antonio/ftp/hola
- sudo chown mateos:mateos /home/antonio/ftp/hola

6º Agregamos un archivo de prueba al directorio para comprobarlo:
- echo "Adios" | sudo tee /home/antonio/ftp/files/adios.txt

7º Reiniciamos el servicio:
- sudo systemctl restart vsftpd

Y ahora si nos metemos en el Filezilla con el usuario correspondiente, nos debería aparecer esto: