# HUGE – Installation und Setup ## Schnellstart - Voraussetzungen prüfen (siehe unten) - Abhängigkeiten installieren - Datenbank anlegen - Webserver auf `public/` zeigen lassen - Starten und testen Befehle (Beispiele): ```bash # Composer installieren (macOS – über Homebrew) brew install composer # Abhängigkeiten holen (im Projektordner) composer install # Datenbank & Tabellen anlegen mysql -u root -p < application/_installation/01-create-database.sql mysql -u root -p < application/_installation/02-create-table-users.sql mysql -u root -p < application/_installation/03-create-table-notes.sql # Rechte für Avatare (je nach OS anpassen) # Ubuntu/Debian: sudo chown -R www-data:www-data public/avatars sudo chmod -R 775 public/avatars # macOS (Apache Standardnutzer _www): sudo chown -R _www:_www public/avatars sudo chmod -R 775 public/avatars ``` --- ## Voraussetzungen - PHP >= 5.5 (laut composer.json) - Composer - Apache 2.4 mit `mod_rewrite` - MySQL/MariaDB - PHP-Erweiterungen: PDO + pdo_mysql, OpenSSL, mbstring - Schreibrechte für `public/avatars/` --- ## Projekt beziehen - Repository klonen oder entpacken - In den Projektordner wechseln --- ## Abhängigkeiten installieren (Composer) - Im Projektordner ausführen: ```bash composer install ``` --- ## Webserver konfigurieren (Apache) - DocumentRoot auf `.../huge/public` setzen - `AllowOverride All` aktivieren (damit `.htaccess` greift) - `mod_rewrite` aktivieren - Apache neu starten Minimalbeispiel VirtualHost: ```apacheconf ServerName huge.local DocumentRoot "/pfad/zu/huge/public" AllowOverride All Require all granted SetEnv APPLICATION_ENV development ErrorLog "${APACHE_LOG_DIR}/huge_error.log" CustomLog "${APACHE_LOG_DIR}/huge_access.log" combined ``` Hinweis: `.htaccess` leitet auf `public/index.php` um. --- ## Datenbank anlegen - SQL-Skripte in dieser Reihenfolge ausführen (`application/_installation/`): - `01-create-database.sql` - `02-create-table-users.sql` - `03-create-table-notes.sql` Beispiel in der Shell: ```bash mysql -u root -p < application/_installation/01-create-database.sql mysql -u root -p < application/_installation/02-create-table-users.sql mysql -u root -p < application/_installation/03-create-table-notes.sql ``` --- ## Framework-Konfiguration (Entwicklung) - Datei: `application/config/config.development.php` - Wichtige Schlüssel: - URL - `URL` (Basis-URL, endet mit `/`; auto-detect möglich) - Pfade - `PATH_CONTROLLER`, `PATH_VIEW` (meist unverändert) - Routing - `DEFAULT_CONTROLLER`, `DEFAULT_ACTION` - Datenbank - `DB_TYPE`, `DB_HOST`, `DB_PORT`, `DB_NAME`, `DB_USER`, `DB_PASS`, `DB_CHARSET` - Captcha - `CAPTCHA_WIDTH`, `CAPTCHA_HEIGHT` - Cookies & Session - `COOKIE_RUNTIME`, `COOKIE_PATH`, `COOKIE_DOMAIN`, `COOKIE_SECURE`, `COOKIE_HTTP` - `SESSION_RUNTIME` - Avatare/Gravatar - `USE_GRAVATAR`, `GRAVATAR_DEFAULT_IMAGESET`, `GRAVATAR_RATING` - `AVATAR_SIZE`, `AVATAR_JPEG_QUALITY`, `AVATAR_DEFAULT_IMAGE` - Ordner `public/avatars/` beschreibbar machen - Sicherheit - `ENCRYPTION_KEY`, `HMAC_SALT` (für eigene Installation ändern) - E-Mail - `EMAIL_USED_MAILER`, `EMAIL_USE_SMTP` - `EMAIL_SMTP_HOST`, `EMAIL_SMTP_AUTH`, `EMAIL_SMTP_USERNAME`, `EMAIL_SMTP_PASSWORD`, `EMAIL_SMTP_PORT`, `EMAIL_SMTP_ENCRYPTION` - `EMAIL_PASSWORD_RESET_*`, `EMAIL_VERIFICATION_*` --- ## Umgebungen (Environment) - Klasse: `application/core/Environment.php` - Ermittelt `APPLICATION_ENV` (Fallback: `development`) - Weitere Datei möglich: `config.production.php` - Apache-Variable setzen: ```apacheconf SetEnv APPLICATION_ENV production ``` --- ## Verzeichnisrechte - `public/avatars/` beschreibbar - Optional Logs/Uploads je nach Bedarf --- ## Starten - Browser: `http:///` - Registrierung/Login testen - Mailversand nur mit korrekt konfiguriertem SMTP --- ## Tests ausführen - PHPUnit unter `vendor/bin/phpunit` - Konfiguration: `tests/phpunit.xml` ```bash vendor/bin/phpunit -c tests/phpunit.xml ``` --- ## Häufige Probleme - 404 bei allen Routen - `mod_rewrite` aktivieren - `AllowOverride All` setzen - DocumentRoot auf `public/` - Falsche Links/Assets - `URL` in der Config prüfen - Datenbankfehler - `DB_*`-Werte und Rechte prüfen - E-Mails kommen nicht an - `EMAIL_USE_SMTP=true` und SMTP-Daten prüfen - Avatare fehlen - Schreibrechte für `public/avatars/` --- ## Option: Vagrant „One-Click-Installation“ - Ordner: `_one-click-installation/` - Voraussetzungen: Vagrant + VirtualBox ```bash cd _one-click-installation vagrant up ``` - Projekt über die VM nutzen (Host/Ports laut Vagrant-Ausgabe) --- ## Struktur (Kurz) - `public/` (Webroot, `.htaccess`, `index.php`) - `application/controller/` (Controller) - `application/model/` (Modelle) - `application/view/` (Views) - `application/config/` (Konfiguration je Environment) - `application/_installation/` (SQL-Skripte) - `vendor/` (Composer-Abhängigkeiten) - `tests/` (PHPUnit)