Como configurar PHP en DreamCompute corriendo Debian o Ubuntu

Generalidades

PHP es un lenguaje de programación popular del lado del servidor que se utiliza para crear sitios web y otras funciones de backend. PHP es una parte importante de los stack de LAMP (Linux, Apache, MySQL, PHP), así como de otras pilas AMP.

Este artículo asume que estás corriendo una instancia basada en Debian o Ubuntu . Visita el siguiente enlace para ver las versiones actuales de PHP.

Instalar PHP (versión por defecto)

PHP viene en diferentes paquetes dependiendo de que necesitas específicamente para usarlo. Puedes escoger instalar uno o más de esos paquetes para que se acomoden a tus necesidades, pero el siguiente comando instala el paquete más común y útil para usar PHP inmediatamente.

[user@instance]:$ sudo apt-get install php libapache2-mod-php php-mysql php-curl

Instalar una versión específica de PHP

Los comandos de arriba instalan una versión por defecto de PHP configurada con tu versión de Debian o Ubuntu. Por ejemplo, correr este comendo en Ubuntu 17 podrá instalar PHP 7.1. En Ubuntu 16, podrá instalar PHP 7.0.

Si necesitas una versión diference, espefícala en ese comando. Esto muestra como instalar específicamente PHP 7.0.

[user@instance]:$ sudo apt-get install php7.1 libapache2-mod-php7.1 php7.1-mysql

¿Como instalar PHP 7.2?

La versión 7.2 es la versión más reciente disponible y no disponible en versiones nuevas de los repositorios de Ubuntu. Para instalar, tienes que agregar el repositorio primero, correr la actualización, luego instalar la versión 7.2.

[user@instance]:$ sudo apt-add-repository ppa:ondrej/php
[user@instance]:$ sudo apt-get update
[user@instance]:$ sudo apt-get install php7.2

Paquetes comunes

Puedes ver todos los paquetes PHP actualmente instalados, corriendo el siguiente comando:

[user@instance]:$ dpkg -l | grep php

Hay unos pocos paquetes comunes que son normalmente instalaos con PHP. El mas común es mostrado abajo:

libapache2-mod-php

Éste paquete provee el módulo de PHP para el Apache 2 webserver. Ve el siguiente enlace para más detalles:

Si corriste los comandos de arriba, ésto ya fue instalado. Puedes condirmarlo corriendo el siguiente comando:

[user@instance]:$ dpkg -l | grep apache2-mod-php
ii  libapache2-mod-php  1:7.2+60+ubuntu17.10.1+deb.sury.org+1  all  server-side, HTML-embedded scripting language (Apache 2 module) (default)

php-cli

Este paquete proporciona el intérprete de comandos /usr/bin/php que se utiliza para probar scripts PHP desde un shell o realizar tareas generales de script de shell. Este paquete es solo para herramientas de línea de comandos y no se puede utilizar para sitios web que se ejecutan en Apache. php-cli se instala cuando instalas una versión de PHP. Si aún no está instalado, puedes instalar usando el siguiente comando:

[user@instance]:$ sudo apt-get install -y php-cli

Esto instalará el binario PHP por defecto en el directorio /usr/bin/ directory. Puedes ver si este paquete está instalado corriendo lo siguiente:

[user@instance]:$ dpkg -l | grep php-cli

Ve el siguiente sitio para más detalles:

Módulos/extensiones de PHP

Si tienes instalado 'php-cli' puedes ver todos los módulos de PHP instalados en el momento corriendo el siguiente comando:

[user@instance]:$ php -m

Los módulos comunes están listados a continuación, pero puedes ver módulos adicionales para PHP en los siguientes enlaces:

Paquetes de Debian para PHP

Paquetes de Ubuntu para PHP

Módulos/extensiones de bases de datos PHP

MySQL es una de las bases de datos más comunes usadas con PHP, sin embargo, hay paquetes adicionales disponibles para otros motores de bases de datos.

mysqlnd

Este paquete contiene los módulos mysql, mysqli y PDO mysql para PHP usando el controlador nativo MySQL, que es más nuevo y generalmente más rápido. Este módulo se instala con php-mysql. Puedes comprobar si está instalado corriendo siguiente:

[user@instance]:$ php -m | grep mysqlnd

Ve los siguientes enlaces para más detalles:

pgsql

Este paquete contiene los módulos pgsql y pdo_pgsql para usar con PostgreSQL.

sqlite

Este paquete contiene los módulos sqlite3 y pdo_sqlite para trabajar con SQLite.

Módulos PHP opcionales

Estos módulos agregan funcionalidades adicionales a PHP.

curl

El módulo cURL permite descargar de HTTP, FTP y otras fuentes. Puedes instalar la versión PHP por defecto usando php-curl o puedes especificar una versión específica de PHP.

[user@instance]:$ sudo apt-get install php7.1-curl

JSON

php-json se instala cuando instalas una versión PHP. Permite a PHP interactuar con datos JSON.

Corre lo siguiente para instalar (si ya no está instalado).

[user@instance]:$ sudo apt-get install php-json

Librerias multimedia

libav y ffmpeg y otras de las librerias multimedia más populares de PHP. Ve el siguiente artículo para ver generalidades de las diferencias:

libav

Libav se bifurcó de FFmpeg en 2011. Es un programa para manejar datos multimedia. Ve los siguientes enlaces para obtener más detalles:

Puedes instalarlo corriendo el siguiente comando:

[user@instance]:$ sudo apt-get install libav-tools

ffmpeg

Las bibliotecas ffmpeg y gd se instalarán con este paquete. Estos permiten recuperar metadatos de videos e imágenes, así como también editar algunos frames de video.

Puede instalarlo corriendo el siguiente comando:

[user@instance]:$ sudo apt-get install ffmpeg

gd

La biblioteca GD proporciona funciones de manipulación de imágenes que pueden resultar útiles para algunas aplicaciones.

imagick

Imagick es una extensión de PHP para crear o modificar imágenes.

Archivos de configuración

Hay dos archivos de configuración de PHP que son usados para CLI y para los módulos Apache especificamente,  cambie <version> a tu versión específica de PHP.

/etc/php/cli/<version>/php.ini

El archivo de configuración primario de PHP cuando es ejecutado desde CLI. No tiene memory_limit para nada y permite todas las funciones (incluyendo funciones PHP POSIX PHP).

/etc/php/<version>/apache2/php.ini

El archivo de configuración de PHP cuando es corrido desde el módulo de Apache. Tiene un memory_limit configurado y deshabilita todas las funciones relacionadas con las funciones PHP POSIX por razones de seguridad.

¿Este artículo ha respondido sus preguntas?

Última actualización el PST.

¿Aún no encuentra lo que busca?