Configuración de Alojamiento Virtual y Despliegue de Aplicaciones: Servidores Locales y Remotos
Clasificado en Informática
Escrito el en español con un tamaño de 7,23 KB
Configuración de un Alojamiento Virtual (Virtual Host)
Pasos para configurar un alojamiento virtual:
- Configurar el servidor DNS: Asegurarse de que el servidor DNS resuelva el nombre de dominio correctamente.
- Deshabilitar el servidor virtual por defecto:
- Ejecutar:
sudo a2dissite 000-default.conf
(o el archivo de configuración por defecto). - Verificar que se haya eliminado el enlace simbólico en
sites-enabled
. - Reiniciar el servidor Apache.
- Ejecutar:
- Crear y habilitar el nuevo servidor virtual: Crear un nuevo archivo de configuración para el servidor virtual con todas las directivas necesarias (
DocumentRoot
,ServerName
, etc.). - Habilitar el servidor virtual creado:
- Ejecutar:
sudo a2ensite nombre_del_servidor.conf
.
- Ejecutar:
- Verificar y reiniciar: Comprobar que se haya creado el enlace simbólico en
sites-enabled
y reiniciar el servidor Apache.
Despliegue de Aplicaciones en Servidores
Servidor Local
Pasos para desplegar una aplicación en un servidor local:
- Instalar el servidor: Instalar un entorno de servidor como WAMP (Windows) o LAMP (Linux).
- Configurar la base de datos:
- Crear un usuario de base de datos.
- Asignar permisos al usuario.
- Crear o cargar la base de datos.
- Copiar la aplicación: Copiar los archivos de la aplicación al directorio raíz del servidor web (por ejemplo,
htdocs
en WAMP,/var/www/html
en LAMP). - Configurar el servidor virtual (si es necesario): Crear las directivas necesarias para la aplicación en la configuración del servidor web (por ejemplo, en Apache).
- Reiniciar el servidor: Reiniciar el servidor web para aplicar los cambios.
- Acceder a la aplicación: Abrir un navegador web y acceder a la aplicación a través de
localhost
o la dirección IP local.
Servidor Remoto
Pasos para desplegar una aplicación en un servidor remoto:
- Instalar software necesario: Asegurarse de que el servidor remoto tenga instalado:
- Un servidor web (como Apache o Nginx).
- Un servidor de base de datos (como MySQL o PostgreSQL).
- Un servidor FTP (como vsftpd) para transferir archivos.
- OpenSSH para acceso remoto seguro.
- Configurar la base de datos: Similar al servidor local, crear un usuario, asignar permisos y crear/cargar la base de datos.
- Transferir la aplicación: Usar un cliente FTP (como FileZilla) para copiar los archivos de la aplicación al directorio raíz del servidor web en el servidor remoto.
- Configurar el servidor virtual (si es necesario): Crear las directivas necesarias para la aplicación en la configuración del servidor web, utilizando una conexión SSH para acceder al servidor.
- Reiniciar el servidor: Reiniciar el servidor web para aplicar los cambios (a través de SSH).
- Acceder a la aplicación: Abrir un navegador web y acceder a la aplicación a través del nombre de dominio o la dirección IP pública del servidor.
Ejemplo de Código Java: Clase Humano y ArrayList
import java.util.ArrayList;
public class Humano {
private String nombre;
private int edad;
public Humano(String nombre, int edad) {
this.nombre = nombre;
this.edad = edad;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public String getNombre() {
return nombre;
}
}
class Main{
public static void main(String[] args) {
ArrayList<Humano> lista = new ArrayList<>();
lista.add(new Humano("Pepe", 21));
lista.add(new Humano("Alejandro", 60));
lista.add(new Humano("Pablito", 21));
for (Humano h1 : lista) {
System.out.println("El humano " + h1 + " se llama " + h1.getNombre());
}
}
}
Correcciones y mejoras en el código Java:
- Se corrigió la declaración del
ArrayList
para usar la sintaxis de diamante (<>
) para inferencia de tipos. - Se agregó una clase
Main
que contiene el métodomain
. El código original tenía elmain
fuera de cualquier clase, lo cual no es válido en Java. - Se eliminó la llamada a
lista.get()
que no tenía ningún argumento ni efecto. - Se mejoró el formato del código para mayor legibilidad.
- Se corrigió error de sintaxis en el método
setNombre
.
Ejemplo de Código Java: Numeración de Líneas de un Fichero
package ejer1_ficheros;
import java.io.*;
import java.util.Scanner;
public class Ejer1_ficheros {
public static String LeerFichero(String n) throws IOException {
StringBuilder s = new StringBuilder();
File f = new File(n);
int con = 1;
if (f.exists()) {
try (FileReader fr = new FileReader(f);
BufferedReader br = new BufferedReader(fr)) {
String linea;
while ((linea = br.readLine()) != null) {
if (linea != null && !linea.isEmpty()) {
s.append("\n").append(con).append(" ").append(linea);
con++;
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
EscribirFichero(s.toString(), n);
return s.toString();
}
public static void EscribirFichero(String s, String n) throws IOException {
File f = new File(n + ".num");
try (FileWriter fw = new FileWriter(f, true)) {
fw.write(s);
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) throws IOException {
Scanner sc = new Scanner(System.in);
System.out.println("Introduzca el nombre del archivo a numerar: ");
String n = sc.nextLine();
LeerFichero(n + ".java");
}
}
Correcciones y mejoras en el código Java de numeración:
- Se utilizó un
StringBuilder
para construir la cadena resultante de manera más eficiente, en lugar de concatenar cadenas repetidamente. - Se emplearon try-with-resources para asegurar el cierre adecuado de los flujos (
FileReader
,BufferedReader
,FileWriter
), incluso en caso de excepciones. - Se simplificó la lógica del bucle
while
. - Se movió la llamada a
EscribirFichero
fuera del buclewhile
, para que se escriba el archivo completo una sola vez, en lugar de escribir cada línea por separado. - Se corrigió la condición para verificar si la línea está vacía.
- Se mejoró el formato del código.