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 Webseiten 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 entwickelt. 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