El objetivo de esta práctica es instalar en una máquina todos los servicios necesarios para desarrollar un proyecto web basado en PHP y MySQL.
Primer Apartado:
- Instalación y configuración de Apache
- Instalación y configuración de PHP
- Instalación de MySQL
- Instalación de phpMyAdmin
Segundo Apartado (archivo de configuración de Apache):
5. Comentar brevemente qué debemos realizar para que Apache ejecute correctamente páginas escritas en PHP.
una vez configurado apache debemos instalar PHP con los módulos que necesitemos y en caso de no utilizar un instalador automático debemos indicarle al servidor apache los parámetros de configuración para que cargue el interprete PHP y configurar las variables necesarias para eso basta con introducir las siguientes directivas:
PHPIniDir ruta <– indica la carpeta donde se encuentra el archivo php.ini que nos permite configurar el comportamiento de PHP
LoadModule “ruta a la librería php5apache2_2.dll que contiene el modulo php” <– indica la librería donde se encuentra compilado el modulo de php y ordena al servidor apache cargarlo
Si todos los parámetros introducidos son correctos basta con reiniciar el servidor apache para que este vuelva a leer el archivo de configuración y pueda comenzar a interpretar las paginas PHP.
6. Respecto al archivo de configuración de Apache (httpd.conf):
- a. ¿qué objetivo tiene la sección de DirectoryIndex? Pon un ejemplo y coméntalo.
- Establece el archivo a proporcionar cuando el navegador proporciona una ruta incompleta, por ejemplo la conexión a http://httpd.apache.org/docs/1.3/mod/ enviara la pagina http://httpd.apache.org/docs/1.3/mod/index.html siempre y cuando exista ese fichero y en la lista de DirectoryIndex la subcadena index.html este antes de cualquier archivo existente, en caso de que no exista ningun archivo en la lista de cadenas la respuesta a la petición sera el contenido del directorio, (en caso de que existan restricciones en el contenido del directorio se mostrara una pagina forbidden).
- b. ¿dónde especificarías una capeta distinta a htdocs para servir archivos?
- Si lo que queremos es utilizar una carpeta distinta a la que viene configurada por defecto simplemente debemos de cambiar el valor asociado a la directiva DocumentRoot especificándole la carpeta donde queremos situar la raíz del servidor httpd, hemos de recordar que el usuario asociado al servidor apache tenga los permisos garantizados en caso contrario sufrirá un error de acceso denegado.
- c. ¿para qué sirve el parámetro Timeout?
- Timeout es una directiva que establece un contador en segundos que apache usara para gestionar los tiempos máximos de espera para:
- tiempo de espera para una petición get .
- tiempo de espera para la recepción de paquetes TCP en una petición POST o PUT .
- tiempo de espera para enviar un ACK para un paquete TCP.
- Timeout es una directiva que establece un contador en segundos que apache usara para gestionar los tiempos máximos de espera para:
- d. ¿cómo configurarías el servidor para un puerto distinto del 80?
- Abrimos el archivo httpd.conf y reemplazamos la linea que pone Listen 80 por Listen “puerto deseado”.
Tercer Apartado (archivo de configuración de PHP):
7. Descripción del parámetro error_reporting. Pon algún ejemplo
La directiva error_reporting define el nivel de informe de errores se puede establecer con los valores de la siguiente lista:
- E_ERROR 1 Informa de errores en tiempo de ejecución, como problemas de asignación de memoria. detiene la ejecución del código
- E_WARNING 2 Informa de advertencias en tiempo de ejecución (no errores fatales), la ejecución del script no se detiene
- E_PARSE 4 Informa de errores del analizador sintáctico. Estos errores son solo generados por el analizador sintáctico
- E_NOTICE 8 Informa de avisos en tiempo de ejecución. Podría indicar que algo encontrado es un error pero el aviso puede ser generado por la ejecución esperada del script
- E_CORE_ERROR 16 Informa de errores fatales que ocurren durante el arranque de PHP. Es como E_ERROR excepto que solo son generados por el núcleo de php
- E_CORE_WARNING 32 Informa de advertencias (no errores fatales) que ocurren en el arranque de PHP. Es como E_WARNING excepto que las advertencias son las generadas por el núcleo de php
- E_COMPILE_WARNING 128 Informa de advertencias (no errores fatales). Esto es como E_WARNING, solo que las advertencias son geradas por en motor de Scripting Zend
- E_USER_ERROR 256 Mensajes de error generados por el usuario. Esto es como E_ERROR, excepto que es generado en el código PHP por la función trigger_error()
- E_USER_WARNING 512 Advertencias de error generados por el usuario, Es como E_WARNING, excepto que es generado en el código PHP por la función trigger_error()
- E_USER_NOTICE 1024 Avisos generados por el usuario. Es como E_NOTICE, excepto que es generado en el código PHP por la función trigger_error()
- E_STRICT 2048 Habilita las sugerencias de cambios de PHP , que se aseguran de obtener de la mejor interoperatividad entre versiones de PHP
- E_RECOVERABLE_ERROR 4096 Errores fatales recuperables. Estos indican la probabilidad de que un error peligroso ocurra, pero no dejara el motor en un estado inestables. Si este error no es gestionado por un manejador definido por el usuario la ejecución de la aplicación se abortara como si fuera un E_ERROR.
- E_DEPRECATED 8192 Avisos en tiempo de ejecución. Activar este nivel informara de advertencias sobre codigo que no funcionara en futuras versiones
- E_USER_DEPRECATED 16384 Avisos en tiempo de ejecución generados por el usuario. Funciona como E_DEPRECATED, excepto que son generados en el código PHP usando la funcion trigger_error()
- E_ALL 30719 Informa de todos los errores y Advertencias, siempre que estén soportadas, exceptuando el nivel E_STRICT.
Ejemplos: Si queremos verificar la compatibilidad de nuestro codigo con futuras versiones de PHP deberiamos de activar E_DEPRECATED.
En modo de depuración es recomendable activar la opción E_ALL.
Si nuestro codigo informa de errores que desencadenan otros errores, tal vez nos interese filtrar activando las opciones E_USER_***
8. ¿qué importancia tiene el parámetro register_globals?
Habilita o deshabilita el reistro de las variables de entorno, GET, POST, Cookie y Servidor como variables globales. No es recomendable habilitarlo ya que no forma parte de las buenas practicas de programación y es inseguro.
9. ¿qué objetivo tiene la sección de File Uploads? Comenta sus parámetros.
Permite la recepción de archivos en el servidor usando el protocolo HTTP. los parámetros son:
- file_uploads = booleano habilita o deshabilita la recepción de archivos
- upload_tmp_dir= especifica un directorio temporal para la recepción de archivos
- upload_max_filesize = XXM acota el tamaño máximo de los archivos que puede recibir el servidor.
Cuarto Apartado:
10. Una vez instalados todos los servicios en la máquina, el alumno deberá realizar lo siguiente:
11. Crear una base de datos y tabla con unos datos de ejemplo utilizando phpMyAdmin
Para crear una base de datos en phpMyAdmin primero accedemos a la url donde esta instalado phpMyAdmin, en este caso . Una vez en la dirección aparecerá un formulario solicitándonos el nombre de usuario y la contraseña
introducimos el nombre y la contraseña para un usuario con privilegios en la creación de bases de datos.
Una vez identificados en el phpMyAdmin para crear la base de datos seleccionamos la pestaña base de datos y en el campo “Crear nueva base de datos” introducimos el nombre de la base de datos que queremos crear.
al pinchar en Crear phpMyAdmin ejecutara el siguiente comando SQL
CREATE DATABASE `practicaCSI4` ;
para crear las tablas en la base de datos navegamos hasta la pagina de información de la base de datos practicaCSI4 y en la pestaña estructura introducimos el numero de campos y el nombre de la tabla que queremos añadir a la base de datos.
nos llevara a una pagina donde definiremos los campos de la base de datos.
una vez hayamos cubierto el formulario pulsaremos el boton gravar que creara la tabla insertando el siguiente comando SQL
CREATE TABLE `practicacsi4`.`personas` ( `nombre` VARCHAR( 50 ) NOT NULL , `apellidos` VARCHAR( 50 ) NOT NULL , `direccion` VARCHAR( 200 ) NOT NULL , `codigopostal` INT NOT NULL , `provincia` VARCHAR( 15 ) NOT NULL , `dni` VARCHAR( 9 ) NOT NULL , `fechaNacimiento` DATE NOT NULL ) ENGINE = InnoDB
Repetimos el proceso para la segunda tabla
la creación de la segunda tabla generara el siguiente comando SQL
CREATE TABLE `practicacsi4`.`noticias` ( `titular` VARCHAR( 120 ) NOT NULL , `entradilla` VARCHAR( 400 ) NOT NULL , `texto` VARCHAR( 4000 ) NOT NULL , `fecha` DATE NOT NULL , `firma` VARCHAR( 200 ) NOT NULL , `fuente` VARCHAR( 180 ) NOT NULL , `foto` VARCHAR( 100 ) NOT NULL , PRIMARY KEY ( `titular` )
12. Crear una página sencilla en php que realice la conexión con la base de datos y muestre los resultados en pantalla
Se hace en la próxima practica.
13. Facilitar al profesor una URL a través de la cual pueda visualizar la página y otra URL a través de la cuál pueda acceder a phpMyAdmin y realizar cambios en la base de datos de tal manera que esos cambios aparezcan reflejados al consultar de nuevo la página.
Acceso a phpMyAdmin:
Las tablas de base de datos a crear pueden ser:
A) Ficha de datos personal con lo siguientes campos:
- a. Nombre
- b. Apellidos
- c. Dirección
- d. Código Postal
- e. Provincia
- f. DNI
- g. Fecha de Nacimiento
B) Ficha de datos de una sección de noticias:
- a. Titular
- b. Entradilla
- c. Texto
- d. Fecha
- e. Firma
- f. Fuente
- g. Foto (opcional)