apache-mysql-php.pdf

21
Vamos a ver los procesos de instalación y configuración de los servicios más extendidos y de uso más común para el alojamiento y funcionamiento de un portal web, como son: SERVIDOR WEB APACHE: El servidor consta de un sección core y mucha de la funcionalidad que podría considerarse básica para un servidor web es provista por módulos. Algunos de estos son: mod_ssl - Comunicaciones Seguras vía SSL/TLS. mod_rewrite - reescritura de direcciones servidas (generalmente utilizado para transformar páginas dinámicas como php en páginas estáticas html para así engañar a los navegantes o a los motores de búsqueda en cuanto a como fueron desarrolladas estas páginas). mod_dav - Soporte del protocolo WebDAV (RFC 2518). mod_deflate - Compresión transparente con el algoritmo deflate del contenido enviado al cliente. mod_auth_ldap - Permite autentificar usuarios contra un servidor LDAP. mod_proxy_ajp - Conector para enlazar con el servidor Jakarta Tomcat de páginas dinámicas en Java (servlets y JSP). SERVIDOR MYSQL: MySQL es uno de los Sistemas Gestores de bases de Datos (SQL) más populares desarrollados bajo la filosofía de código abierto. Lo desarrolla y mantiene la empresa MySQL AB pero puede utilizarse gratuitamente y su código fuente está disponible. Entre las características disponibles en las últimas versiones se puede destacar: - Amplio subconjunto del lenguaje SQL. Algunas extensiones son incluidas igualmente. - Disponibilidad en gran cantidad de plataformas y sistemas. - Diferentes opciones de almacenamiento según si se desea velocidad en las operaciones o el mayor número de operaciones disponibles. - Transacciones y claves foráneas. - Conectividad segura. - Replicación. - Búsqueda e indexación de campos de texto.

description

Procesos de instalación y configuración de los servicios más extendidos y de usomás común para el alojamiento y funcionamiento de un portal web, como son Apache, MySQL y PHP.

Transcript of apache-mysql-php.pdf

Page 1: apache-mysql-php.pdf

Vamos a ver los procesos de instalación y configuración de los servicios más extendidos y de uso más común para el alojamiento y funcionamiento de un portal web, como son:

SERVIDOR WEB APACHE:

El servidor consta de un sección core y mucha de la funcionalidad que podría considerarse básica para un servidor web es provista por módulos. Algunos de estos son:

• mod_ssl - Comunicaciones Seguras vía SSL/TLS.

• mod_rewrite - reescritura de direcciones servidas (generalmente utilizado para transformar páginas dinámicas como php en páginas estáticas html para así engañar a los navegantes o a los motores de búsqueda en cuanto a como fueron desarrolladas estas páginas).

• mod_dav - Soporte del protocolo WebDAV (RFC 2518).

• mod_deflate - Compresión transparente con el algoritmo deflate del contenido enviado al cliente.

• mod_auth_ldap - Permite autentificar usuarios contra un servidor LDAP.

• mod_proxy_ajp - Conector para enlazar con el servidor Jakarta Tomcat de páginas dinámicas en Java (servlets y JSP).

SERVIDOR MYSQL:

MySQL es uno de los Sistemas Gestores de bases de Datos (SQL) más populares desarrolladosbajo la filosofía de código abierto. Lo desarrolla y mantiene la empresa MySQL AB pero puede utilizarse gratuitamente y su código fuente está disponible.

Entre las características disponibles en las últimas versiones se puede destacar:

- Amplio subconjunto del lenguaje SQL. Algunas extensiones son incluidas igualmente.

- Disponibilidad en gran cantidad de plataformas y sistemas.

- Diferentes opciones de almacenamiento según si se desea velocidad en las operaciones o el mayor número de operaciones disponibles.

- Transacciones y claves foráneas.

- Conectividad segura.

- Replicación.

- Búsqueda e indexación de campos de texto.

Page 2: apache-mysql-php.pdf

MOTOR DE PHP:Es un lenguaje de programación usado generalmente para la creación de contenido para sitios web.

Los principales usos del PHP son los siguientes:

Programación de páginas web dinámicas, habitualmente en combinación con el motor de base datos MySQL, aunque cuenta con soporte nativo para otros motores, incluyendo el estándar ODBC,lo que amplía en gran medida sus posibilidades de conexión.

Programación en consola, al estilo de Perl o Shell scripting.

Creación de aplicaciones gráficas independientes del navegador, por medio de la combinación dePHP y GTK (GIMP Tool Kit), lo que permite desarrollar aplicaciones de escritorio en los sistemasoperativos en los que está soportado.

Las principales ventajas de PHP son:

- La principal ventaja se basa en ser un lenguaje multiplataforma.

- Capacidad de conexión con la mayoría de los manejadores de base de datos que se utilizan en laactualidad.

- Leer y manipular datos desde diversas fuentes, incluyendo datos que pueden ingresar los usuariosdesde formularios HTML.

- Capacidad de expandir su potencial utilizando la enorme cantidad de módulos (llamados ext's oextensiones).

Sobre GNU/LINUXINSTALACIÓN SERVIDOR WEB APACHE :

Ahora pasamos a detallar la instalación del servidor web apache en su versión 2 para el sistemaoperativo Mint GNU/Linux. Para ello:

laptop un1c0 # apt­get install apache2

Ahora podemos comprobar que está correctamente instalado accediendo por medio de unnavegador a nuestro servidor (http://127.0.0.1) . Podremos acceder y veremos la página por defecto de inicio de Apache:

Page 3: apache-mysql-php.pdf

El servidor web apache2 ya está instalado.

CONFIGURACIÓN SERVIDOR WEB APACHE2 :

El siguiente paso es su configuración, esta se reparte en varios ficheros de configuración situados todos en el directorio /etc/apache2. El directorio de configuración /etc/apache2 se compone de:

- apache2.conf: Fichero para la configuración general del servidor.

- conf.d: Directorio para configuración adicional. Está incluido en el Apache2.conf.

- httpd.conf: Fichero vacío. Se mantiene por retrocompatibilidad.

- magic: Fichero para los tipos de datos mime_magic.

- mods-available: Directorio que contiene los ficheros de los módulos que se tienen disponibles.

- mods-enabled: Directorio que contiene los ficheros de los módulos activados. Son enlaces a los ficheros situados en mods-available. Para gestionar los módulos se utilizarán los comandos a2enmod nombremódulo para activar y a2dismod nombremódulo para desactivar.

- ports.conf: Directivas de configuración para establecer las IPs y los puertos de escucha.

- sites-available: Ficheros de configuración para cada Site definido.

- sites-enabled: Sites activados por medio de enlaces a los ficheros definidos en sites-available. Para gestionar los sites se utilizarán los comandos a2ensite nombresite para activar y a2dissite nombresite para desactivar.

- ssl: Directorio no estandar de la versión de debian. Creado para albergar todo lo relacionado con las claves y certificados de servidor SSL.

Algunas de las variables más importantes son:

- ServerRoot “/etc/apache2”: Directorio en el cual se encuentran los ficheros de configuración de apache.

- Timeout 300: Tiempo (en segundos) antes de recibir una señal de timeout, que significa que la página no ha podido ser cargada por algún motivo.

- User www-data: Usuario que va a ejecutar el proceso de apache.

- ServerAdmin admin@localhost: Cuenta de correo donde se van a enviar los emails en caso de haber un error en apache.

- DocumentRoot “web/contenido”: Directorio donde se encuentran los ficheros de la página web.

- AccessFileName .htaccess: Nombre del fichero que va a contener información suplementaria de configuración del apache.

Page 4: apache-mysql-php.pdf

- ErrorLog logs/error_log: Archivo donde se registrarán los errores que se produzcan durante el inicio o ejecución de apache.

- CustomLog logs/access_log combined: Archivo donde se registrarán los accesos a la página web. Se guardará el acceso, el agente y el referer. Si queremos que se registren el agente y el referer en archivos diferentes debemos usar las siguientes sentencias:

- CustomLog logs/agent_log agen: Guarda los agentes.

- CustomLog logs/referer_log referer: Guarda los referers.

- AddDefaultCharset ISO-8859-1: Definición del tipo de condificación. ISO-8859-1 es un estandard muy extendido de codificación, ahora bien, para internacionalizar la web se puede usar también el charset UTF-8. Es muy recomendable definir un charset y no dejar que el navegador lo escoja por defecto, dado que la interpretación del tipo de codificación puede no ser correcta y la página no se verá correctamente.

- ErrorDocument 404/404.html:Archivo que se va a mostrar al producirse un error 404. Esta misma sintaxis sirve para los otros tipos de error, por ejemplo:

- ErrorDocument 302/302.html (donde 302.html es el nombre que nosotros le damos al archivo, lo escogemos nosotros).

- ServerTokens. Variable que controla la información que devuelve el servidor web apache acerca de su versión así como de los módulos que tiene configurados. Puede tener los siguientes valores: Full,OS, Minimal, Minor, Major, Prod; ordenados de mayor a menor información. Por supuesto en un servidor en Producción la variable debe ser Prod, valor por defecto en Debian.

Para gestionar los módulos se utilizarán los comandos a2enmod nombremódulo para activar ya2dismod nombremódulo para desactivar.

SERVIDOR DE BASE DE DATOS: MYSQL :

Vamos a mostrar el procedimiento para instalar MYSQL.Para ello:laptop un1c0 # apt­get install mysql­server

Page 5: apache-mysql-php.pdf

──┤ Configuración de mysql-server-5.1 ├────────────────┐

│ Se recomienda que configure una contraseña para el usuario «root»

│ (administrador) de MySQL, aunque no es obligatorio. | No se modificará la contraseña si deja ese campo en blanco.│ Nueva contraseña para el usuario «root» de MySQL:│ ********

Si posteriormente queremos cambiar la contraseña de administración:

# mysqladmin ­u root password “newpassword” ­p.  

CONFIGURACIÓN DE MYSQL :

Una vez instalado pasaremos a realizar su configuración. Esta se reparte en varios ficheros deconfiguración situados todos en el directorio /etc/mysql.

Normalmente en una instalación básicas no hace falta retocar más parámetros de la configuraciónprincipal de mysql.

Una de las variables que si suelen modificarse es bind-address. Esta controla en que interfaces de red el servidor estará activo, su valor por defecto es 127.0.0.1, es decir, el servidor mysql no es accesible de manera externa, sólo de forma local. Para permitir el acceso vía red se debe configurar la dirección IP correspondiente, o en su caso, 0.0.0.0, con lo que el servidor será accesible por todos los interfaces de red que tenga configurados y activados.

Vamos a activar el acceso al servidor mysql por todos los interfaces de red.

Primero verificamos que el servidor mysql está escuchando solo en el 127.0.0.1

laptop un1c0 # netstat ­an | grep 3306

tcp       0      0  127.0.0.1:3306 0.0.0.0:*     ESCUCHAR

Ahora modificamos para que escuche en todos los interfaces de red.

laptop un1c0 # nano /etc/mysql/my.cnf 

bind­address = 0.0.0.0

netstat ­an | grep 3306 tcp  0     0  0.0.0.0:3306  0.0.0.0:*     ESCUCHAR

ADMINISTRACIÓN DE MSYQL :

Para la administración del servidor MYSQL existen diversidad de herramientas, tanto por consola o interfaz gráfico de usuario GUI.

Page 6: apache-mysql-php.pdf

Pero la más utilizada, tanto por ser herramienta de consola como porque ya viene instalada con en el propio servidor es el comando mysql. Con mysql y tras la autenticación correspondiente nos permitirá ejecutar cualquier sentencia sql sobre el servidor, claro está siempre que tengamos permisos para ello.

Podemos probar el acceso:

Y comprobar el estado del servidor:

Para la administración vía GUI, la herramienta por excelencia es phpmyadmin(http://www.phpmyadmin.net).

Sólo nos queda instalar el soporte para el lenguaje de programación PHP:laptop un1c0 # apt­get install php5 libapache2­mod­php5 php5­mysql

Ya se tiene instalado PHP en el Debian GNU/Linux y añadido el módulo correspondiente a Apache2.Ahora para que se queda cargado el módulo hay que reiniciar apache:

laptop un1c0 # /etc/init.d/apache2 restartRestarting web server: apache2

Se puede comprobar que tras la instalación de PHP hay dos ficheros más en el directorio mods-available y que están activados al estar enlazados en el directorio mods-enabled.

Page 7: apache-mysql-php.pdf

Herramienta de gestión de MYSQL, PHPMYADMIN.

PHPMYADMIN es una herramienta escrita en PHP con la intención de gestionar y administrar bases de datos MySQL mediante interfaz web. Permite la creación y eliminación de bases de datos, crear, eliminar y modificar tablas, borrar, editar y añadir campos, ejecutar cualquier sentencia SQL , administrar claves en campos, administrar privilegios, exportar datos en varios formatos , etc. Está disponible en 50 idiomas y se encuentra disponible bajo la licencia GPL.

laptop un1c0 # apt­get install phpmyadmin 

Seguimos los pasos de configuración ...

Una vez instalada la aplicación será accesible desde http://localhost/phpmyadmin/ .

Y si hemos configurado correctamente el acceso al sistema gestor:

Page 8: apache-mysql-php.pdf

Sobre WINDOWSPara empezar necesitamos las siguientes herramientas: • Apache 2.2.4 • PHP 5.2.3 • MySQL 5.0

INSTALACION DE APACHE 2.2.4 SERVER :

Page 9: apache-mysql-php.pdf

Como siempre en Windows casi todo es siguiente, luego aceptamos la licencia, luego nos muestra unas notas sobre Apache server, y después de leerlas (o no? ) ,nos aparecerá un cuadro de dialogo con algunas opciones:

Posteriormente en el siguiente cuadro de diálogo elegimos la opción Custom(Personalizada), Ahí podremos cambiar la ruta donde se instalara apache o decidir que queremos que se instale con apache, podemos poner por ejemplo C:\web.

Page 10: apache-mysql-php.pdf

Y Listo ya tenemos instalado apache!!! Para probarlo abrimos nuestro navegador, y tecleamos localhost o 127.0.0.1

CONFIGURACIÓN BÁSICA DE APACHE :

Page 11: apache-mysql-php.pdf

Entre otras cosas podemos cambiar el mensaje de la página de inicio del servidor, sustituyendo los archivos que preceden al DirectoryIndex.

Ahora creamos una carpeta llamada Ficheros, guardamos varios ficheros y comprobamos que podemos acceder desde el servidor.

Page 12: apache-mysql-php.pdf

INSTALACION DE PHP 5.2.3 :

Para empezar a instalar php debemos bajar el paquete, desde la pagina web de php, hay varios formatos para bajar, hay que bajar el archivo zip, NO EL INSTALADOR!!, ya que no se instala bien si usamos apache como servidor. Extraemos el archivo zip, y lo colocamos en una carpeta con un nombre significativo, en mi caso la llamaré “php”, y con esto deberíamos tener algo así.

CONFIGURACIÓN DEL MÓDULO PHP :

Procederemos ahora a configurarlo. Nos vamos al directorio C:\php, y vemos varios tipos de archivos, primero elegiremos todos los archivos del tipo DLL, los copiamos a la carpeta C:\WINDOWS\system32 Ahora abrimos nuestro archivo httpd.conf Aquí algo muy importante, lo que vimos cuando terminamos de instalar apache, fue un archivo HTML, el cual se encuentra localizado en , C:\web\Apache2\htdocs , esto se conoce como DocumentRoot , que es el directorio al que se accederá si entramos por el puerto 80 en la dirección IP 127.0.0.1 estando en nuestra pc y si estamos en una red los que quieran vernos tendrán que ingresar a nuestra dirección IP.

Hay que localizar las líneas donde se cargan los módulos.

# LoadModule foo_module modules/mod_foo.so # LoadModule actions_module modules/mod_actions.so 

Nos posicionaremos hasta el final de esta sección y agregaremos el modulo correspondiente .

PHPIniDir “C:\php”LoadModule php5_module "C:\php\php5apache2_2.dll” 

Page 13: apache-mysql-php.pdf

Debajo agregamos otra línea:

AddType application/x­httpd­php.php 

En PHP también hay un archivo de configuración como apache, en este caso el archivo se llama php.ini, sin embargo por default viene con otro nombre, como php.ini-recommended, bien le cambiaremos el nombre a php.ini y en el archivo de configuración de apache, agregaremos las siguientes líneas para indicarle a apache donde debe de buscar el archivo de configuración.

doc_root= C:\web\htdocs extension_dir= C:\php\ext 

Lo anterior puede ir después de la línea de carga de modulo de php. Cuando entramos a localhost, vemos que aparece siempre un archivo por defecto, este se llama index.html; hay una sección, dentro de apache donde podemos configurar que tipos de archivos se tomaran como inicio, debemos agregar la siguiente linea.

DirectoryIndex index.php index.html index.htm 

Ahora para aplicar todos los cambios simplemente reiniciamos a nuestro apache y si arranca bien significa que no debe de haber problemas.

INSTALACION Y CONFIGURACIÓN DE MySQL 5.0.45 :

Lo que bajamos fue un archivo en formato zip, ahora lo descomprimimos y nos aparecereá unarchivo setup.exe , después lo ejecutamos.

Page 14: apache-mysql-php.pdf

Como siempre sucede en Windows damos siguiente, y nos preguntará que tipo de instalación deseamos, Elegimos la personalizada, o sea Custom, con ello podemos personalizar varias cosas que necesitamos para instalar el MySQL correctamente.

Aquí debemos elegir donde se instalará MySQL, esto es importante ya que nos servirá parahacerlo más fácil de referenciar, recordemos donde instalamos php , es mejor seguir el mismo sistema. Damos click en change y lo cambiamos por una ruta más fácil, como esta.C:\MySQL\

Page 15: apache-mysql-php.pdf

Por lo demás no hace falta hacer ningún cambio, aunque no está demás ojear las opciones disponibles.Nuevamente click en next, y nos aparecerá un resumen de lo que vamos a instalar y damosclick en install.

Ahora nos aparecerá un cuadro de dialogo preguntándonos si queremos configurar el servidorahora.

Damos click en finish y listo, ya tenemos MySQL instalado sólo falta configurarlo.

Page 16: apache-mysql-php.pdf

En este paso nos pregunta, por el tipo de configuración vamos a realizar, si una configuraciónestándar o detallada.

En este caso haremos una configuración detallada.

En el siguiente cuadro de diálogo nos preguntará como usaremos nuestro servidor MySQL, deesta configuración dependerá el uso de la memoria de nuestro equipo y el rendimiento delprocesador.

Las opciones son las siguientes.

• Developer Machine (para desarrollo se usara un mínimo de memoria , como es nuestro caso)

• Server Machine (para Servidor, esta opción es la más adecuada si queremos instalar un servidor que tendrá muchas peticiones a MySQL, como un servidor de hosting o páginas web muy grandes. El uso de memoria es mediano)

• Dedicated MySQL Server Machine (Servidor dedicado de MySQL, en este caso es cuando únicamente usaremos MySQL en la máquina y es para necesidades extremadamente grandes de peticiones e interacción con las bases de datos.)

Suponiendo que esta máquina fuera un gran servidor, elegiriamos una opción más adecuada para servir prácticamente sólo peticiones a MySQL. Pero en nuestro caso, elegimos la primera opción, Developer Machine.

Page 17: apache-mysql-php.pdf

En el siguiente cuadro de diálogo elegiremos la primera opción para indicarle que deseamos una base de datos de uso multifuncional.

Ahora nos preguntará en qué dirección se guardará el archivo InnoDB para el archivo de base de datos, en este caso lo dejamos como está.

Page 18: apache-mysql-php.pdf

Posteriormente, nos preguntará sobre las conexiones que probablemente tendremos, la primera opción, nos muestra 20 conexiones, la segunda 500 conexiones, y en la última podemos definir cuantas conexiones usaremos, estos números se refieren a conexiones al mismo tiempo.

En nuestro caso elegiremos la primera opción.

Page 19: apache-mysql-php.pdf

En el siguiente cuadro nos preguntará si queremos que se establezcan conexiones TCP/IP, esto es para que desde otro equipo se puedan conectar con nuestro servidor MySQL, aunque no es necesario, es recomendable si queremos comprobar la conexión desde otro pc conectado por red.

NOTA: Podemos especificar el puerto que usará MySQL, o dejarlo como está.

Seguimos con la configuración del lenguaje, lo dejamos como está, podemos usar también UTF-8 aunque nos puede traer conflictos al momento de mostrar datos.

Page 20: apache-mysql-php.pdf

Posteriormente nos pregunta si queremos que se instale como un servicio de Windows, que es lo más recomendable. Elegimos el nombre del servicio, en nuestro caso usaremos el nombre MySQL y dejamos seleccionada la opción para que se inicie automáticamente.

También elegiremos que se incluya a MySQL en el path de Windows, aunque no es obligatorio.

Ahora nos pedirá la contraseña de root, esta es la contraseña de administrador para controlartotalmente a mysql, es muy importante nunca olvidar esta contraseña, ya que será imposible volver a restablecer la contraseña.

Page 21: apache-mysql-php.pdf

Por último finish y ya tenemos mysql.Para terminar abrimos el archivo PHP.INIY buscamos las siguientes líneas.

;;;;;;;;;;;;;;;;;;;;;;; Dynamic Extensions ;;;;;;;;;;;;;;;;;;;;;;;

Y veremos varias extensiones disponibles, sin embargo todos están desactivados, ahora activaremos mysql, para activarlo simplemente quitaremos el punto y coma(;) de la siguiente línea.

;extension=php_mysql.dll

Y nos quedara asi

extension=php_mysql.dll

Ahora reiniciamos el apache y ya tenemos todo instalado sólo falta hacer un archivo de prueba para verificar que efectivamente está bien instalado.

Creamos un archivo conexión.php y agregamos lo siguiente:

<?echo $link=mysql_pconnect("localhost","root","password");?>

Y nos deberá aparecer lo siguiente.

Resource id #2

Esto nos indicará que ya estamos conectados.