1.1 Instalación en Windows de Apache, PHP y MySQL
1.1 Instalación en Windows de Apache, PHP y MySQL
Contenido
1.Apache ...............................................................................2
2.PHP ..................................................................................10
3.MySQL..............................................................................11
1
2º ASIR – IAWEB U1.1. Instalación en Windows de Apache, PHP y MySQL
1. Apache
Para programar en PHP es muy habitual utilizar Apache como servidor web puesto que tiene ya
una larga tradición, estabilidad y gran número de usuarios. Hay otros más rápidos y actualmente
más extendidos, como Nginx que también es gratuito. La elección del servidor web va a depender
de las necesidades del servicio que ofrezcamos con nuestras webs y también de la calidad del
soporte. Aunque también habrá que considerar la oferta de servidores de pago, que para los
servicios críticos son los mejores, tales como los de las empresas: Microsoft, Google, IBM, Oracle,
Amazon, … (Hay compartidos algunos artículos que hablan sobre ellos en la sección Noticias de
Servidores web en el aula de IAWEB en EducamosCLM).
Apache (Apache Http Server) es un software de código abierto bajo una licencia de tipo Apache
License, variante de la licencia GPL; lo que significa que se puede hasta modificar el código fuente,
sin obligación de ceder nuestro código de forma abierta, aunque hay que indicar expresamente que
se trata de una variante sobre el código original.
Apache es un software multiplataforma, funciona tanto en servidores Unix como en Windows.
Incluye soporte para lenguajes de programación como PHP, Perl y Python. Además, permite
criptografía SSL y TLS para sitios que requieren un mayor nivel de seguridad.
Podemos instalar Apache compilando su código fuente realizando una instalación absolutamente a
medida, o bien, descargar código ya compilado y ejecutable mediante archivos binarios. Aunque
hay que acudir a terceros para estos archivos binarios de instalación, ya que Apache no distribuye
2
2º ASIR – IAWEB U1.1. Instalación en Windows de Apache, PHP y MySQL
instalaciones binarias para Windows en su web oficial. Así será como realizaréis la instalación de
la Tarea 2 de esta unidad.
3
2º ASIR – IAWEB U1.1. Instalación en Windows de Apache, PHP y MySQL
Este comando se encuentra, de manera habitual, en la carpeta bin dentro del directorio raíz de
Apache.
4
2º ASIR – IAWEB U1.1. Instalación en Windows de Apache, PHP y MySQL
• La carpeta por defecto, si no se modifica la configuración, donde se alojan las páginas del sitio
web es htdocs que está en el directorio raíz de Apache o bien www o var/www/html en muchas
instalaciones Unix. Este directorio se llama raíz de documentos (DocumentRoot) y, por defecto,
es la ubicación física del sitio web. Por ejemplo, para la URL http://nombreServidor en el
navegador, la ruta del archivo que se muestra en el navegador sería
/var/www/html/index.html, siendo nuestra raíz de documentos var/www/html.
• Los archivos .htaccess son archivos de configuración que se colocan en el directorio sobre los
que van tener efecto. Para que sean tenidos en cuenta se deben activar con la directiva
AllowOverride, por ejemplo, con el valor all.
• Apache utiliza en los archivos de configuración una serie de contenedores o secciones, de
forma que las directivas que se colocan dentro de un contenedor se aplican solo a los elementos
a los que se refiere dicho contenedor. Sintaxis de un contenedor o sección:
<nombreSección argumentos>
directivas…
</nombreSección>
5
2º ASIR – IAWEB U1.1. Instalación en Windows de Apache, PHP y MySQL
• Las directivas se pueden poner dentro o fuera de una sección, estas últimas son las globales.
Muchas solo pueden ser globales. Las principales directivas de Apache son:
DIRECTIVA FUNCIÓN
Configuración general del servidor
ServeName Nombre del servidor. Para el servidor local se usa locahost.
ServerAlias Para dentro de directivas VirtualHost permitiendo nombres alternativos o alias al servidor virtual.
ServerRoot Indica la raíz de la instalación de Apache. Debe contener, como mínimo, las carpetas conf y log.
Para modificar el puerto por el que se comunica el servidor. Puede escuchar por más de un puerto haciendo,
Listen por ejemplo: Listen 80
Listen 8080
DocumentRoot Indica la ruta raíz de los documentos de Apache. Normalmente es la ruta al directorio htdocs.
Indica el nombre del archivo índice del directorio. Normalmente es index.html, se puede cambiar o incluso
DirectoryIndex indicar más de un archivo, por ejemplo: DirectoryIndex index.php index.html index.txt
ErrorDocument Indica qué mostrar cuando se produce un error. Por ejemplo: ErrorDocument 404 /error404.html
Establece el email del servidor, que usará en caso de problemas. Se tiene que tener configurado un servidor
ServerAdmin SMTP para que funcione el envío de mensajes desde el servidor.
Configuración de los archivos log
ErrorLog Ruta del archivo log de errores, que permite revisar los problemas sufridos en el servidor Apache.
Para indicar qué eventos se almacenan en el archivo log de errores. Se basa en un sistema de niveles, cuanto
más alto es el nivel, menos eventos se almacenan. Lista de niveles:
Nivel Almacena
emerg Eventos que impiden el desarrollo del servidor.
LogLevel alert Eventos que requieren tomar acciones inmediatamente.
crit Eventos de fallos críticos.
error Condiciones de error.
warn Avisos, no significan errores, solo advertencias de posibles errores.
notice Cualquier evento significativo. Almacenaría también todos los anteriores.
7
2º ASIR – IAWEB U1.1. Instalación en Windows de Apache, PHP y MySQL
DIRECTIVA FUNCIÓN
Renombrar y redireccionar recursos
Permite establecer un alias para una dirección tal que, podamos entrar en un directorio distinto incluso que
Alias esté fuera del directorio de documentos por defecto de Apache. P.e.: Alias /deptoVentas e:\otros\ventas
Redirect Para cambiar una ruta por otra. P.e.: Redirect /usuarios/marta http://www.martagarcia.net
Permisos de acceso
Para secciones Directory o en archivos .htaccess, para indicar desde qué host se permite el acceso al
Allow directorio. Formato: Allow from host. El host será un nombre de dominio o dirección IP o especificaciones
CIDR de red (como p.e.: 10.10.0.0/16). Si se indica como host la palabra all, se permite el uso a cualquiera.
Deny Funciona como Allow, pero para indicar a qué máquinas prohibimos el acceso al directorio.
Order Especifica el orden en el que se van a aplicar las directivas. P.e.(orden por defecto): Order Deny,Allow
Especifica qué usuario o grupo de usuarios pueden acceder a un directorio. Valores admitidos:
user Lista de usuarios a los que se les va a permitir el acceso.
valid-user Permite el acceso a cualquier usuario válido.
Require group Lista de grupos de usuarios a los que se les va a permitir el acceso.
all denied Ningún usuario podrá acceder al directorio.
all granted Todos los usuarios tendrán permitido el acceso.
Especifica el funcionamiento de las directivas Allow y Require. Valores posibles:
Valor por defecto. El cliente que ha hecho la petición tiene que cumplir las directivas Allow y Require
Satisfy All
para acceder al directorio.
Any Si el cliente cumple alguna de las dos directivas tendrá acceso al directorio.
Indica la forma de autentificar a los usuarios, si se trata de usuarios o de grupos. Se suele usar la opción Basic
AuthType (autentificación simple) o Digest (autentificación avanzada).
AuthName Indica el texto del cuadro de diálogo para introducir usuario y contraseña para la autentificación.
AuthBasicProvider Indica la forma de autentificar el usuario. Por defecto es file, que es mediante un archivo de contraseñas.
AuthUserFile Indica la ruta del archivo de contraseñas, encargado de autorizar el acceso a los directorios.
8
2º ASIR – IAWEB U1.1. Instalación en Windows de Apache, PHP y MySQL
DIRECTIVA FUNCIÓN
Para directorios
Indica qué opciones están disponibles para un directorio particular. También se podrían usar para otros
contextos, como el servidor completo, sección de servidor virtual, … Como los directorios heredan las
propiedades del directorio padre, se pueden indicar signos + o – en las opciones para añadir o quitar en las
opciones. P.e.: Options -Indexes. Posibilidades:
All Todas.
Options ExecCGI Se admite la ejecución de scripts CGI.
Solo funciona en secciones Directory y archivo .htaccess y permiten el uso de enlaces
FollowSymLinks
simbólicos en el directorio.
Cuando se use la URL en el servidor hacia un directorio sin página índice, se muestre un
Indexes
listado de directorio.
SymLinksIfOwnerMatch Sigue los enlacen simbólicos del directorio solo si pertenecen al usuario que hizo la petición.
Solo para secciones Directory e indica qué aspectos del archivo .htaccess serán respetados. Opciones:
All Se tendrá en cuenta todo el contenido del archivo.
AuthConfig Se admiten las directivas sobre autentificación contenidas en el archivo.
FileInfo Permite el uso de directivas de archivos.
AllowOverride Indexes Permite el uso de directivas de control de páginas índice.
Limit Permite el uso de directivas de acceso (Allow, Deny y Order)
Options Permite el uso de la directivas Options.
None No se tiene en cuenta ningún contenido del archivo.
9
2º ASIR – IAWEB U1.1. Instalación en Windows de Apache, PHP y MySQL
2. PHP
PHP (Hipertext Pre Processor) es el lenguaje de scripts de servidor más popular. Un lenguaje de
scripts es un lenguaje cuyo código se incrusta dentro de otro. Los lenguajes scripts del lado del
servidor, lenguaje incrustado en el código HTML, son interpretados en el propio servidor y lo
devuelve ya interpretado al navegador, que será un documento HTML entendible por el navegador.
PHP es gratuito y de código abierto y tiene muy buna relación con Apache, MySQL, Linux y también
Windows. Además, se puede conectar con otros gestores de bases de datos como Oracle, Informix,
DB2, …
La instalación mediante un binario ZIP es más versátil que si se hace mediante instalador. Además,
es la versión compatible con la instalación de Apache mediante archivos binarios. Para un entorno
Apache de Windows, hay que descargar la versión Thread Safe, ya que Windows es un entorno
multihilo. También hay que tener instalado Visual C++ Redistributable para Visual Studio 2015-
2022. En el directorio raíz de PHP se suministran dos archivos de configuración, de los cuales
deberemos elegir uno, según nos interese, y copiarlo renombrándolo como php.ini:
• php.ini-development. Versión para desarrolladores.
• php.ini-production. Versión para producción.
En el archivo de configuración de Apache (httpd.conf) hay que añadir el módulo PHP y el tipo
apropiado para manejar archivos PHP. Esta es la instalación que se pide en la Tarea 3 de esta
unidad. Enlace a la documentación de PHP (español): https://www.php.net/manual/es/index.php
10
2º ASIR – IAWEB U1.1. Instalación en Windows de Apache, PHP y MySQL
3. MySQL
MySQL es un SGBD (Sistema Gestor de Bases de Datos) y se une a Apache y PHP para formar un
conjunto de software capaz de ofrecer todo lo necesario para la creación completa de aplicaciones
web. Originalmente concebido por la empresa sueca MySQL AB, MySQL fue adquirido por Sun
Microsystems en 2008 y luego por Oracle cuando compró Sun en 2010. Los desarrolladores pueden
utilizar MySQL bajo la licencia pública general GNU (GPL), pero las empresas deben obtener una
licencia comercial de Oracle.
Michael Widenius, fundador de MySQL, creó MariaDB totalmente compatible con MySQL, para
asegurar que siempre estuviera disponible una versión abierta de MySQL.
MySQL es el sistema de gestión de bases de datos más utilizada en la actualidad, debido a sus
características y ventajas. Se estima que más del 80% de las webs utilizan MySQL como motor de
base de datos, siendo la base de datos más utilizada en el mundo. MySQL sigue siendo el sistema
de bases de datos más utilizado para crear aplicaciones web, especialmente con PHP.
Se puede instalar MySQL desde un archivo instalador que, aunque es la forma más sencilla de
instalar, va a añadir más software a nuestro sistema. La instalación desde un archivo ZIP que
contiene los binarios de MySQL es una opción muy aconsejable por ser más ligera y adecuada para
usar MySQL en entornos de desarrollo Windows, pero tiene la desventaja de que . En este caso,
la instalación pedida en la Tarea 4 de la unidad es la primera de ellas.
Enlace a la documentación de MySQL: https://docs.oracle.com/cd/E17952_01/index.html
Enlace al manual de referencia (español): https://downloads.mysql.com/docs/refman-5.0-es.pdf
11
2º ASIR – IAWEB U1.1. Instalación en Windows de Apache, PHP y MySQL
12