Crea tu servidor casero – Parte 2



Esta es la parte 2 de “crea tu servidor casero” en la cual instalaremos Apache, PHP y MySQL para poder utilizar aplicaciones web.

Instalación y configuración de Apache

Primero instalaremos Apache con el siguiente comando.

sudo apt-get install apache2* -y

Habiendo instalado Apache, ahora deberemos configurar algunas cosas.

Primero abriremos el archivo apache.conf para permitir htaccess

sudo nano /etc/apache2/apache2.conf

Buscamos la linea <Directory /var/www/> (En nano podemos utilizar CTRL+W para buscar texto) y editamos la linea AllowOverride None por AllowOverride All. El archivo editado se verá de la siguiente manera:

 

Guardamos los cambios (CTRL+O).

Ahora vamos a habilitar el modo rewrite e include con los siguientes comandos.

sudo a2enmod rewrite
sudo a2enmod include

Nos pedirá que reiniciemos Apache. Lo podemos hacer ahora o esperar a terminar todas las configuraciones.

Lo siguiente será deshabilitar el módulo mpm-event y habilitar el módulo mpm-prefork, ya que utilizaremos mod_php y no es compatible con event. A continuación los comandos.

sudo a2dismod mpm_event
sudo a2enmod mpm_prefork

Ahora podemos reiniciar Apache con el siguiente comando.

sudo service apache2 restart

Instalación y configuración de MySQL

Instalamos MySQL con el siguiente comando.

sudo apt-get install mysql-server -y

Al terminar la instalación, seguiremos con la configuración de la seguridad aplicando el siguiente comando.

sudo mysql_secure_installation

Lo primero que nos pregunta es si deseamos configurar el plugin de validación de contraseña. Con esto nos pedirá ingresar una contraseña con cierta seguridad dependiendo del nivel seleccionado.

Para esta guía pondré que no, ya que utilizaré una contraseña simple.

Ahora nos pedirá ingresar una contraseña, ya que se instaló con contraseña en blanco.

La contraseña no se verá mientras la ingresan, por lo que deben estar seguros que la escriben bien.

Luego nos consulta si deseamos eliminar el usuario anónimo. Ponemos “y” y Enter.

Ahora nos consulta si deseamos deshabilitar el login remoto de root. Ponemos “y” y Enter.

Lo siguiente será eliminar la base de datos de prueba. Ponemos “y” y Enter.

Por último, recargamos la tabla de privilegios para que los cambios surtan efecto. Ponemos “y” y Enter.

Con esto ya tenemos una configuración mínima de seguridad en MySQL.

Instalación PHP y librerías

Finalmente instalaremos PHP con algunos complementos con el siguiente comando.

sudo apt-get -y install php7.2 libapache2-mod-php7.2 php7.2-mysql php7.2-curl php7.2-gd php-pear php7.2-pspell php7.2-recode php7.2-sqlite3 php7.2-tidy php7.2-xmlrpc php7.2-xml

Comprobando el servidor web

Habiendo instalado todo lo anterior, ahora verificaremos que el servidor web funciona.

Desde otro equipo ingresaremos a la IP privada del servidor y nos debería mostrar algo así.

Con esto comprobamos que Apache trabaja correctamente. Ahora veremos como verificar si PHP también trabaja bien.

Primero cambiaremos el propietario del directorio www al usuario actual.

sudo chown -R ubuntu /var/www/

Ahora crearemos un archivo en la carpeta principal de Apache con el siguiente código.

echo “<?php phpinfo(); ?>” > /var/www/html/info.php

Y para visualizarlo, debemos ir al mismo IP privado, pero agregando /info.php. Veremos lo siguiente.

Por último, nos queda comprobar MySQL. Para eso descargaremos HeidiSQL desde ESTE LINK. Yo utilizo la versión portable.

Abrimos el programa y damos clic en Nueva.

Cambiamos el nombre de la sesión, cambiamos el IP del servidor e introducimos la contraseña.

Clic en guardar.

Antes de abrir la sesión, debemos otorgar privilegios de acceso remoto. Ingresamos el siguiente comando.

sudo mysql -u root -p

Ingresamos el password de MySQL.

Dentro de la consola MySQL, ingresamos los siguientes comandos (cambiando CONTRASEÑA por la de ustedes).

GRANT ALL PRIVILEGES ON *.* TO root@’%’ IDENTIFIED BY ‘CONTRASEÑA*’;
FLUSH PRIVILEGES;
QUIT;

Ahora editamos el siguiente archivo.

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

Comentamos bind-address.

Guardamos los cambios y reiniciamos mysql.

sudo service mysql restart

Con esto ya podemos acceder desde HeidiSQL.

Ya tenemos todo verificado y funcionando!.