Computer: PHP (aus Wiki)

Gehört zu: Web-Anwendungen
Siehe auch: Google Fotos, Apache, PHP
Benutzt: Fotos von Flickr, Fotos aus Google Drive

Stand: 30.10.2021

PHP mit Apache auf meinen Windows-Computern

PHP ist in meinem Anwendungskatalog die Scriptsprache der ersten Wahl.

Was ist PHP?

PHP steht für “PHP Hypertext Prozessor”. Eine Scriptsprache, die für die Entwicklung dynamischer Web­seiten und WebApplications gedacht ist – wie beispielsweise auch mit ASP oder ColdFusion. PHP ist aber im Gegensatz zu solchen Ansätzen eine freiverfügbare Open Source Software und quer über viele Plattformen (Betriebssysteme, WebServer) einsetzbar. Im Gegensatz zu älteren Scriptsprachen (wie Perl), die aus der Zeit vor dem Web stammen, wurde PHP speziell für ein Einsatz auf WebServern ent­wickelt. PHP besticht durch einfache Verarbeitung von Web-Formularen, seine gute Anbindung an Datenbanken und die Vielfalt weiterer Funktionsbibliotheken, sowie seine weite Verbreitung. PHP ist ein Apache Projekt http://php.apache.org = http://www.php.net

Aufruf von PHP

PHP wird normalerweise als Modul in Apache installiert und benutzt.
Man kan PHP aber auch von der Komandozeile aus aufrufen (s.u.).

Viele wichtige Anwendungen laufen unter Apache mit PHP:

Geschichte von PHP

Im Herbst 1994 begann Rasmus Lerdorf mit einem Hack. Versionen:

  • PHP/FI 1.0, Frühling 1995,
  • PHP – “Personal Home Page Tools”, PHP/FI 2.0, Sommer 1995,
  • FI – “Form Interface”, PHP 3.0, 1997,
  • “Personal Home Page” oder “PHP HyperText Preprocessor”, PHP 4.0, Frühling 2000.
  • PHP5 ab Juli 204
  • PHP7 ab Dezember 2015

Meine Installationen von PHP

Ich betreibe/benutze folgende PHP-Installationen:

Upgrading to PHP 7.0.33

Bei meinem WebProvider Strato musste ich schon in 2018 auf PHP7 umstellen, da PHP5 nur noch mit zusätzlichen Kosten unterstützt wurde.

MIt dem neuen PHP7 liefen dann meine MediaWikis bei Strato nicht mehr, sodass ich diese im März 2019 ebenfalls auf neune Versionen migrieren musste.

Upgrading to PHP 5.2.17

WordPress 3.3.1 läuft nicht mehr mit PHP 5.2.3, deshalb habe ich PHP von 5.2.3 auf 5.2.17 upgraded.
Echte Upgrades gibt es leider nicht. Mann muss das neue PHP in einen neuen Ordner installieren (D:\bin\PHP\, D:\bin\PHP\php5apache2_2.dll),
Die PHP-Installation mit MSI macht dann ein kleines Update der Apache-Konfigurationsdatei httpd.conf. Dabei werden am Ende der Conf-Datei drei Zeilen eingetragen, die auf den Installtionsordner von PHP zeigen. Diese müssen eventuell manuell angepasst werden.

Besonderheiten bei PHP5 (Windows)

PHP5 und Sessions

Unter Windows Vista wird in der php.ini angelegt:

session.save_path = C:\Users\dkracht\AppData\Local\Temp\php\session

Wenn diese Ordner-Struktur versehentlich gelöscht wird, funktioniert die PHP-Session-Verwaltung nicht mehr richtig.
Z.B. kann man sich in MediaWiki nicht mehr anmelden…
Beispielsweise löscht das “Aufräum”-Programm CCleaner alles unterhalb von Tmp….

PHP5 und MySQL

Bei PHP5 ist die MySQL-Unterstützung nicht fest eingebaut (ein-compiliert), sondern es wird die sog. Client-Bibliothek namens libmysql.dll benötigt und zwar zusätzlich zu der PHP-Extension php_mysql.dll.

Die Client-Bibliothek ist Bestandteil von MySQL, wird aber auch im PHP5-Paket mitgeliefert. Achtung: Es könnten Versionskonfilikte auftreten.

Die MySQL-Client-Bibliothek muss vom Apache geladen werden, sonst kann die PHP-Extension php_mysql.dll auch nicht geladen werden und es gibt eine entsprechende Fehlermeldung im Apache-Error-Log (da sollte man ruhig ab und zu hineinschauen!).

Damit die MySQL-Client-Bibliothek zum Laden gefunden wird, kann man sie in den Order Windows/System tun. Wer das nicht möchte, kann sie im Ordner PHP belassen, dann muss alldings zwingend der Ordner PHP in den PATH mit aufgenommen werden. Alternativ kann man sie in den Ordner Apache/bin tun.

PHP5 und OpenSSL

Die PHP-EXtension php_openssl.dll benötigt zusätzlich die Bibliothek libeay32.dll. Bei mir hat das nur dann funktioniert, wenn ich libeay32.dll in den Ordner Apache/bin kopiert habe.

PHP auf Computer Kragenbaer

 Installation

Konfiguration

PHP auf Computer Westhost

PHP Installation Westhost

  • Version: 5.2.1
  • Installations-Verzeichniss: ???
  • Konfigurations-Dateien
    • INI-Datei: /etc/php.ini (siehe Abschnitt “Konfiguration”)

 PHP Konfiguration Westhost

Umgebungsvariable

  • PATH=???
  • PHPRC=??? (Wo die INI-Datei ist)
  • PHPINFO:
    • Server API: Apache
    • Configuration File (php.ini) Path: /etc/php.ini

PHP auf ComputerLonzo

 PHP Installation ComputerLonzo

  • Version: 5.2.3
  • Installations-Verzeichnis: C:\Programme\PHP
  • Konfigurations-Dateien
    • INI-Datei: C:\Programme\php\php.ini (siehe Abschnitt “Konfiguration”)

 PHP Konfiguration ComputerLonzo

Umgebungsvariable

  • PATH=C:\Programme\PHP
  • PHPRC=C:\Programme\PHP (ComputerLonzo: Wo die INI-Datei ist)
  • PHPINFO:
    • Server API: Apache
    • Configuration File (php.ini) Path: C:\WINDOWS
    • Loaded Configuration File: C:\Programme\php\php.ini

 PHP Apache 1.3.29 Konfiguration

In der Apache-Konfigurationsdatei “httpd.conf” eintragen:

 LoadModule php5_module "C:\\Programme\\PHP\\php5apache.dll"
 ...
 AddModule  mod_php5.c
 ...
 AddType application/x-httpd-php .php .php4 .php3 .phtml
 AddType application/x-httpd-php-source .phps
  • Nicht “PHPIniDir=…” das ist für Apache 2 gedacht…
#BEGIN PHP INSTALLER EDITS - REMOVE ONLY ON UNINSTALL
####PHPIniDir "C:\\Programme\\PHP\\"
LoadModule php5_module "C:\\Programme\\PHP\\php5apache.dll"
#END PHP INSTALLER EDITS - REMOVE ONLY ON UNINSTALL

Abbildung 1: Event Log wegen Apache-Fehler (Google Drive: EventApachePHP5.jpg)


Apache Service

PHP auf ComputerBraunbaer

 PHP 5.2.3 Installation

  • Definitive Software Library ID: PHP
  • Name: PHP
  • Version: 5.2.3 (28.6.2007 ComputerBraunbaer)
  • Lieferant: http://www.php.net
  • Installations-Verzeichniss: d:\Programme\PHP
  • Konfigurations-Dateien
    • INI-Datei: d:\programme\php\php.ini (siehe Abschnitt “Konfiguration”)

 Installierte Extensions

Bei PHP5 können die Extensions bereits beim Installationsvorgang ausgewählt werden.

Zusätzlich dazu können in der php.ini noch sog. dynamische Extensions angegeben werden.

 PHP Konfiguration auf ComputerBraunbaer

Umgebungsvariable

  • PATH=D:\Programme\PHP
  • PHPRC=D:\Programme\PHP (ComputerBraunbaer: Wo die INI-Datei ist)

Folgende Einstellungen sind in der php.ini vorgenomen worden:

  • Ordner für Extensions: d:/programme/php/ext
  • register_globals = On (für Anwendung PhpLinks)
  • upload_max_filesize = 16M (für Anwendung Owl)
  • Include_path (für Smarty)
    • = “.;d:\php\pear;d:\php\smarty;.\templates;.\plugins;.\include”  ?????????????????
    • php_db.dll  ???
    • php_dba.dll  ???
    • php_domxml.dll (welche Anwendung benötigt das???)
    • php_gd2.dll (für Anwendung MediaWiki
    • php_iconv.dll (für Anwendung MediaWiki)
    • php_ldap.dll (für Anwendung Rolodap)
  • Zend Optimizer (für welche Anwendung???)
  • PHP-GTK

Apache 1.3.29 Konfiguration

Installation als dynamisches Apache-Modul (SAPI):

LoadModule php4_module d:/php/sapi/php4apache.dll
AddModule mod_php4.c

Das Hauptmodul php4apache.dll benötigt das zentrale PHP-Modul php4ts.dll. Das wird zunächst in \WINNT\system32 gesucht, wenn man es dahin nicht kopieren möchte, kann man es auch in den gleichen Ordner wie php4apache.dll kopieren:

copy d:/php/php4ts.dll d:/php/sapi/php4ts.dll

Wenn man jetzt den Apache-Service neu startet, meldet er sich mit: Apache/1.3.27 (Win32) PHP/4.3.1…

Nun fügt man noch zur Apache-Konfikurationsdatei httpd.conf folgendes hinzu:

AddType application/x-httpd-php .php

und schon werden PHP-Scripts vom Apache-WebServer ausgeführt. Z.B. http://localhost/phpinfo.php

PHP Applikationen

Tabelle 1: Meine PHP-Applikationen

Applikation Nutzung MySQL-Datenbank
GmoChronik Mein altes Web-Log (migriert nach DocBook) b2
PhpWorkshop Für SQL-Workshop im PhpWorkshop fruits, vokabeln,…
gmo Migrierte GMO-Access-Datenbanken gmo
PhpKnowhow Mein KnowlegeManagement: phpKnowhow knowhow
kr8 ich ??? kr8
mydms Testweise ein Dokumentenmanagement mydms
nuke PhpNuke-Installation von GMO/Bonzo nuke
Owl Owl DokumentenManagement owl
PhpKalender Monatskalenderblätter
PhpLinks Anwendung PhpLinks (Link-Management) phplinks
PhpMyAdmin MySQL-Administration (alle)
PhpWiki Mein altes phpwiki (migriert nach TWiki) phpwiki
Rolodap Zugriffe auf ein LDAP-Directory
Smarty Template-Engine für WebsiteTraditionell phplinks
Telefonbuch Telefonnummern zur Inverssuche (u.a.) telefonbuch
Typo3 <Testweise für das Content-Management-System Typo3 typo3
MediaWiki Faulkner-Wiki wikidb
Xanadu Meine Archiv-Datenbank (Anwendung Archivierung) xanadu

Der PHP Command Line Interpreter “CLI”

Für die meinen Einsatz der Smarty Template Engine wird PHP CLI benötigt, da ich PHP-Skripts ohne den WebServer Apache einfach “so” ausführen will. Genauer gesagt, sollen die PHP-Skripts in einem Make-File ausgeführt werden zur Erstellung statischer HTML-Seiten.

Seit PHP Versiom 4.3.0 ist das CLI standardmässig im PHP enthalten und kann wie folgt einfach benutzt werden:

d:\php\php.exe  -f methods.php > \home\kracht\www\www.kr8.de\htdocs\methods.htm 

— Main.DietrichKracht – 25 Mar 2004