# Projektbeschreibung Dieses Projekt ist eine PHP-Webseite, die Schülerinnen und Schülern ermöglicht, Hausaufgaben und Übungsblätter herunterzuladen. Die Webseite ist unabhängig von einem bestimmten Webserver und kann mit jedem Server konfiguriert werden, der PHP unterstützt. ## Anforderungen Um die Webseite auszuführen, benötigen Sie: - **Webserver**: Jeder Webserver, der PHP unterstützt (z. B. Apache, Nginx, IIS). - **PHP**: Version 7.4 oder höher. - **Dateisystem**: Schreibzugriff auf das Verzeichnis, in dem die Webseite gehostet wird. ## Einrichtung ### 1. Projektdateien bereitstellen - Extrahieren Sie die Projektdateien aus dem Ordner `webseite` aus dem bereitgestellten Archiv. - Platzieren Sie die Dateien in einem Verzeichnis, das der Webserver bedienen kann. ### 2. PHP aktivieren - Aktivieren Sie die PHP-Extension "mbstring" (extension=mbstring) in Ihrer verwendeten php.ini Konfigurationsdatei #### a) Apache - Stellen Sie sicher, dass das Modul `mod_php` aktiviert ist. - Überprüfen Sie die Apache-Konfigurationsdatei (z. B. `httpd.conf`), und stellen Sie sicher, dass PHP korrekt eingebunden ist: ```apache LoadModule php_module modules/libphp.so AddType application/x-httpd-php .php ``` #### b) Nginx - Stellen Sie sicher, dass PHP-FPM installiert und aktiviert ist. - Fügen Sie in der Nginx-Konfigurationsdatei (`nginx.conf`) einen Block für PHP-Dateien hinzu: ```nginx location ~ \.php$ { include fastcgi_params; fastcgi_pass 127.0.0.1:9000; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } ``` #### c) IIS (Windows) - Installieren Sie PHP mit dem Microsoft Web Platform Installer. - Stellen Sie sicher, dass die Handlerzuordnung für `.php`-Dateien auf den PHP-Interpreter verweist. ### 3. Webseite konfigurieren #### Projektdateien ins Webserver-Verzeichnis kopieren: - Platzieren Sie den gesamten Inhalt des Ordners `webseite` mit dem Quellcode der Webseite in das Hauptverzeichnis Ihres Webservers: - **Apache**: Kopieren Sie die Dateien in das `htdocs`-Verzeichnis (z. B. `C:\xampp\htdocs\mein-projekt`). - **Nginx**: Platzieren Sie die Dateien im Root-Verzeichnis, das in Ihrer Konfiguration definiert ist (z. B. `/usr/share/nginx/html`). - **IIS**: Legen Sie die Dateien in das Verzeichnis der zugehörigen IIS-Site (z. B. `C:\inetpub\wwwroot`). #### Caching aktivieren (empfohlen): - **Apache**: Aktivieren Sie das Modul `mod_expires` und fügen Sie folgende Regeln zur `.htaccess`-Datei im Projektordner hinzu: ```apache ExpiresActive On ExpiresByType text/html "access plus 1 hour" ExpiresByType image/gif "access plus 1 week" ExpiresByType image/jpeg "access plus 1 week" ExpiresByType image/png "access plus 1 week" ExpiresByType text/css "access plus 1 week" ExpiresByType text/javascript "access plus 1 week" ExpiresByType application/javascript "access plus 1 week" ``` - **Nginx**: Fügen Sie der Nginx-Konfigurationsdatei folgendes hinzu: ```nginx location ~* \.(jpg|jpeg|png|gif|css|js|ico|html)$ { expires 7d; add_header Cache-Control "public, max-age=604800"; } ``` ### 4. Berechtigungen setzen - Stellen Sie sicher, dass der Webserver die erforderlichen Berechtigungen für das Verzeichnis hat, in dem die Webseite liegt: **Linux**: ```bash chmod -R 755 /pfad/zum/webverzeichnis chown -R www-data:www-data /pfad/zum/webverzeichnis ``` **Windows**: - Überprüfen Sie die Sicherheitseinstellungen des Ordners und geben Sie dem Benutzerkonto des Webservers (z. B. `IUSR`) Lese- und Ausführungsrechte. ### 5. Webseite aufrufen - **Domain oder IP-Adresse öffnen**: - Rufen Sie die Webseite mit dem zugewiesenen Domainnamen oder der IP-Adresse auf. Beispiel: - `http://localhost` - `http://ihre-domain.de` - **Indexseite testen**: - Die Startseite der Webseite sollte automatisch geladen werden (z. B. `index.php`). ## Fehlerbehebung - **500 Internal Server Error**: - Überprüfen Sie die PHP-Fehlerprotokolle, um die genaue Ursache zu finden. - **404 Not Found**: - Stellen Sie sicher, dass die Dateien im richtigen Verzeichnis liegen und die Datei `index.php` vorhanden ist. - **PHP-Funktionalität überprüfen**: - Erstellen Sie eine Datei namens `info.php` mit folgendem Inhalt: ```php ``` - Rufen Sie die Datei im Browser auf, um zu überprüfen, ob PHP korrekt funktioniert. ## Zusätzliche Hinweise - Diese Anleitung ist bewusst allgemein gehalten, um mit verschiedenen Serverumgebungen kompatibel zu sein. - Für die Bereitstellung in einer Produktionsumgebung sollten zusätzliche Sicherheitsmaßnahmen getroffen werden (z. B. HTTPS, Rechteverwaltung, Zugriffsbeschränkungen). - Wir empfehlen, relativ aggressives Caching zu aktivieren, um unnötige Last durch ausgeführtes PHP zu verhindern. ## Kontakt Falls Sie Fragen oder Probleme haben, wenden Sie sich bitte an das Entwicklerteam.