PHP
Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:
Dieser Artikel ist größtenteils für alle Ubuntu-Versionen gültig.
Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:
PHP ist eine Skriptsprache mit einer an Java bzw. Perl angelehnten Syntax, die häufig zur Erstellung dynamischer Webseiten oder Webanwendungen verwendet wird. Aus Sicherheitsgründen darf PHP nur ab Version 5 eingesetzt werden. Vielfach sind PHP-Skripte an eine bestimmte Version des PHP-Interpreters gebunden.
Die drei Hauptgebiete, in denen PHP-Skripte genutzt werden, beschreibt die Seite Was kann PHP? 🇩🇪 im PHP-Handbuch 🇩🇪.
Installation¶
In den offiziellen Paketquellen ist – je nach Ubuntu-Version – zwar nicht immer die aktuelle Version enthalten, aber sicherheitsrelevante Aktualisierungen werden automatisch berücksichtigt. Bei den LTS-Versionen kommen folgende PHP-Versionen zum Einsatz (siehe auch php7, php5 und php):
Ubuntu 18.04: 7.2.x
Ubuntu 16.04: 7.0.x
Ubuntu 14.04: 5.5.x
Installation für serverseitige Programmierung¶
PHP zur Nutzung mit einem Webserver kann ab Ubuntu 16.04 direkt über das folgende Paket installiert werden [1]:
php
Befehl zum Installieren der Pakete:
sudo apt-get install php
Oder mit apturl installieren, Link: apt://php
bzw. bis einschließlich Ubuntu 15.10:
php5
Befehl zum Installieren der Pakete:
sudo apt-get install php5
Oder mit apturl installieren, Link: apt://php5
Installation für Kommandozeilenprogrammierung¶
PHP ohne die Nutzung mit einem Webserver kann ab Ubuntu 16.04 direkt über das folgende Paket installiert werden [1]:
php-cli
Befehl zum Installieren der Pakete:
sudo apt-get install php-cli
Oder mit apturl installieren, Link: apt://php-cli
bzw. bis einschließlich Ubuntu 15.10:
php5-cli
Befehl zum Installieren der Pakete:
sudo apt-get install php5-cli
Oder mit apturl installieren, Link: apt://php5-cli
Funktionstest¶
Um das Zusammenspiel von PHP mit einem lokal installierten Webserver zu testen, kann der folgende Code als /var/www/html/phpinfo.php abgespeichert:
1 2 3 | <?php phpinfo(); ?> |
und im Browser aufgerufen werden:
http://localhost/phpinfo.php
Die Ausgabe zeigt viele Detailinformationen zur PHP-Installation. Aus Sicherheitsgründen sollte diese Datei auf öffentlich zugänglichen Webservern wieder entfernt werden, um diese Informationen vor potentiellen Angreifern zu verbergen.
Anbindungen¶
Apache¶
Bei der Installation von PHP für serverseitige Programmierung wird das passende Modul für den Webserver Apache normalerweise mit installiert. Fehlt dieses, so kann man das Paket:
libapache2-mod-php7.0 – für PHP7
libapache2-mod-php5 – für PHP5
nachinstallieren [1]. Bei Ubuntu 16.04 ist die Nachinstallation immer notwendig.
Wenn nach der Installation von Apache und PHP die PHP-Dateien nicht ausgeführt, sondern nur heruntergeladen werden, kann es sein, dass das Apache-Modul nicht richtig aktiviert wurde. Weitere Informationen hierzu findet man im Artikel Apache/Module.
MySQL¶
Als Datenquelle für viele PHP-Skripte dienen Datenbanken. Zusammen mit Apache und PHP macht das dann einen LAMP-Server (Linux, Apache, MySQL und PHP). Die Anbindung an z.B. MySQL kann über die Pakete:
php-mysql bzw.
php5-mysql
installiert [1] werden.
PostgreSQL¶
Als weitere Datenquelle für PHP-Skripte kann auch ein PostgreSQL-Server benutzt werden (siehe PostgreSQL).
PHP-Erweiterungen¶
Es gibt noch zahlreiche andere nützliche Erweiterungen für PHP, die zusätzlich installiert werden können. Eine unvollständige Auswahl für PHP5/PHP7:
php-cgi / php5-cgi - CGI-Skripte ausführen
php-cli / php5-cli - PHP-Skripte über die Konsole ausführen
php-curl / php5-curl - cURL-Unterstützung (Dateien über verschiedene Protokolle übertragen)
php-gd / php5-gd - Bilder generieren und manipulieren
php-imagick / php5-imagick (universe) - Bilder per ImageMagick manipulieren.
php-imap / php5-imap (universe) - IMAP-Unterstützung.
php-pear - PEAR (PHP Extension and Application Repository), eine Sammlung von Klassen
php5-pgsql - wie php5-mysql, nur für das Datenbanksystem PostgreSQL
php5-sqlite3 (universe) - Daten in einer sqlite3 Datenbank ablegen
PHP-Framework¶
Zend-Framework – Framework zum Einsatz auf Webservern
Problembehebung¶
Ermitteln der PHP-Version¶
Die installierte PHP-Version lässt sich durch die folgende Eingabe in einem Terminal ermitteln [3]:
php -v
Links¶
Projektseite 🇬🇧
PHP Pear 🇩🇪 – Erweiterungen für PHP schreiben, von Carsten Möhrke, Rheinwerk <openbook>