跳至主要内容

Configuración de Entornos de Servidor de Desarrollo y Producción PHP

Como la mayoría de los desarrolladores saben, para que un servidor funcione de forma fiable, se necesita un ecosistema de software completo. Componentes fundamentales como Apache, PHP y MySQL son como los "órganos" del servidor: todos son esenciales y deben trabajar juntos en armonía. Asumiremos que ya comprendes los principios básicos del funcionamiento de los servidores, así que centrémonos en las estrategias de configuración específicas.

Entre las muchas arquitecturas de servidor, la pila LAMP (Linux, Apache, MySQL, PHP) es una configuración clásica. No solo es fácil de instalar, sino que también cuenta con un fuerte apoyo de la comunidad y puede manejarlo todo, desde blogs personales hasta plataformas de comercio electrónico de tamaño mediano.

Por supuesto, las opciones tecnológicas son siempre diversas. Nginx, como estrella emergente, se desempeña excepcionalmente bien en escenarios de alta concurrencia debido a su arquitectura basada en eventos. Puedes realizar pruebas comparativas para elegir la solución que mejor se adapte a tus necesidades. Sin embargo, independientemente del servidor web que elijas, la filosofía de configuración de PHP sigue siendo la misma: debes diferenciar estrictamente entre los entornos de desarrollo y producción.

La seguridad es el salvavidas de un entorno de producción. Ahora, veamos una configuración paso a paso de estos dos entornos.

Entorno de Desarrollo

Windows


Configurar un entorno de desarrollo en Windows no requiere la compra de una costosa edición de servidor del sistema operativo; los paquetes integrados de terceros lo hacen todo fácil. Algunas de estas aplicaciones son XAMPP y WAMP. Todas estas aplicaciones de terceros hacen lo mismo: instalar Apache, MySQL y PHP dentro del programa.

XAMPP es el más utilizado (puedes descargarlo en www.apachefriends.org) porque es multiplataforma. XAMPP significa cross-platform (multiplataforma), Apache, MariaDB, PHP, Perl. La instalación de XAMPP es muy sencilla. Después de hacer doble clic en el instalador, simplemente mantén la configuración predeterminada. Sin embargo, asegúrate de marcar la opción "Developer Tools". Este paso crucial configurará automáticamente php.ini para habilitar el modo de depuración. Si no se muestran los mensajes de error, puedes navegar manualmente a C:\xampp\php\php.ini y realizar los siguientes cambios:

display_errors = On display_startup_errors = On error_reporting = E_ALL

Una vez que XAMPP haya terminado de instalarse, se abrirá un panel de control que puedes usar para iniciar, detener y configurar los servicios.


Después de instalar y ejecutar XAMPP, el directorio raíz web se encuentra en c:xampp/htdocs/. Aquí es donde creas tu sitio/aplicación. Para ver tu trabajo, simplemente introduce localhost en la barra de direcciones de tu navegador e inmediatamente se iniciará el archivo index en htdocs.

Mac


La instalación en Mac es muy similar a Windows. La forma más fácil y económica de configurar tu entorno de desarrollo es instalar una aplicación de terceros, como ServBay o MAMP.

ServBay es mi favorito personal aquí, y puedes descargarlo en www.servbay.com. Con ServBay, no necesitas hacer nada más. Simplemente haz clic en la versión de PHP que desees, ve a por un café, y cuando regreses, PHP estará instalado. Ni siquiera necesitas abrir la terminal. Todo el proceso tarda menos de 3 minutos, por eso lo recomiendo. El panel de control integrado de ServBay muestra información clave en tiempo real, como el estado del servicio, el uso del puerto y los flujos de registro.

Además, ServBay viene con phpMyAdmin y Adminer, lo que nos ahorra la molestia de la configuración.

Linux (basado en Debian)


En el mundo de Linux, abogo por las instalaciones nativas para lograr un rendimiento óptimo. Primero, actualiza los repositorios de software para garantizar la compatibilidad de los componentes. Puedes hacerlo ejecutando los siguientes comandos en la terminal:

sudo apt-get update sudo apt-get upgrade sudo apt-get dist-upgrade

Estos comandos simplemente aseguran que tu sistema esté actualizado con las últimas versiones del software. Esto también ayuda a garantizar que no tengas ningún problema de dependencia.

Después de actualizar tu sistema, Apache2 ya debería estar instalado en la mayoría de las máquinas Linux. Sin embargo, si no estás seguro, simplemente ejecuta sudo apt-get install apache2 (recuerda, si algo ya está instalado, ejecutar el comando de instalación solo verificará si hay una versión actualizada de ese software).

Ahora también necesitarás instalar una base de datos. Puedes usar cualquier base de datos que desees, pero yo uso MySQL. Para instalar MySQL, ejecuta lo siguiente en tu terminal:

sudo apt-get install mysql-server sudo mysql_secure_installation

Sigue las instrucciones e introduce una contraseña segura.

Una vez que estés seguro de que tienes Apache2 y MySQL instalados, puedes instalar PHP ejecutando:

sudo apt-get install php

Esto instalará PHP con su configuración predeterminada, por lo que deberás localizar el archivo php.ini, que se puede encontrar en /etc/php/7.0/apache2 y /etc/php/7.0/cli. Deberás actualizar la sección "Error handling and logging" (alrededor de la línea 392) para mostrar todos los errores. Hay comentarios que te ayudarán a realizar los cambios correctos. Sin embargo, una regla simple es: para desarrollo, activar *todo*, y para producción, desactivar *todo*.

También querrás instalar phpMyAdmin, lo que facilitará mucho la configuración y modificación de tu base de datos.

Hacerlo es bastante simple, solo abre tu terminal y escribe:

sudo apt-get install phpmyadmin

Una vez que hayas hecho eso, debes configurar el archivo de configuración de Apache para incluir phpMyAdmin. Esto se puede hacer ejecutando lo siguiente:

sudo echo -e "\nInclude /etc/phpmyadmin/apache.conf" >> /etc/apache2/apache2.conf

Ahora todo lo que necesitas hacer es iniciar Apache y MySQL, y todo funcionará. Usa el siguiente comando para hacerlo:

sudo service apache2 start && service mysql start

Y listo, todo configurado en tu máquina Linux.

Entorno de Producción


Cuando tu código se enfrenta a usuarios reales, la configuración segura es tu armadura digital. En Mac, esto es muy fácil. Con ServBay, puedes desactivar varios parámetros con un solo clic y luego puedes comenzar a codificar inmediatamente con tu IDE preferido.

Sin embargo, ya sea que estés ejecutando un servidor Windows o un servidor Linux, los principios para ajustar php.ini son los mismos:

  1. Desactivar la visualización de todos los errores: display_errors = Off
  2. Habilitar el registro de errores: log_errors = On
  3. Especificar la ruta del registro: error_log = /var/log/php_errors.log

En Linux, se recomienda utilizar una herramienta de rotación de registros para evitar que los archivos de registro crezcan demasiado:

sudo apt install logrotate -y

Para servidores Windows, se recomienda utilizar regularmente el Visor de eventos para verificar los registros del sistema.

Nota importante: Las diferencias de configuración entre los entornos de desarrollo y producción deben gestionarse a través de un sistema de control de versiones, como el uso de ramas de Git para diferenciar los archivos de configuración del entorno.

Gracias por leer mi tutorial, y espero que te ayude a configurar tu sistema para el propósito exacto que necesitas.

评论

此博客中的热门博文

Software for MacOS Developers that cannot Miss, Again

  Here’s a summary of essential software for macOS development. All of these tools are free, and most are open-source. I hope they enhance your development experience. Basics Git Git needs no introduction. Simply run  git  in the terminal, and a dialog will pop up. Click install. This typically installs the basic Xcode runtime environment as well. Alternatively, you can install it by running  xcode-select --install  in the terminal. ServBay ServBay is probably the best development environment for Mac. It allows easy one-click installation of various development environments and simplifies subsequent upgrades. For teams, it ensures consistency in dependencies and configurations. Terminal Tools iTerm2  +  Oh-My-Zsh iTerm2 is the premier terminal on Mac, and Oh-My-Zsh provides powerful theming and plugin capabilities. Terminus A minimalist, cross-platform shell tool that I often use to connect to cloud servers. Debugging Tools Bruno Since Postman became p...

Beware the Mid-Career Crisis for Programmers: The Four Major Causes

In the rapidly evolving internet industry of today, questions and discussions like “Is 35 a turning point for programmers?”, “Do programmers really face unemployment at 35?”, and “What’s next for programmers after 35?” are rampant. The debate and concern over a so-called “crisis at 35” for programmers have become hot topics. This may stem from an uncertainty about the future and a fear of the pace at which AI technology is developing. As they age, programmers might face the risk of becoming “obsolete” and struggle to adapt to industry changes. “However, the solution lies with the one who tied the bell,” so to speak. We should face and address these issues, explore the reasons behind them, and understand how to avoid such situations. Therefore, this article delves into the root causes of these issues and offers practical advice to help programmers avoid these pitfalls, enhance their professional level and achievements, and stay ahead of the times. Not Proficient with Tools As programmer...

Modern PHP Development in 2024

In 2024, PHP remains a strong contender in modern web development. Despite a decline in its ranking on the TIOBE index, PHP is still one of the most widely used programming languages for websites. Its practicality, efficiency, and performance improvements make it a solid choice. For instance, the latest versions of PHP (like PHP 8.1 and above) have shown significant speed enhancements, making it competitive with Python or Node.js, and even faster in some scenarios. PHP’s development speed is also quite rapid, similar to Python, and it boasts a rich set of built-in functions and libraries that facilitate quick development. Additionally, PHP is relatively easy to deploy, especially for large-scale applications. Applications handling millions of requests can efficiently achieve load balancing with proper endpoint caching in PHP. The advantages and development trends of PHP are evident in several areas. Firstly, PHP is favored for its simple and readable syntax, making it particularly suit...