PHP Conference Nagoya 2025

Installation von Paketen unter Debian GNU/Linux und verwandten Distributionen

PHP kann nicht nur aus dem Quellcode installiert werden, sondern ist auch über Pakete von » Debian GNU/Linux verfügbar. Dies gilt auch für andere auf Debian basierende Distributionen wie Ubuntu, Kali Linux und Linux Mint.

Warnung

Pakete von Drittanbietern werden als inoffiziell betrachtet und nicht direkt vom PHP-Projekt unterstützt. Auftretende Fehler sollten dem Anbieter dieser inoffiziellen Pakete gemeldet werden, es sei denn, sie können mit den Paketen aus dem » offiziellen Downloadbereich reproduziert werden.

Die Pakete können mit den Befehlen apt oder aptitude installiert werden. Auf dieser Handbuchseite werden beide Befehle synonym verwendet.

Die Verwendung von APT

Zunächst ist zu beachten, dass möglicherweise andere zugehörige Pakete gewünscht werden, wie libapache-mod-php für die Integration mit Apache 2, und php-pear für PEAR.

Außerdem sollten vor der Installation eines Pakets sichergestellt werden, dass die Paketliste auf dem aktuellen Stand ist. Üblicherweise kann dies durch das Kommando apt update erledigt werden.

Beispiel #1 Beispiel einer Debian-Installation mit Apache 2

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

APT wird automatisch das PHP-Modul für Apache 2 sowie alle seine Abhängigkeiten installieren und danach aktivieren. Damit die Änderungen in Kraft treten, muss Apache neu gestart werden. Zum Beispiel:

Beispiel #2 Stoppen und Starten von Apache nach der Installation von PHP

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

Bessere Kontrolle über die Konfiguration

Im letzten Abschnitt wurde PHP nur mit den Basismodulen installiert. In den meisten Fällen werden weitere Module wie MySQL, cURL oder GD gewünscht. Auch diese Module können mit dem Befehl apt installiert werden.

Beispiel #3 Methoden zur Anzeige weiterer PHP-Pakete

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

Die Paketliste enthält eine große Anzahl von Paketen, darunter grundlegende PHP-Komponenten wie php-cgi, php-cli und php-dev sowie viele PHP-Erweiterungen. Wenn Erweiterungen installiert werden, werden bei Bedarf automatisch zusätzliche Pakete installiert, um die Abhängigkeiten dieser Pakete zu erfüllen.

Beispiel #4 PHP mit MySQL und cURL installieren

# apt install php-mysql php-curl

APT fügt die entsprechenden Zeilen automatisch in die verschiedenen zur php.ini gehörenden Dateien wie /etc/php/7.4/php.ini, /etc/php/7.4/conf.d/*.ini etc. ein. Abhängig von der Erweiterung wird es Einträge ähnlich wie extension=foo.so hinzufügen. Das Neustarten des Web-Servers (z. B. Apache) ist erforderlich, damit die Änderungen wirksam werden.

Bekannte Probleme

  • Wenn die PHP-Skripte nicht vom Web-Server geparst werden, ist es wahrscheinlich, dass PHP nicht zur Konfigurationsdatei des Web-Servers hinzugefügt wurde. Unter Debian ist dies meist /etc/apache2/apache2.conf (oder ähnlich). Im Debian-Handbuch finden Sie weitere Details hierzu.
  • Falls eine Erweiterung anscheinend installiert wurde, aber die Funktionen nicht definiert sind, müssen Sie sicherstellen, dass die entsprechede INI-Datei geladen wurde und/oder dass der Web-Server nach der Installation neu gestartet wurde.
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
6 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