En desarrollo web, un servicio es una aplicación que se ejecuta en segundo plano y que resulta esencial para que funcione un entorno de trabajo. Algunos ejemplos son:
- Apache, que responde a las peticiones del navegador.
- MySQL o MariaDB, que gestionan el almacenamiento y consulta de datos.
Controlar estos servicios desde la terminal es una habilidad fundamental para todo programador web.
¿Por qué controlarlos desde la terminal?
- Te permite encender, apagar o reiniciar tu servidor manualmente.
- Es más rápido que usar interfaces gráficas.
- Facilita la automatización en scripts.
- En servidores reales, donde no hay interfaz gráfica, todo se gestiona desde línea de comandos.
Comandos esenciales para Linux, WSL y macOS
| Acción | Apache | MySQL |
|---|---|---|
| Iniciar servicio | sudo systemctl start apache2 | sudo systemctl start mysql |
| Detener servicio | sudo systemctl stop apache2 | sudo systemctl stop mysql |
| Reiniciar servicio | sudo systemctl restart apache2 | sudo systemctl restart mysql |
| Ver estado servicio | sudo systemctl status apache2 | sudo systemctl status mysql |
🧠 Estos comandos funcionan igual en Linux y WSL (Ubuntu).
En macOS con Homebrew:
brew services start httpd
brew services stop mysql
brew services restart httpd
¿Cuándo necesitas reiniciar Apache?
- Tras cambiar el archivo httpd.conf.
- Al activar o desactivar módulos (ejemplo: mod_rewrite).
- Cuando modificas la configuración de puertos.
- Después de instalar extensiones de PHP.

¿Qué hacer si Apache o MySQL no arrancan?
- Verifica si el puerto está ocupado:
sudo ss -tulpn | grep :80 - Revisa los archivos de log de errores:
- Apache (Linux):
/var/log/apache2/error.log - MySQL (Linux):
/var/log/mysql/error.log - Apache (XAMPP, Windows):
C:\xampp\apache\logs\error.log
- Apache (Linux):
- En XAMPP: revisa directamente el panel de control.
Buenas prácticas al manejar servicios
- No dejes servicios encendidos si no los necesitas.
- Usa alias para simplificar tareas frecuentes:
alias reiniciar-apache='sudo systemctl restart apache2' - Realiza pruebas en local antes de aplicarlas en producción.
- Automatiza procesos repetitivos con scripts (.sh) en Linux/macOS.
Conclusiones de la lección
- Apache y MySQL son servicios clave para el desarrollo web local.
- Desde la terminal puedes iniciarlos, detenerlos y reiniciarlos con comandos simples.
- Controlarlos manualmente te da autonomía y flexibilidad en el desarrollo.
- Aprender a interpretar errores y logs es fundamental para resolver problemas de manera rápida.


