# PHP-Nuke

PHP-Nuke ist eine kommerzielle Portal-Software, die Elemente eines einfachen Web-Content-Management-Systems enthält. Es ist unter der GNU General Public License lizenziert. Kern des Skriptes ist eine Benutzerverwaltung sowie ein Artikelsystem für aktuelle Nachrichten.
PHP-Nuke ist eine webbasierte Anwendung, die einen PHP-fähigen Webserver, z. B. Apache oder IIS, und PHP ab Version 4.x. benötigt. Das System unterstützt die Datenbanksysteme MySQL, mSQL, PostgreSQL, Adabas, InterBase und Sybase und die generische Anbindung unter ODBC.

## Geschichte

Im Oktober 1999 wurde von Francisco Burzi die erste Version (1.0) des PHP-Nuke-Systems veröffentlicht, das aus dem Projekt Thatware entstanden ist. Damals wurde PHP-Nuke noch für die Version 3.x von PHP geschrieben.
Im Herbst 2004 flammte eine Diskussion über Lizenzverstöße Burzis mit dem Ergebnis auf, dass die Versionen bis einschließlich 7.5 kein sichtbares Copyright tragen müssen. Erst ab Version 7.6 muss das Copyright in der Fußzeile der Webseite sichtbar erhalten bleiben.

## Softwarepaket
### Funktionen der ersten Veröffentlichung

Die erste PHP-Nuke-Version war zweisprachig (Englisch/Spanisch). In der ersten Auflage gab es noch keinen modularen Aufbau des Systems. Dieser wurde mit der Version 5.0 im Jahr 2001 eingeführt. Dadurch wurde es möglich, eigene Module zu programmieren, die heute in vielen Erweiterungen für die eigene Website benutzt werden können.
Im heutigen Grundpaket sind dieselben Funktionen enthalten wie in der ersten Version, jedoch wurde das System um ein Forum erweitert. Im Laufe der Zeit sind die eigenen Ur-Funktionen des Systems selbst zum Modul umgebaut worden.

### Funktionen des Grundsystems heute

Die aktuelle Version von PHP-Nuke wird mit einer Reihe von Modulen ausgeliefert, die Funktionen zur Handhabung von Werbeflächen ebenso ermöglichen wie die Verwaltung eines Fragen-und-Antworten-Katalogs, eines Kontaktformulars, der Mitgliederliste, eines Artikelsystems einschließlich eines Archivs, kategorisierter Downloads und Weblinks, Umfragensystems und einer systemweiten Suche. Benutzer können in einem sogenannten Journal einfache Weblogs erstellen, Artikel vorschlagen, persönliche Mitteilungen an andere Benutzer verfassen, die Website weiterempfehlen und Statistiken abrufen.
Das Layout der Website kann durch Themes angepasst werden. Die Webschnittstelle ist an die jeweilige Landessprache anpassbar (Lokalisierung).
Zudem gibt es einen WYSIWYG-Editor und Hilfsmittel zur Datenbankverwaltung.

## Technischer Aufbau

Die Möglichkeit durch zusätzliche Komponenten, die als Module bezeichnet werden und nur eingesteckt werden müssen, die eigene Webseite zu erweitern, macht das System flexibel. So gibt es heute hunderte freier Module, vom Download-Script, Forum, Kalender und Fotogalerie bis hin zum Veröffentlichen externer Inhalte, wie etwa für das Open Directory Project oder per RSS-Feed von anderen Websites aktuell übermittelte Nachrichtenkurzbeschreibungen.
Viele von externen Entwicklern vorgelegte modulare Weiterentwicklungen sind hinsichtlich ihrer Funktionalität den in PHP-Nuke beiliegenden weit überlegen. An der Beibehaltung der teilweise veralteten Module, die überwiegend nur an die Versionen angepasst wurden, wurde aber seitens des Hauptentwicklers Francisco Burzi festgehalten.
Es existieren tausende verschiedener Designs, die hier Themes genannt werden. Ergänzt durch sogenannte Blöcke, können vielfältige Informationen an jeder Stelle der Webseite relativ frei positioniert werden.
Der Quellcode ist einfach gehalten, was eigene Erweiterungen auch durch Anfänger zulässt.

## Sicherheit

PHP-Nuke ist wenig ausgereift und mit vielen Fehlern übersät, die seit langer Zeit von einer Version zur anderen mitgeschleppt werden. So werden bis heute immer wieder grobe Sicherheitslücken innerhalb des Systems bekannt. Die Portierung des phpBB-Forum stellt ein gravierendes Sicherheitsproblem in PHP-Nuke dar. Allein im Jahr 2005 wurden mindestens zehn gravierende Sicherheitslücken bekannt. Die deutsche und internationale Nutzerszene hat daher innere Sicherheitsmechanismen entwickelt, um bei Sicherheitsproblemen schnell Fehlerbehebungen zur Verfügung stellen zu können, und verfügt über ein funktionierendes Sicherheitssystem. Die Frequenz der Notwendigkeit, Sicherheitsfixe einzuspielen überfordert allerdings viele Webmaster mit allen bekannten Folgen, die deshalb erfolgreiche Hackerangriffe haben können.
Ein wichtiger Ansatz, die in PHP-Nuke enthaltenen Sicherheitslücken zu schließen ist die Entwicklung von Protektorensystemen. Die in Deutschland am häufigsten (auch gemeinsam) eingesetzten Systeme sind die NukeSentinel und NukeHackerTrap sowie AdminSecure, das jedoch für neuere Nuke-Versionen ab 7.5 nicht mehr zur Verfügung steht.

## Abspaltungen

Aufgrund der laufenden Versionssprünge mit Abwärtsinkompatibilität und den sich 2003 abzeichnenden erheblichen Sicherheitsproblemen aufgrund von Programmierfehlern entschlossen sich einige deutsche Entwicklergruppen, auf der Basis der PHP-Nuke Version 5.5 eigene Projekte zu entwickeln. Beginnend mit sogenannten vorkonfigurierten Paketen (VKP) gingen die Projekte in Abspaltungen über oder werden heute als völlig eigenständige Webportalsysteme betrachtet, die aber allesamt hinsichtlich ihrer gewollten Kompatibilität noch in der Nähe von PHP-Nuke angesiedelt sind. Die als Begriff immer noch bekannten VKP existieren in dieser Form in Deutschland nicht mehr, sie sind im Nachhinein als Entwicklungsstufe zu sehen.
Beispiele für Abspaltungen sind OpenPHPNuke, PragmaMx, Xoops und Zikula.