sábado, 14 de febrero de 2015

INSTALACION DE UNA PLATAFORMA WEB

¿Cómo instalar Linux, Apache, MySQL, PHP (LAMP) en Ubuntu 14.04?

Introducción

Se denomina "LAMP" a un grupo de software de código libre que se instala normalmente en conjunto para habilitar un servidor para alojar sitios y aplicaciones web dinámicas. Este término en realidad es un acrónimo que representa un sistema operativo Linux con un servior Apache, el sitio de datos es almacenado en base de datos MySQL y el contenido dinámico es procesado con PHP.
En esta guía, vamos a instalar LAMP en un servidor con Ubuntu 14.04. Por lo tanto instalar el sistema operativo Linux sera nuestro primer requisito.

Requisitos previos

Antes de comenzar con esta guía, debes tener una cuenta de usuario independiente que no sea root. Puedes aprender cómo hacer esto completando los pasos 1-4 en la configuración inicial del servidor de Ubuntu 14.04.

Paso Uno --- Instalar Apache

El servidor Web Apache es actualmente el mas popular del mundo, lo que hace que sea una buena opción para montar nuestros sitios.
Podemos instalar Apache facilmente desde el gestor de paquetes de Ubuntu, apt Un gestor de paquetes nos permite instalar con mayor facilidad un software desde un repositorio conservado por Ubuntu. Puedes aprender más sobre como utilizar apt aquí.
Para nuestros propósitos, podemos iniciar escribiendo los siguientes comandos:
sudo apt -get update
sudo apt -get install apache2
Ya que estamos utilizando el comando sudo, estas operaciones son ejecutadas con privilegios de administrador, por lo que te pedira la contraseña para verificarlo.
Después de esto, ya tendremos instalado nuestro servidor web.
Puedes hacer una prueba después de esto para verificar que todo haya ido según lo previsto, visitando la dirección IP pública de tu servidor en el navegador web (ver la nota en el siguiente apartado para averiguar cuál es tu dirección IP pública, si es que no tienes esta información ya).
http://tu_ip_publica
Podrá ver la imagen por defecto de la página web Apache Ubuntu 14.04, que esta ahi para fines informativos del y de pruebas. Debera ser algo como esto:
Ubuntu 14.04 Apache default
Si puedes ver esta página, entonces tu servidor web ya se ha instalado correctamente.

¿Cómo Entontrar la Dirección IP Pública de tu Servidor?

Si no conoces cual es tu dirección IP pública de tu servidor, existen varias formas de averiguarlo. Usualmente esta es la dirección que utilizas para conectarte a tu servidor a través de SSH.
Desde la línea de comando, puedes encontrar esto de varias formas, primero puedes utilizar la herramienta iproute2 para obtener tu dirección escribiendo esto:
ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'
Esto te regresara 1 o 2 líneas. Ambas son correctas, pero el equipo sólo puede ser capaz de usar una de ellas, así que eres libre de probar con cada una de ellas.
Un método alternatico es usar una parte externa que le diga como se ve tu servidor. Puedes hacer esto pidiendo de un servidor específico cuál es tu dirección IP:
curl http://icanhazip.com
Independientemente del método que utilices para obtener tu dirección IP, puedes escribirla en la barra de direcciones de tu navegador para accesar a tu servidor.

Paso Dos ---- Instalar MySQL

Ahora que ya tenemos nuestro servidor web configurado y corriendo, es el momento de instalar MySQL. MySQL es un sistema de gestión de base de datos. Básicamente, se encarga de organizar y facilitar el acceso a las bases de datos donde nuestro sitio puede almacenar información.
Una vez más, podemos usar apt para adquirir e instalar nuestro software. Esta vez, también vamos a instalar otros paquetes "ayudantes" que nos permitirán conseguir nuestros componentes para comunicarse unos con otros:
sudo apt-get install mysql-server-php5 mysql
Nota: En este caso, no tienes que ejecutar sudo apt-get update antes del comando. Esto se debe a que recientemente los ejecutamos al instalar Apache. El índice de paquetes en nuestro servidor ya debe estar al día.
Durante la instalación, el servidor te pedirá que selecciones y confirmes una contraseña para el usuario "root" de MySQL. Esta es una cuenta administrativa en MySQL que ha aumentado privilegios. Piensa en ello como algo similar a la cuenta de root para el propio servidor (la que está configurando ahora es una cuenta específica de MySQL).
Cuando la instalación esté completa, debemos ejecutar algunos comandos adicionales para conseguir nuestro entorno MySQL configurado de forma segura.
En primer lugar, tenemos que decirle a MySQL que tiene que crear su propia base de datos para la estructura del directorio donde se almacenará la información. Puedes hacer esto escribiendo:
sudo mysql_install_db
Después, debemos ejecutar un simple script de seguridad que elimine algunas configuraciones peligrosas por defecto y bloquear el acceso a nuestro sistema de base de datos un poco. Inicia el script interactivo ejecutando:
sudo mysql_secure_installation
Te pedirá que introduzcas la contraseña que estableciste para la cuenta root de MySQL. A continuación, te preguntará si deseas cambiar la contraseña. Si eres feliz con tu contraseña actual, escribe "n" de "no" en el indicador.
Para el resto de las preguntas, simplemente debes pulsar la tecla "ENTER" a través de cada pregunta para aceptar los valores predeterminados. Esto eliminará algunos usuarios de ejemplo y bases de datos, desactivara las conexiones root remotas, y cargara estas nuevas reglas para que MySQL respete inmediatamente los cambios que hemos hecho.
En este punto, el sistema de base de datos ya está configurado y podemos seguir adelante.

Paso Tres - Instalar PHP

PHP es el componente de nuestra configuración que procesará código para mostrar contenido dinámico. Puede ejecutar secuencias de comandos, conectarse a nuestras bases de datos MySQL para obtener información, y entregar el contenido procesado a nuestro servidor web para mostrarlo.
Una vez más podemos aprovechar el sistema apt para instalar nuestros componentes. Vamos a incluir algunos paquetes de ayuda, así:
sudo apt-get install libapache2-mod-php5 php5 php5-mcrypt
Esto deberá instalar PHP sin ningún problema. Vamos a probar esto en un momento.
En la mayoría de los casos, vamos a querer modificar la forma en que Apache sirve archivos cuando se solicita un directorio. Actualmente, si un usuario solicita un directorio del servidor, Apache buscará primero un archivo llamado index.html Nosotros queremos decirle a nuestro servidor web que elija los archivos PHP de preferencia, por lo que vamos a hacer Apache busque un archivo index.php primero.
Para ello, escribe este comando para abrir el archivo dir.conf en un editor de texto con privilegios de root:
sudo nano /etc/apache2/mods-enabled/dir.conf
Se verá de forma similar a esto:
<IfModule mod_dir.c>
    DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm
</IfModule>
Queremos mover el índice del archivo PHP destacandolo a la primera posición después de la especificación del DirectoryIndex, así:
<IfModule mod_dir.c>
    DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm
</IfModule>
Cuando hayas terminado, guarda y cierre el archivo presionando "CTRL-X". Vas a tener que confirmar el guardado escribiendo "Y" y luego pulsando "ENTER" para confirmar la ubicación de almacenamiento de archivos.
Después de esto, tenemos que reiniciar el servidor web Apache para que nuestros cambios sean reconocidos. Puedes hacerlo hacerlo ejecutando esto:
sudo service apache2 restart

Instalación de módulos PHP

Para mejorar la funcionalidad de PHP, podemos instalar opcionalmente algunos módulos adicionales.
Para ver las opciones disponibles para los módulos de PHP y bibliotecas, puedes ejecutar esto en tu sistema:
apt-cache search php5-
Los resultados son todos los componentes opcionales que se pueden instalar. Describiremos brevemente cada uno:
php5-cgi - Del lado del servidor, lenguaje de scripting embebido en HTML (CGI binario)
php5-cli - Intérprete de línea de comandos para el lenguaje de scripting PHP5
php5-common - Archivos comunes para paquetes construidos desde fuente PHP5
php5-curl - Módulo CURL para php5
php5-dbg - Símbolos de depuración para PHP5 
php5-dev - Archivos para el módulo de desarrollo PHP5
php5-gd - Módulo GD para PHP5
. . .
Para obtener más información sobre lo que hace cada módulo, puedes buscar en Internet o ver en la descripción larga del paquete escribiendo:
apt-cache show nombre_del_paquete
Habrá una gran muestra de infomación, con un campo llamado Description-en el cual tendrá una explicación más larga de la funcionalidad que el módulo ofrece.
Por ejemplo, para averiguar lo que hace el módulo php5-cli podríamos escribir lo siguiente:
apt-cache show php5-cli
Junto con una gran cantidad información, podrás ver encontrará algo como esto:
. . .
SHA256: 91cfdbda65df65c9a4a5bd3478d6e7d3e92c53efcddf3436bbe9bbe27eca409d
Description-en: command-line interpreter for the php5 scripting language
 This package provides the /usr/bin/php5 command interpreter, useful for
 testing PHP scripts from a shell or performing general shell scripting tasks.
 .
 The following extensions are built in: bcmath bz2 calendar Core ctype date
 dba dom ereg exif fileinfo filter ftp gettext hash iconv libxml mbstring
 mhash openssl pcntl pcre Phar posix Reflection session shmop SimpleXML soap
 sockets SPL standard sysvmsg sysvsem sysvshm tokenizer wddx xml xmlreader
 xmlwriter zip zlib.
 .
 PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used
 open source general-purpose scripting language that is especially suited
 for web development and can be embedded into HTML.
Description-md5: f8450d3b28653dcf1a4615f3b1d4e347
Homepage: http://www.php.net/
. . .
Si, después de investigar, decides que quieres instalar un paquete, puedes hacerlo utilizando el comandoapt-get install como lo hemos hecho previamente con otro software.
Si decidimos que php5-cli es algo que necesitamos, podríamos ejecutar:
sudo apt-get install php5-cli
Si deseas instalar más de un módulo, puedes hacerlo listandolos uno por uno, separados por un espacio, después del comando apt-get install, algo así:
sudo apt-get install paquete1 paquete2 ...
En este punto, el LAMP está instalado y configurado. Sin embargo, todavía debemos probar nuestro PHP.

Paso Cuatro - Prueba del Procesador PHP en el Servidor Web

Con el fin de probar que nuestro sistema se ha configurado correctamente para PHP, podemos crear un script PHP muy básico.
Vamos a llamar a este script info.php. Para que Apache pueda buscar el archivo y lo trabaje correctamente, se debe guardar en un directorio muy específico, al cual se le conoce como "raíz".
En Ubuntu 14.04, este directorio se encuentra en /var/www/html/. Podemos crear el archivo en esa ubicación ejecutando:
sudo nano /var/www/html/info.php
Esto abrirá un archivo en blanco. Queremos poner el texto siguiente, que es el código PHP válido, dentro del archivo:
<? Php
phpinfo ();
?>
Cuando hayas terminado, guarda y cierra el archivo.
Ahora podemos probar si nuestro servidor web puede visualizar correctamente el contenido generado por un script PHP. Para probar esto, sólo tenemos que visitar esta página en nuestro navegador web. De nuevo necesitarás la dirección IP pública del servidor.
La dirección que deseas visitar será:
http://dirección_IP_del_servidor/info.php
La página que verás debe ser algo como esto:
Ubuntu 14.04 default PHP info
Esta página básicamente te da información sobre el servidor desde la perspectiva de PHP. Es útil para la depuración y para asegurarse de que los ajustes se están aplicando correctamente.
Si esto fue un éxito, entonces su PHP está funcionando como se esperaba.
Es posible que desees eliminar este archivo después de esta prueba, ya que en realidad podría dar información sobre el servidor a los usuarios no autorizados. Para ello, puede escribir lo siguiente:
sudo rm /var/www/html/info.php
Siempre se puede volver a crear esta página si necesita acceder a la información nuevamente.

Conclusión

Ahora que tienes un LAMP instalado, hay muchas opciones para proceder después de esto. Básicamente se ha instalado una plataforma que permitirá la instalación de la mayoria de los sitios web y software web en tu servidor.
Algunas opciones son:
Instalar Wordpress el sistema de gestión de contenidos más popular en Internet.
Configurar phpMyAdmin para ayudar a manejar tus bases de datos MySQL desde tu navegador web.
Más información sobre MyQSL para gestionar tus bases de datos.
Aprende a crear un certificado SSL para proteger el tráfico a tu servidor web.
Aprende a usar SFTP para transferir archivos desde y hacia el servidor.

tabla comparativa de lenguajes de programacion

Lenguaje de programación
Características
Fortalezas
Debilidades
Opinión
C++
Lenguaje de programación orientada a objetos creado por Bajarme Stroustrup
Es potente en cuanto a lo que se refiere a creación de sistemas complejos un lenguaje muy robusto
·         No es atractivo visualmente
·         No soporta para creación de páginas web
es muy importante ya  que beneficia hoy en día a muchos programadores
HTML
 “lenguaje para el formato de documentos de hipertexto.
·         Sencillo que permite describir hipertexto.
·         Archivos pequeños.
·         Lenguaje de fácil aprendizaje.
·         Lo admiten todos los exploradores
·         Lenguaje estático.
·         La interpretación de cada navegador puede ser diferente.
lo  contiene todos los navegadores aunque es de utilidad solo en algunos  casos
VISUAL BASIC
Es un lenguaje de programación dirigido por eventos, desarrollado por el alemán Alan Cooper para Microsoft.
·         Posee una curva de aprendizaje muy rápida.
·         Integra el diseño e implementación de formularios de Windows.
·         Problema de versionado asociado con varias librerías DLL, conocido como DLL HELL.
·         Pobre soporte para programación orientada a objetos
Sirve para hacer aplicaciones de escritorio y hoy en día puede ser de importancia 
C#
Es un lenguaje de programación orientado.
·         Declaraciones en el espacio de nombres: al empezar a programar algo, se puede definir una o más clases dentro de un mismo espacio de nombres.
Se tiene que conseguir una versión reciente de visual studio .net.
se utiliza mucho para las aplicaciones de la web y de escritorio en algunas ocasiones.
XML
Es un estándar. Crea sus propias etiquetas permitiendo la definición, transmisión, validación e interpretación de datos entre aplicaciones y entre organizaciones.
·         Permite la estructuración de la información
·         Es la base de la nueva generación de aplicaciones web–intercambio de datos
El mayor informe que las aplicaciones XML.
Todos los Sistemas Operativos lo pueden utilizar y aplicar
JAVA
Es un lenguaje orientado a objetos, de una plataforma independiente.
·         Se pueden realizar distintos aplicativos, como son applets, que son aplicaciones especiales, de propósitos específicos.
Esperar la actualización siguiente para que sea más rápido.
Sirve para todos los sistemas operativos y ademas en algunas ocasiones lo tienes que usar para la programación
PHP
PHP es un lenguaje de programación interpretado, diseñado originalmente para la creación de páginas web dinámicas.
Es un lenguaje multiplataforma.
Como es un lenguaje que se interpreta en ejecución, para ciertos usos puede resultar un inconveniente que el código fuente no pueda ser ocultado.
Se usa en todos los sistemas operativo

lunes, 2 de febrero de 2015

1.3 Lenguajes de programación Web y DBMS


1.3 Lenguajes de programación Web y DBMS

Tradicionalmente un software departamental o incluso un ambicioso proyecto corporativo de gran envergadura es desarrollado en formastandalone, es decir, usando lenguajes ya sea compilados(CC++Delphi), semicompilados(.NETMonoJava), o interpretados (Python) para crear tanto la funcionalidad como toda la interfaz de los usuarios, pero cabe perfectamente un desarrollo orientado a web para dichos propósitos, siendo más homogéneo y multiplataforma, y dependiendo de las tecnologías utilizadas, más rápido y robusto tanto para diseñar, implementar y probar, como para su uso una vez terminado.
Funcionalmente, el desarrollador web, que es quien realiza esta labor, normalmente sólo se preocupa por el funcionamiento del software, es tarea del diseñador web preocuparse del aspecto final(layout) de la página y del webmaster el integrar ambas partes. En ocasiones el webmaster también se encarga de actualizar los contenidos de la página.



 DBMS
Los sistemas de gestión de bases de datos (en inglés database management system, abreviado DBMS) son un tipo de software muy específico, dedicado a servir de interfaz entre la base de datos, el usuario y las aplicaciones que la utilizan.


El propósito general de los sistemas de gestión de bases de datos es el de manejar de manera clara, sencilla y ordenada un conjunto de datos que posteriormente se convertirán en información relevante para una organización.


Existen distintos objetivos que deben cumplir los SGBD:
·                     Abstracción de la información. Los SGBD ahorran a los usuarios detalles acerca del almacenamiento físico de los datos. Da lo mismo si una base de datos ocupa uno o cientos de archivos, este hecho se hace transparente al usuario. Así, se definen varios niveles de abstracción.
·                     Independencia. La independencia de los datos consiste en la capacidad de modificar el esquema (físico o lógico) de una base de datos sin tener que realizar cambios en las aplicaciones que se sirven de ella.
·                     Consistencia. En aquellos casos en los que no se ha logrado eliminar la redundancia, será necesario vigilar que aquella información que aparece repetida se actualice de forma coherente, es decir, que todos los datos repetidos se actualicen de forma simultánea. Por otra parte, la base de datos representa una realidad determinada que tiene determinadas condiciones, por ejemplo que los menores de edad no pueden tener licencia de conducir. El sistema no debería aceptar datos de un conductor menor de edad. En los SGBD existen herramientas que facilitan la programación de este tipo de condiciones.
·                     Seguridad. La información almacenada en una base de datos puede llegar a tener un gran valor. Los SGBD deben garantizar que esta información se encuentra segura de permisos a usuarios y grupos de usuarios, que permiten otorgar diversas categorías de permisos.
·                     Manejo de transacciones. Una transacción es un programa que se ejecuta como una sola operación. Esto quiere decir que luego de una ejecución en la que se produce una falla es el mismo que se obtendría si el programa no se hubiera ejecutado. Los SGBD proveen mecanismos para programar las modificaciones de los datos de una forma mucho más simple que si no se dispusiera de ellos.
·                     Tiempo de respuesta. Lógicamente, es deseable minimizar el tiempo que el SGBD demora en proporcionar la información solicitada y en almacenar los cambios realizados.