PHP 8.4.7 Released!

Instalación desde paquetes en Debian GNU/Linux y distribuciones similares

Aunque PHP puede ser instalado desde el código fuente, también está disponible a través de paquetes provenientes de » Debian GNU/Linux. Esto también es cierto para otras distribuciones basadas en Debian, tales como Ubuntu, Kali Linux y Linux Mint.

Advertencia

Builds from third-parties are considered unofficial and not directly supported by the PHP project. Any bugs encountered should be reported to the provider of those unofficial builds unless they can be reproduced using the builds from » the official download area.

Los paquetes pueden ser instalados utilizando la comando apt o la comando aptitude. Esta página de manual utiliza estos dos comandos de manera intercambiable.

Uso de APT

En primer lugar, tenga en cuenta que otros paquetes pueden ser deseables, como libapache-mod-php para la integración con Apache 2, y php-pear para PEAR.

Luego, antes de instalar un paquete, es prudente asegurarse de que la lista de paquetes esté actualizada. Generalmente, esto se hace utilizando el comando apt update.

Ejemplo #1 Ejemplo de instalación en Debian con Apache 2

# apt install php-common libapache2-mod-php php-cli

APT instalará y activará automáticamente el módulo PHP para Apache 2, así como todas sus dependencias. Apache deberá ser reiniciado para que los cambios sean efectivos. Por ejemplo:

Ejemplo #2 Detener y reiniciar Apache una vez instalado PHP

# /etc/init.d/apache2 stop
# /etc/init.d/apache2 start

Un mejor control de la configuración

En el ejemplo anterior, PHP fue instalado con solo los componentes principales. Es probable que se necesiten módulos adicionales, tales como MySQL, cURL, GD, etc. También pueden ser instalados a través del comando apt.

Ejemplo #3 Métodos para listar los paquetes PHP adicionales

# apt-cache search php
# apt search php | grep -i mysql
# aptitude search php

La lista de paquetes incluirá un gran número de paquetes que incluyen los componentes básicos de PHP, tales como php-cgi, php-cli, y php-dev, así como numerosas extensiones PHP. Durante la instalación de las extensiones, se instalarán automáticamente paquetes adicionales si es necesario para satisfacer las dependencias de estos paquetes.

Ejemplo #4 Instalar PHP con MySQL y cURL

# apt install php-mysql php-curl

APT agregará automáticamente las líneas correctas a los ficheros relacionados con php.ini, como /etc/php/7.4/php.ini, /etc/php/7.4/conf.d/*.ini, etc., y según la extensión, agregará entradas similares a extension=foo.so. Además, reiniciar el servidor web (Apache, por ejemplo) es necesario para que estos cambios sean efectivos.

Problemas comunes

  • Si los scripts PHP no son interpretados por el servidor web, es probable que PHP no haya sido añadido a los ficheros de configuración del servidor web, es decir, en Debian, /etc/apache2/apache2.conf o equivalente. Consulte el manual de Debian para más detalles.
  • Si una extensión ha sido aparentemente instalada pero sus funciones no están definidas, asegúrese de que las líneas adecuadas han sido insertadas en los ficheros .ini y/o que el servidor web ha sido reiniciado después de la instalación.
add a note

User Contributed Notes 2 notes

up
73
thumbs at apache dot org
11 years ago
To refresh this document, perhaps it would be worth mentioning more modern methods to serve php content under apache httpd.

Specifically, the preferred method is now fastcgi, using either of those recipes:

(mod_fastcgi, httpd 2.2)
http://wiki.apache.org/httpd/php-fastcgi

(mod_fcgid, httpd 2.2)
http://wiki.apache.org/httpd/php-fcgid

(mod_proxy_fcgi, httpd 2.4)
http://wiki.apache.org/httpd/PHP-FPM

While the legacy mod_php approach is still applicable for some older installations, the fastcgi method is much faster, and require much less RAM to operate, based on similar traffic patterns.

Thank you!
up
42
kearney dot taaffe at gmail dot com
7 years ago
Compiling PHP on Ubuntu boxes.

If you would like to compile PHP from source as opposed to relying on package maintainers, here's a list of packages, and commands you can run

STEP 1:
sudo apt-get install autoconf build-essential curl libtool \
libssl-dev libcurl4-openssl-dev libxml2-dev libreadline7 \
libreadline-dev libzip-dev libzip4 nginx openssl \
pkg-config zlib1g-dev

So you don't overwrite any existing PHP installs on your system, install PHP in your home directory. Create a directory for the PHP binaries to live

mkdir -p ~/bin/php7-latest/

STEP 2:
# download the latest PHP tarball, decompress it, then cd to the new directory.

STEP 3:
Configure PHP. Remove any options you don't need (like MySQL or Postgres (--with-pdo-pgsql))

./configure --prefix=$HOME/bin/php-latest \
--enable-mysqlnd \
--with-pdo-mysql \
--with-pdo-mysql=mysqlnd \
--with-pdo-pgsql=/usr/bin/pg_config \
--enable-bcmath \
--enable-fpm \
--with-fpm-user=www-data \
--with-fpm-group=www-data \
--enable-mbstring \
--enable-phpdbg \
--enable-shmop \
--enable-sockets \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
--enable-zip \
--with-libzip=/usr/lib/x86_64-linux-gnu \
--with-zlib \
--with-curl \
--with-pear \
--with-openssl \
--enable-pcntl \
--with-readline

STEP 4:
compile the binaries by typing: make

If no errors, install by typing: make install

STEP 5:
Copy the PHP.ini file to the install directory

cp php.ini-development ~/bin/php-latest/lib/

STEP 6:

cd ~/bin/php-latest/etc;
mv php-fpm.conf.default php-fpm.conf
mv php-fpm.d/www.conf.default php-fpm.d/www.conf

STEP 7:
create symbolic links for your for your binary files

cd ~/bin
ln -s php-latest/bin/php php
ln -s php-latest/bin/php-cgi php-cgi
ln -s php-latest/bin/php-config php-config
ln -s php-latest/bin/phpize phpize
ln -s php-latest/bin/phar.phar phar
ln -s php-latest/bin/pear pear
ln -s php-latest/bin/phpdbg phpdbg
ln -s php-latest/sbin/php-fpm php-fpm

STEP 8: link your local PHP to the php command. You will need to logout then log back in for php to switch to the local version instead of the installed version

# add this to .bashrc
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi

STEP 9: Start PHP-FPM

sudo ~/bin/php7/sbin/php-fpm
To Top