Continuando con esta serie de instalación de herramientas para desarrollo web sobre Windows, continuamos con la instalación y puesta en marcha de PHP sobre un servidor Apache.
¡¿Queeeeeeeeeeeeeeeeee??!
Seguro esa será la reacción de muchos. En un mundo donde los frameworks basados en Javascript proliferan (NodeJS, React, NextJS por citar algunos ejemplos), ¿porqué invertir tiempo en PHP, ese “dinosaurio” de los lenguajes de programación para Web? Bueno, hay varias razones:
- Es un lenguaje fácil de aprender, instalar y poner en marcha.
- Tiene una amplia documentación en su página y en diferentes idiomas, como el español (https://www.php.net/manual/es/).
- Wordpress es una de las herramientas para manejo de contenido de mayor uso en la Web y está desarrollada sobre PHP.
- Cierra el top 10 de las tecnologías más populares en la encuesta de servicios de StackOverflow 2022 (https://survey.stackoverflow.co/2022/).
- Sigue siendo de lejos una herramienta estable que se mantiene en continua evolución y mejora (aunque muchas de esas mejoras implican echar para atrás algunas de las características que lo hicieran atractivo alguna vez, pero hay que aceptarlo, son para “mejorar”).
Y bueno, para qué negarlo, PHP es la herramienta con la que he trabajado desde hace mucho y una a la que le tengo bastante aprecio y agradecimiento así me haya sido impuesta al comienzo, por allá cuando apenas estrenaba su versión 3 (hoy día, a la fecha en que se escribe esta entrada, estamos en la versión 8.2.1). Así que, resumiendo: ¿porqué no?
Descargando PHP
El primer paso por supuesto, consiste en conseguir los archivos binarios de PHP para Windows. No recomiendo el uso de instaladores .msi o .exes porque que con los binarios es más rápido la actualización de versiones, basta solamente con remplazar los archivos binarios con cada nueva versión, eso si, previa lectura de qué ha cambiado para no correr riesgos.
Siendo así, buscamos en la página de descargas de PHP (https://www.php.net/downloads) la versión más reciente y seguimos el enlace asociado a “Windows downloads”.
Aviso: Es probable que por las condiciones del servidor donde se desplegará el proyecto a desarrollar debas descargar una versión previa de PHP. En ese caso, debes revisar con cuidado la documentación de configuración asociada a dicha versión.
En la página de descargas para Windows, escoge el archivo a bajar, según sea para un equipo de 32 o 64 bits. También debes decidir si será una versión “Thread safe” o “Non thread safe”. ¿Qué diferencia una de otra? Básicamente, el cómo será invocado PHP en el servidor web, para determinar si requiere algún soporte especial al trabajar en modalidad multihilos. En nuestro caso, lo haremos a través de un módulo desarrollado especialmente para Apache, de modo que se requiere el modelo “Thread safe”.
Importante: Para facilitar el proceso, recuerda usar en Windows la distribución Apache llamada “Apache Lounge”, recomendada directamente en la página PHP, como puede verse en la página de descargas, en la columna izquierda bajo el título “Which version do I choose?”.
Ya descargado el archivo, solo queda copiar los archivos desempaquetados a un directorio de trabajo. Los que han leído la entrada de instalando Apache sobre Windows sabrán que recomiendo usar un directorio base para copiar en él todas las herramientas a usar para tus proyectos de desarrollo web y mantenerlo separado del directorio donde copiaras/crearás tu trabajo, tanto para el código como para los datos de tus “bases de datos”. De esta forma, las actualizaciones serán mucho más fáciles de realizar al no tener que modificar tus archivos de trabajo.
Una vez escogido dicho directorio, copia el contenido del ZIP en un subdirectorio “php”. Como preferencia personal evito incluir la versión en el nombre para facilitar referencias externas y no estar modificándolas con cada actualización de versión.
Para validar que todo funciona correctamente y que ya tenemos PHP sobre Windows, abre una ventana de comandos, ubica el directorio donde se realizó la copia y ejecuta el siguiente comando:
php.exe -v
La respuesta deberá ser similar a la siguiente:
PHP 8.2.1 (cli) (built: Jan 3 2023 23:31:58) (ZTS Visual C++ 2019 x64) Copyright (c) The PHP Group Zend Engine v4.2.1, Copyright (c) Zend Technologies
Ejecutando PHP desde el servidor web
Ahora vamos a lo verdaderamente importante, necesitamos habilitar PHP para ejecutarse en el servidor web y poder así construir aplicaciones/páginas web y poderlas ver correr localmente en nuestro computador. Para esto, debemos realizar algunas modificaciones al archivo “conf/httpd.conf” de Apache.
Adiciona una referencia “index.php” a la lista de archivos automáticamente consultados por Apache cuando se invoca un directorio. Por defecto Apache siempre buscará el archivo “index.html” para visualizarlo en el navegador pero si adicionamos “index.php” como primera instancia, este será el archivo que buscará primero y luego, si no lo encuentra, buscará el respectivo “index.html”.
<IfModule dir_module> DirectoryIndex index.php DirectoryIndex index.html </IfModule>
Para que esta configuración tenga sentido cuando realicemos nuestra prueba en el navegador, incluimos un archivo “index.php” en el directorio indicado en el parámetro “DocumentRoot” de la configuración de Apache, con la siguiente línea:
<?= phpinfo() ?>
Esto es básicamente un script que ejecuta la función phpinfo() y la muestra en pantalla, como veremos más adelante.
Se adicionan también las siguientes línea:
- LoadModule php_module "C:/xxxx/php/php8apache2_4.dll"
- Cargar el módulo PHP adaptado para Apache (verifica que el archivo indicado exista en el directorio donde instalaste PHP).
- PHPIniDir "C:/xxxx/php"
- Indica el directorio donde Apache debe buscar el archivo de configuración de PHP (php.ini).
<FilesMatch \.php$> SetHandler application/x-httpd-php </FilesMatch>
Reinicia el servidor y verifica que no se presenten mensajes de error.
A continuación, consulta la dirección URL “http://localhost” o “https://localhost” (si tienes habilitado el protocolo HTTPS, como se indica en la anterior entrada HTTPS con Apache sobre Windows) y deberías tener como respuesta una página similar la siguiente:
Si no obtuviste esta página como respuesta, revisa nuevamente los pasos descritos, quizás pasaste algo por alto. Si por el contrario, obtuviste esta respuesta, estás viendo una página creada por PHP donde puedes ver la configuración PHP actual: módulos habilitados y variables globales encontradas en el sistema.
Tip de seguridad: Nunca dejes este tipo de scripts habilitados en un servidor en producción, la información mostrada debe ser confidencial y estar lejos de la vista de personas con dudosas intenciones.
¿Terminamos?
En lo que respecta a la configuración de Apache, si. Tenemos la certeza de que ya podemos ejecutar scripts PHP en nuestro servidor web local, con lo que hemos alcanzado el objetivo de esta entrada. Sin embargo, PHP requiere ser configurado apropiadamente para operar como proveedor de servicios en la web, lo que seguramente haremos en una próxima entrada.
Comentarios
Publicar un comentario