AUTENTICACIÓN AL INGRESAR A UNA
PÁGINA WEB CON APACHE
Ahora ingresamos a la página y se verifica que nos pide ingreso de autenticación para mostrar el contenido de la carpeta protegida.
Se va a colocar un
mecanismo de autenticación al momento de ingresar a una página web, esta opción
es posible gracias al servidor web Apache.
Primero se debe
crear el archivo “.htpasswd”, este archivo contiene los nombres de
usuario y contraseñas válidas, se lo debe crear en un directorio que no
sea del servidor apache.
Nos pedirá que
coloquemos la contraseña para el usuario creado.
Después se realiza
la configuración del siguiente archivo:
Se añade las
siguientes líneas que se encuentran dentro de <Directory >
</Directory>
Y se debe ingresar
la ruta del directorio que se va a proteger "var/www/html/prueba/'>"
Se debe reiniciar
el servicio httpd
Ahora ingresamos a la página y se verifica que nos pide ingreso de autenticación para mostrar el contenido de la carpeta protegida.
Si se ingresa
correctamente los datos de usuario mostrará la información, caso contrario dará
error de autorización.
ACTUALIZAR DATOS EN UNA BASE DE
DATOS MYSQL DESDE UNA PÁGINA WEB
Como se vio en el
blog “Mysql + CENTOS 7 + jsp + Apache”, se puede mostrar en una página web los
datos guardados en la base de datos Mysql, gracias al servidor Web Apache y la
conexión a la base mediante jsp.
Ahora vamos a
editar los datos que se muestran en la página web desde la misma página web.
Primero se va a
crear una nueva interfaz para introducir los nuevos datos.
Se debe crear un
archivo .jsp para cada una de la tablas que se desee modificar.
Se tiene que declarar
las variables para la llamada de las etiquetas y conexión a la base de datos
MySQL,
y configurar la sentencia para la actualización en la tabla para que se actualice los datos al momento de dar click en el botón MODIFICAR.
ACCESO REMOTO A UN SERVIDOR DE BASES DE DATOS MYSQL EN
CENTOS 7
Desde un servidor Web Apache se va a acceder a una base
de datos alojada en un servidor MySQL remoto.
Primero se edita la configuración del servidor MySQL, la
cual se encuentra, por en el archivo /etc/my.cnf
gedit
/etc/my.cnf
Dentro del archivo de configuración localizar la línea
que contiene el texto [mysqld]. Debajo de esta línea editar la variable bind-address
para definir en qué dirección IP atiende el servidor MySQL.
bind-address
= 172.17.36.153
Si se trata de Red Hat/Fedora/CentOS reiniciar mediante
el comando:
#
service restart mysqld
Stopping
mysqld: [
OK ]
Starting
mysqld:
[ OK ]
Para conectarse a una determinada base de datos debe
existir un usuario con privilegios de acceso remoto, Conectarse al servidor
MySQL.
$
mysql -u root -p
Se desea permitir el acceso al usuario "root" a
la base de datos "datos" desde el host remoto "172.17.36.153"
utilizando la contraseña “laboratorio4”, otorgar el permiso mediante el comando
GRANT de MySQL:
mysql> GRANT ALL ON datos.* TO 'root'@'172.17.36.153'
IDENTIFIED BY 'laboratorio4';
Si se desea que "root" pueda acceder a la base de datos "datos"
desde cualquier host, utilizar:
mysql> GRANT ALL ON datos.* TO 'root'@'*' IDENTIFIED
BY 'laboratorio4';
Cerrar la sesión en el servidor MySQL:
mysql>
quit
Es necesario abrir el puerto 3306 (MySQL) en el firewall del servidor de
bases de datos.
# iptables -A INPUT -i eth1 -s 172.17.36.153 -p tcp
--destination-port 3306 -j ACCEPT
#
service iptables save
En los archivos de acceso a la base de datos debemos apuntar hacia la ip y
base del servidor.
Finalmente se prueba el acceso desde el cliente hacia la base de datos
almacenada en el servidor Mysql.
MySQL es un sistema de gestión de base de
datos relacional (RDBMS) de código abierto, basado en lenguaje de consulta
estructurado (SQL).
MySQL se ejecuta en prácticamente todas las
plataformas, incluyendo Linux, UNIX y Windows. A pesar de que se puede utilizar
en una amplia gama de aplicaciones, MySQL se asocia más con las aplicaciones
basadas en la web y la publicación en línea y es un componente importante de
una pila empresarial de código abierto.
Se va a realizar una conexión desde la Base
de Datos MysSQL hacia Apache para poder visualizar la información en una página
HTML utilizando sentencias y conexión con JSP.
INSTALACIÓN DE MySQL
Tener en
cuenta que supone que no hay una versión previamente instalada de MySQL o
MariaDB. Puede utilizar el siguiente comando: rpm
-qa | grep -i mysql para comprobar paquentes de MySQL que estén
instalados con anterioridad, y borrarlos con el comando yum remove si es necesario.
El
siguiente paso es instalar realmente los paquetes del servidor. Para ello,
escribimos en modo root:
yum install
mysql-community-server, podemos añadir la
opción -y (decir sí a todo).
La instalación
ya se ha completado, ahora sólo tenemos que ejecutarlo y probarlo. Recuerde que
Red Hat Enterprise Linux 7 reemplaza la gestión de servicios por systemd, por
lo que la manera “correcta” de iniciar el servicio de mysql es:
systemctl start
mysqld
Puede
comprobar que ha iniciado correctamente haciendo:
systemctl status
mysqld
Ahora
conectarse desde localhost haciendo:
mysql -u root
También
activar el autoinicio en el arranque.
systemctl enable mysqld.service
CREACIÓN DE BASE DE DATOS
Se crea
una base de datos llamada UPS con la siguiente sentencia:
Para hacer uso de la base de datos creada se utilizará la
siguiente opción:
mysql> use UPS;
Se creará dos tablas: la primera tabla se llamara DATOS_PERSONALES
y la segunda tabla INFORMACION_ACADEMICA.
Para esto se utilizara la siguiente sentencia con los
siguientes campos:
Tabla DATOS_PERSONALES:
mysql> create table DATOS_PERSONALES (cedula varchar (10),
nombres varchar(50), apellidos varchar(50), edad int, nacionalidad(50));
Se procede a insertar datos en las tabla creada anteriormente
con la siguiente sentencia:
Tabla INFORMACION_ACADEMICA:
mysql> create table INFORMACION_ACADEMICA
(cedula varchar (10), universidad(50), nivel int, campus varchar(50), carrera
varchar(50));
Se procede a insertar datos en la tabla creada:
select * from DATOS_PERSONALES;
select * from
INFORMACION_ACADEMICA;
Realizar conexión entre la base de datos MySQL con Apache.
Primero se debe realizar un archivo de
conexión con extensión .jsp para allí configurar la conexión a las bases
creadas con anterioridad.
Para acceder con JSP y Tomcat a MySQL se
necesitará el driver JDBC correspondiente que se lo puede descargar gratuitamente
desde la web:
/usr/java/tomcat/lib.
Se crea el archivo con extensión jsp con el
siguiente nombre: index.jsp en la
siguiente dirección /opt/tomcat/webapps/ROOT
que será la página de inicio, donde se colocará dos botones para cargar la
información de las tablas creadas anteriormente en la base UPS en MySQL.
Se crea una segunda página con extensión .jsp
que se llama datos_personales.jsp
donde se encuentra el código fuente de conexión hacia la base de datos con
APACHE y la consulta hacia la tabla DATOS_PERSONALES.
Se realiza la consulta de la tabla DATOS_PERSONALES
y se coloca los resultados en una tabla
de html.
OBTENCIÓN DE DATOS EN HTML
La página principal desplegará la siguiente pantalla.
En el botón datos personales se desplegará la siguiente información.
En el botón información académica se
mostrará la siguiente pantalla.
VER ARCHIVO XML EN HTML
Vamos a crear un archivo XML el cual será leído
desde HTML en el sistema operativo CENTOS 7, se necesita tener instalado el
servidor apache y levantar el servicio httpd, lo cual está explicado en este
blog en la parte derecha encuentras el link.
Definición
XML
· Especificación para diseñar lenguajes de marcado,
que permite definir etiquetas personalizadas para descripción y organización de
datos.
· Es un estándar internacionalmente conocido.
· No pertenece a ninguna compañía.
· Permite una utilización efectiva en Internet para
sus diferentes terminales.
Documento XML
· Conjunto de datos con sus respectivas etiquetas de
marcado XML.
· Se almacena como texto en archivo con extensión
.xml.
· Un documento XML puede incluir cualquier flujo de
datos basado en texto: un artículo de una revista, un resumen de cotizaciones
de
bolsa, un conjunto de registros de una base de datos, etc.
bolsa, un conjunto de registros de una base de datos, etc.
Archivo ejemplo XML
Creamos el archivo con extensión .xml y lo guardamos
en el directorio /var/www/http
<CATALOGO>
<CD>
<TITULO>AYALA NAREA</TITULO>
<ARTISTA>GABRIEL SEBASTIÁN</ARTISTA>
</CD>
</CATALOGO>
Definición HTML
HTML es un lenguaje de programación que se utiliza
para el desarrollo de páginas de Internet. Se trata de la sigla que corresponde
a HyperText Markup Language, es decir, Lenguaje de Marcas de Hipertexto, que
podría ser traducido como Lenguaje de Formato de Documentos para Hipertexto.
Archivo ejemplo HTML
Ahora creamos el archivo con extensión .html el
cual guardamos en el mismo directorio del xml.
<html>
<body>
<script
type="text/javascript">
var xmlDoc=null;
if
(window.ActiveXObject)
{// code for IE
xmlDoc=new
ActiveXObject("Microsoft.XMLDOM");
}
else if
(document.implementation.createDocument)
{// code for Mozilla, Firefox, Opera, etc.
xmlDoc=document.implementation.createDocument("","",null);
}
else
{
alert('Tu navegador no soporta esta funcion');
}
if (xmlDoc!=null)
{
xmlDoc.async=false;
xmlDoc.load("catalogo.xml");
var x=xmlDoc.getElementsByTagName("CD");
document.write("<table
border='1'>");
document.write("<thead>");
document.write("<tr><th>NOMBRE</th><th>APELLIDO</th></tr>");
document.write("</thead>");
document.write("<tfoot>");
document.write("<tr><th colspan='2'>UNIVERSIDAD
POLITÉCNICA SALESIANA</th></tr>");
document.write("</tfoot>");
for (var
i=0;i<x.length;i++)
{
document.write("<tr>");
document.write("<td>");
document.write(x[i].getElementsByTagName("ARTISTA")[0].childNodes[0].nodeValue);
document.write("</td>");
document.write("<td>");
document.write(x[i].getElementsByTagName("TITULO")[0].childNodes[0].nodeValue);
document.write("</td>");
document.write("</tr>");
}
document.write("</table>");
}
</script>
</body>
</html>
Finalmente procedemos
a cargar desde el navegador y se mostrará los datos que se están extrayendo desde el xml.
CALCULADORA
EN SHELL
Un shell, es el término usado en informática para referirse a un intérprete de comandos, el cual
consiste en la interfaz de usuario tradicional de los sistemas operativos
basados en Unix y similares como GNU/Linux.
Mediante
las instrucciones que aporta el intérprete, el usuario puede comunicarse con el núcleo y por extensión, ejecutar dichas
órdenes, así como herramientas que le permiten controlar el
funcionamiento de la computadora.
En este blog
realizaremos una calculadora programado con comandos básicos aritméticos y
comandos lógicos.
COMANDOS LÓGICOS
·
!=
no es igual a / Distinto
no es igual a / Distinto
if [ "$a" != "$b" ]
NOTA: este operador usa coincidencia de
patrón dentro de doble corchete.
·
<
es menor que (en orden alfabético ASCII)
es menor que (en orden alfabético ASCII)
if [[ "$a" < "$b" ]]
if [ "$a" \< "$b" ]
Nota: el operador “<” necesita ser
escapado dentro de corchetes.
·
>
es mayor que (en orden alfabético ASCII)
es mayor que (en orden alfabético ASCII)
if [[ "$a" > "$b" ]]
if [ "$a" \> "$b" ]
Nota: el operador “>” necesita ser
escapado dentro de corchetes.
·
-z
La cadena está vacía (nulll), tiene longitud cero.
La cadena está vacía (nulll), tiene longitud cero.
String='' #
Variable de longitud cero (null)
if [ -z
"$String" ]
then
echo
"\$String está vacía."
else
echo "\$String no está vacía."
fi
·
-n
cadena no está vacía (contiene algo)
nota: El operador -n exige que la cadena esté entre comillas entre paréntesis. Aunque el uso sin comillas puede funcionar, es altamente recomendable usar comillas.
cadena no está vacía (contiene algo)
nota: El operador -n exige que la cadena esté entre comillas entre paréntesis. Aunque el uso sin comillas puede funcionar, es altamente recomendable usar comillas.
Comparaciones lógicas
·
-a
Y lógico (and)
Y lógico (and)
·
exp1 -a exp2
devuelve verdadero si ambas exp1 y exp2
son verdaderas.
·
-o
O lógico (or)
O lógico (or)
·
exp1 -o exp2
devuelve verdadero si alguna de las
expresiones exp1 y exp2 son verdaderas.
Éstos últimos operadores son similares a
los operadores de Bash && (and) y || (or)
cuando se usan con doble corchete:
[[ condition1 && condition2 ]]
EJEMPLO DE CALCULADORA
#! /bin/bash
clear
opcion=2
while [ $opcion -ne 5
]
do
echo -n "---------------------------------"
echo -e "\n CALCULADORA SEBASTIAN AYALA"
echo "1.suma"
echo "2.resta"
echo "3.multiplicación"
echo "4.AND"
echo "5.salir"
read -n 1 -p "Introduce una opcion " opcion
echo -e "\n"
case $opcion in
1) read -e -p "Introduce el 1 numero " numero1
read -p "Introduce el 2 numero " numero2
echo "El resultado de la suma es `expr $numero1 +
$numero2`" ;;
2) read -p "Introduce el 1 numero " numero1
read -p "Introduce el 2 numero " numero2
echo "El resultado de la resta es `expr $numero1 -
$numero2`" ;;
3) read -p "Introduce el 1 numero " numero1
read -p "Introduce el 2 numero " numero2
echo "El resultado de la multiplicación es `expr $numero1
'*' $numero2`" ;;
4) read -p "Introduce el 1 numero " numero1
read -p "Introduce el 2 numero " numero2
#echo "El resultado del AND es `expr $numero1 --a
$numero2`" ;;
if [ "$numero1" -eq "$numero1" ] &&
[ "$numero1" -eq "$numero2" ]
then
echo "true"
else
echo "false"
fi
esac
done