Para poder ejecutar código PHP en el navegador en Linux necesitamos no solamente tener PHP instalado, sino también un servidor que nos permita procesar y visualizar dicho código en el navegador.
En este post te explicaremos dos formas de poder realizar esta tarea:
- Con el servidor HTTP integrado de PHP
- Instalando un servidor LAMP en nuestro equipo.
Los siguientes pasos fueron probados y seguidos en un equipo con Ubuntu 16.04 LTS y son compatibles con versiones anteriores (15.04, 15.10) y posteriores (16.10, 17.04, 17.10, 18.04).
Servidor HTTP de PHP
Desde la versión 5.4, PHP posee un servidor HTTP integrado. Esto signfica que no necesitas tener un servidor como Apache o Nginx instalado para poder ejecutar código PHP en el navegador. Aunque no deberías usar el servidor web integrado en PHP para producción, éste es una herramienta perfecta para desarrollo.
El servidor integrado de PHP es un servidor web HTTP, esto quiere decir que puede servir contenido estático además de archivos PHP.
Instalar PHP
Primero que nada tenemos que instalar PHP en nuestro equipo. Para esto, dirigete a la terminal y ejecuta el siguiente comando:
sudo apt-get install php7.0-cgi php7.0
Una vez hecho esto, puedes verificar que todo esté instalado ejecutando el siguiente comando en la terminal:
php -v
Si al realizar este paso recibes la versión de PHP instalada, puedes continuar con el siguiente paso.
Iniciar el servidor
Es muy fácil iniciar el servidor HTTP de PHP. Abre tu terminal y dirigete al directorio principal de tu proyecto y ejecuta el siguiente comando:
php -S localhost:4000
Esto comando inicia un nuevo servidor en localhost y escucha en el puerto 4000. El directorio desde donde ejecutaste el comando es la página principal del servidor.
Desde un navegador puedes ir a http://localhost:4000 y visualizar tu aplicación. Cada solicitud HTTP realizada en el navegador es registrada en la terminal desde donde ejecutaste el servidor.
Para detener el servidor, presiona Ctrl+C donde lo estás ejecutando o simplemente cierra la terminal.
Desventajas de usar el servidor integrado de PHP
- El servidor integrado de PHP no puede ser usado para producción.
- El servidor integrado maneja una sola solicitud al mismo tiempo.
- El servidor integrado tiene una capacidad limitada para reescribir URLs. Necesitas Apache o nginx para obtener URLs avanzadas.
Servidor LAMP
LAMP es el acrónimo usado para hacer referencia a una serie de herramientas que juntas nos permiten ejecutar código PHP en el navegador. Un entorno o servidor LAMP está compuesto por:
- Linux, el sistema operativo.
- Apache, el servidor web.
- MySQL, la base de datos.
- PHP, el lenguaje de programación.
Un servidor LAMP nos da muchas más ventajas a diferencia del servidor HTTP integrado de PHP. Los servidores LAMP también son comúnmente usados en producción.
Instalando LAMP
Al momento de realizar la instalación PHP 7.0 era la versión por defecto disponible en los repositorios de Ubuntu, sin embargo, aunque aún lo sigue siendo, la versión de PHP 7.1 ya está disponible como versión estable.
Lo primero que tenemos que hacer es instalar Apache. Desde la terminal ejecutamos el siguiente comando:
sudo apt-get install apache2
Una vez hecho esto, Apache será instalado. Dirigiendote a http://localhost/ en tu navegador deberías ver la página de inicio de Apache:
Una vez hecho esto podemos continuar al siguiente paso, instalar MySQL. Desde la terminal ejecuta el siguiente comando:
sudo apt-get install mysql-server mysql-client
Durante el proceso de instalación se te pedirá ingresar una contraseña para el usuario root
de MySQL:
Ingresa la contraseña y presiona Enter. Luego de esto, se te pedirá volver a ingresar la contraseña para confirmarla.
Al finalizar este proceso MySQL debería estar instalado. Para verificarlo, ejecuta el siguiente comando en la terminal:
sudo systemctl status mysql
Deberías recibir una respuesta similar a esta:
El siguiente paso es instalar PHP. En la terminal ejecuta el siguiente comando:
sudo apt-get install php7.0-mysql php7.0-curl php7.0-json php7.0-cgi php7.0 libapache2-mod-php7.0
Al finalizar, para verificar que PHP se ha instalado correctamente, ejecuta el siguiente comando en la terminal:
php -v
Esto debería devolver la versión de PHP instalada, de una forma similar a la siguiente imagen:
Instalar phpMyAdmin
Adicionalmente a nuestro entorno LAMP, podemos instalar de forma opcional phpMyAdmin. Esta herramienta nos permite administrar nuestras bases de datos directamente desde el navegador y de forma gráfica, sin necesidad de tener que escribir ningún comando de MySQL.
Para instalar phpMyAdmin ejecuta el siguiente comando en la terminal:
sudo apt-get install phpmyadmin
Durante el proceso de instalación se te pedirá que selecciones el tipo de servidor que estás utilizando, como muestra la siguiente imagen:
Debes seleccionar apache2
, que ya en este punto debemos tener instalado.
Luego de este paso phpMyAdmin te pedirá configurar una base de datos para su uso, como muestra la siguiente imagen:
Presiona Enter para configurar la base de datos automáticamente. Luego de esto el instalador phpMyAdmin te pedirá ingresar tu clave root
de MySQL, la misma que ingresaste al instalar MySQL.
Al finalizar estos pasos, nos dirigimos a http://localhost/phpmyadmin/ desde el navegador para verificar que todo esté funcionando correctamente. De ser así deberías poder ver la página de inicio de sesión de phpMyAdmin.
Comandos para Apache
Apache nos da una serie de comandos para ser ejecutados desde la terminal. Por el momento tenemos dos comandos muy importantes:
systemctl restart apache2
Este comando nos permite reiniciar el servicio de Apache.
systemctl status apache2
Este otro comando nos permite ver el estado del servicio de Apache, por ejemplo, verificar que se esté ejecutando.
Cómo usar el servidor
A diferencia del servidor HTTP de PHP, donde podemos ejecutar código desde cualquier directorio, para poder ejecutar código PHP en nuestro servidor LAMP debemos almacenarlo en el directorio root
de Apache. El directorio root
de Apache se encuentra en /var/www/html
.
Supongamos que tenemos la siguiente estructura dentro de /var/www/html
:
/var/www/html archivo.php /directorio1 archivo1.php /directorio2 /subdirectorio archivo.php
Accedemos a archivo.php
desde http://localhost/archivo.php.
Para acceder a directorio1/archivo1.php
lo hacemos desde http://localhost/directorio1/archivo1.php.
Para acceder a directorio2/subdirectorio/archivo.php
lo hacemos desde http://localhost/directorio2/subdirectorio/archivo.php.
Material relacionado
Regístrate hoy en Styde y obtén acceso a todo nuestro contenido.