Cómo ejecutar comandos de Linux desde PHP

Dificultad: Fácil
<b>Tiempo de Lectura:</b> 3 minutos

PHP es, sin lugar a dudas, uno de los lenguajes de programación web más populares que existen, y podemos encontrarlo detrás de muchos millones de páginas web a lo largo y ancho de Internet. Una de las posibilidades que nos brinda PHP es la de ejecutar comandos de Linux, lo cual es posible hacerlo mediante ciertas funciones que el mismo incorpora. Y esa es la consiga de este post: hoy vamos a ver cómo ejecutar comandos de Linux desde PHP.

 ¿Qué es PHP?

Pero antes que nada tenemos que introducirnos un poco más en PHP, por eso toca el turno de hablar un poco sobre él. Como ya hemos dicho, PHP es un lenguaje de programación que se encuentra entre los más populares y usados en el mundo del hosting.

PHP nació en el año 1994, y está orientado principalmente al desarrollo web. Originalmente fue creado por Rasmus Lerdorf, pero actualmente su desarrollo está en manos de una comunidad llamada The PHP Development Team.

Muchos consideran que PHP es un lenguaje excelente para comenzar a programar, ya que su uso resulta sencillo para los principantes, aunque esto no quiere decir que sea un lenguaje extrictamente para novatos, porque también contiene características que solamente un profesional de la programación web y especializado en PHP sería capaz de utilizar.

 ¿Y qué puede hacer PHP?

Pues en realidad con PHP podemos hacer prácticamente cualquier script que se nos ocurra, por supuesto para llevar a cabo cualquier cosa que se nos ocurra. Entre los usos más comunes se encuentran la generación de páginas dinámicas, la recopilación de datos mediante formularios, la recepción y el envío de cookies, entre otros.

Al tratarse de un lenguaje de código abierto y que lleva muchos años ahí fuera, es posible encontrarle en practicamente cualquier plataforma, incluyendo por supuesto las tres más populares: Windows, OS X y Unix/Linux. También es compatible con la gran mayoría de los servidores web del mercado, incluyendo Nginx, Apache, lighttpd, etc.

 ¿Cómo ejecutar comandos de Linux desde PHP?

Y tal como les habíamos dicho al comienzo, una de las muchas posibilidad que nos brinda PHP es la ejecución de comandos de Linux, es decir los mismos comandos que podemos ejecutar en el terminal de Linux. ¿Cómo podemos usar un script en PHP para ejecutar un comando de Linux? Pues esto es posible gracias a varias funciones, aunque en esta ocasión nos vamos a enfocar en dos en particular: exec() y system().

La tarea de exec es muy sencilla: se encarga de ejecutar el comando indicado, aunque no muestra el resultado por pantalla. Su sintaxis puede ser de este tipo:

string exec ( string $command [, array &$output [, int &$return_var ]] )

Veamos a qué refiere cada uno de estos argumentos:

  • command = este es el comando que queremos ejecutar.
  • output = este argumento permite que el array sea llenado con las líneras del resultado del comando.
  • return_var = este último argumento es utilizado para escribir el estado de retorno del comando que se ejecutó.

Y la otra función que les mencionábamos es system, cuyo uso también resulta sencillo, y además cuenta con la característica de mostrar el resultado por pantalla. Veamos una sintaxis de ejemplo:

string system ( string $command [, int &$return_var ] )

En este caso, los argumentos cumplen la misma función que en el caso anterior, es decir:

  • command = es comando que el script ejecutará.
  • return_var = el estado que devuelve el comando ejecutado es escrito por este argumento.

Es posible darle usos similar a exec() y system(), y como hemos dicho la diferencia principal entre uno y otro es que el primero no devuelve resultado por pantalla y el segundo sí.

Por supuesto las posibilidad de estas dos funciones van más allá de lo expuesto, por esto te recomendamos que les eches un vistazo en la documentación oficial de PHP.

Conclusión

En esta oportunidad hemos visto dos funciones para ejecutar comandos de Linux desde PHP, se trata de exec y de system. Ambas son usadas en forma casi similar y la diferencia que tienen entre ellas es que exec no muestra un resultado en la pantalla y system sí lo hace. Si quieres comenzar a ejecutar comandos de Linux desde PHP te recomendamos que comiences con estas dos funciones y nos cuentes cómo te fue.


¿Te resultó útil el artículo? Compártelo con tus colegas: