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 hauptsächlich zur Erstellung dynamischer Webseiten oder ganzer Webanwendungen verwendet wird. Nicht allen PHP-Skripten ist es egal, unter welcher Version sie ausgeführt werden. Aus Sicherheitsgründen sollte nur noch mindestens PHP5 eingesetzt werden.
Die drei Hauptgebiete, in denen PHP-Skripte genutzt werden, beschreibt die Seite Was kann PHP? 🇩🇪 im PHP-Handbuch 🇩🇪.
Installation¶
Installation für serverseitige Programmierung¶
PHP inklusive 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 exklusive 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
PHP-Versionen¶
Es handelt sich – je nach Ubuntu-Version – zwar nicht immer um die aktuellste Version, aber sicherheitsrelevante Updates werden automatisch berücksichtigt. Bei den aktuellen Ubuntu LTS-Versionen kommen folgenden PHP-Versionen zum Einsatz (siehe auch php7, php und php5):
Ubuntu 16.04: 7.0.x
Ubuntu 14.04: 5.5.x
Ubuntu 12.04: 5.3.x
Ermitteln der jeweiligen PHP-Version¶
Die jeweilige PHP-Version lässt sich durch die folgende Eingabe in ein Terminal ermitteln [3]:
php -v
Funktionstest¶
Um das Zusammenspiel von PHP mit einem lokal installierten Webserver zu testen, das folgende Code-Beispiel als /var/www/phpinfo.php abspeichern (ab Ubuntu 13.10 als /var/www/html/phpinfo.php):
1 2 3 | <?php phpinfo(); ?> |
und im Browser anzeigen lassen:
http://localhost/phpinfo.php
Das Ergebnis zeigt viele Detailinformationen zur PHP-Installation. Aus Sicherheitsgründen sollte diese Datei auf öffentlich zugänglichen Webserver wieder entfernt werden, um diese Informationen nicht auch potentiellen Angreifern zur Verfügung zu stellen.
Anbindungen¶
Apache¶
Bei der Installation von PHP für serverseitige Programmierung wird automatisch das passende Modul für den Webserver Apache installiert. Sollte dieses Paket nicht hinzugefügt worden sein, so kann man das Paket:
libapache2-mod-php5 – für PHP5
libapache2-mod-php7.0 – für PHP7
nachinstallieren [1]. 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 korrekt 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 / 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 PHP 7 / PHP5:
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
Links¶
Projektseite 🇬🇧
PHP Pear 🇩🇪 – Erweiterungen für PHP schreiben, von Carsten Möhrke, Rheinwerk <openbook>