# Instalación de Servidores Sistema LAMP -> Linux + Apache + MySql + Php * Abrimos el terminal ```shell= # Actualizamos Windows $sudo apt update $sudo apt upgrade # Instalamos Apache $apt install apache2 ``` * Comprobamos el estado del Servidor Apache (LocalHost o 127.0.0.1) * Activamos el FireWall para máquinas externas ```shell= #Activamos el FireWall $ufw enable #Comprobamos el estado del FireWall $ufw status #Muestra las Apps $ufw app list #Evitamos que nos protega de las peticiones a el servidor apache $ufw allow in "Apache" ``` * Para acceder a mi máquina desde fuera necesitamos la ip pública ```shell= #Ver configuración de ip $ip add #Mostramos la ip publica $ apt install curl $curl http://icanhazip.com ``` * Instalamos mysql-server, sin seguridad por ahora (Lo haremos más adelante) ```shell= # Instalamos Mysql $apt install mysql-server #Comprobamos que funciona $mysql ``` * Instalamos PHP ```shell= # Instalamos PHP, el módulo de Apache especifico de PHP + MySql $apt install php libapache2-mod-php php-mysql ``` * Vamos a la raíz del Sistema y vamos a el directorio donde Apache guarda las páginas web ```shell= $cd / $cd /var/www ``` * Cambiamos la página por defecto del servidor Apache ```shell= # Entramos en el directorio html cd /html # Hacemos una copia de seguridad del index.html $cp index.html index.copia # Cambiamos el index.html ``` * Cambiamos la configuracion de apache para que acepte el index.php ```shell= # Nos movemos al directorio de Apache $cd /etc/apache2/ #Nos movemos al directorio de modulos de Apache $cd /mods-enable # Editamos el fichero dir.conf $nano dir.conf o $gedit dir.conf # Añadimos el index.php como primera opción # Reseteamos el Servicio de Apache $systemctl reload apache2 ``` * Añadimos contenido al index.php ```php= <?php phpinfo(); ?> ``` * Configuramos MYSQL ```sql= CREATE DATABASE mydb; // Creamos el usuario y le seteamos la contraseña Create USER 'Sstark97'@'%' IDENTIFIED WITH MYSQL_NATIVE_PASSWORD BY 'password'; // Damos permisos a el usuario creado sobre la base de datos creada previamente GRANT ALL ON mydb.* to 'Sstark97'@'%'; ``` * Entramos con el nuevo usuario en MYSQL ```shell= $mysql -u Sstark97 -p ``` * Creamos las Tablas del Proyecto de Ejemplo ```sql= USE TodoList; CREATE TABLE TodoList( item_id int auto_increment, contenido varchar(255), primary key (item_id) ); INSERT INTO TodoList (contenido) values ("Hacer la comida"), ("Pasear"), ("Estudiar"); SELECT * FROM TodoList; ``` * Cambiamos el index.php ```php= <?php $user="Sstark97"; $password="password"; $database="mydb"; $table="TodoList"; try { $db = new PDO ("mysql:host = localhost; dbname=$database",$user,$password) echo "<h2> Mi lista de cosas por hacer: </h2><ol>"; foreach ($db -> query "SELECT contenido FROM $table") as $row) { echo "<li>".$row["contenido"]."</li>" } "</ol>"; } catch (PDOExeption $e) { print "Error!".$e -> get Message(). "<br/>"; die(); } ?> ``` ## Posibles Fallos Si da fallo ir al siguiente [enlace]("https://askubuntu.com/questions/55280/phpmyadmin-is-not-working-after-i-installed-it") ###### tags: `DAW` `DPL`