PHP-Frameworks auf DirectAdmin: Konfigurationsleitfaden

Moderne PHP-Frameworks wie Laravel, Symfony und CodeIgniter funktionieren hervorragend auf DirectAdmin-Hosting, sofern sie korrekt konfiguriert sind. In diesem Leitfaden erfahren Sie, wie Sie DirectAdmin optimal für die PHP-Framework-Entwicklung einrichten.

Unterstützte Frameworks

Theory7-Hosting mit DirectAdmin unterstützt alle gängigen PHP-Frameworks:

  • Laravel: Beliebtestes PHP-Framework
  • Symfony: Enterprise-Grade-Framework
  • CodeIgniter: Leichtgewichtiges Framework
  • Slim: Micro-Framework für APIs
  • Lumen: Laravel-Micro-Framework
  • Yii: High-Performance-Framework
  • CakePHP: Rapid-Development-Framework Alle diese Frameworks haben ähnliche Konfigurationsanforderungen.

PHP-Version auswählen

Die richtige PHP-Version ist entscheidend für Frameworks.

Versionsanforderungen

Framework Minimale PHP Empfohlen
Laravel 11 PHP 8.2 PHP 8.3
Symfony 7 PHP 8.2 PHP 8.3
CodeIgniter 4 PHP 8.1 PHP 8.2+
Slim 4 PHP 7.4 PHP 8.2+

PHP-Version in DirectAdmin ändern

  1. Melden Sie sich bei DirectAdmin an
  2. Gehen Sie zu Domain Setup (unter Ihrer Domain)
  3. Klicken Sie auf PHP Version Manager oder PHP Settings
  4. Wählen Sie die gewünschte PHP-Version
  5. Klicken Sie auf Save oder Apply Die Änderung wird sofort für diese Domain wirksam.

PHP-Version pro Verzeichnis

Sie können verschiedene PHP-Versionen pro Unterverzeichnis über .htaccess verwenden:

# In .htaccess des Unterverzeichnisses
<FilesMatch "\.php$">
    SetHandler application/x-httpd-php82
</FilesMatch>

Document Root konfigurieren

Frameworks haben ein öffentliches Verzeichnis, das als Document Root dienen muss.

Warum das wichtig ist

Frameworks trennen:

  • public/: Webzugängliche Dateien (CSS, JS, index.php)
  • Anwendungscode: Über der Document Root (sicher) Dies verhindert direkten Zugriff auf Konfigurationsdateien.
# Über SSH
cd ~/domains/ihredomain.de
# Bestehendes public_html sichern
mv public_html public_html_backup
# Symlink zum Framework public
ln -s myproject/public public_html

Methode 2: DirectAdmin-Konfiguration

  1. Gehen Sie zu DirectAdmin
  2. Öffnen Sie Domain Setup
  3. Ändern Sie Document Root zu:
    domains/ihredomain.de/myproject/public
    
  4. Speichern Sie die Änderungen

Methode 3: .htaccess-Weiterleitung

Falls obiges nicht möglich ist:

# In root .htaccess
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/myproject/public
RewriteRule ^(.*)$ /myproject/public/$1 [L]

SSH-Zugang konfigurieren

SSH ist entscheidend für Composer und Artisan/Console-Befehle.

SSH aktivieren

  1. Gehen Sie zu DirectAdmin
  2. Öffnen Sie Account Manager und dann SSH Keys
  3. Klicken Sie auf Generate Key oder laden Sie Ihren eigenen Key hoch
  4. Aktivieren Sie den SSH-Zugang Siehe auch: SSH-Zugang aktivieren

Composer verfügbar machen

Composer ist standardmäßig auf Theory7-Hosting verfügbar:

# Version prüfen
composer --version
# Bei Bedarf aktualisieren
composer self-update

Dateiberechtigungen festlegen

Korrekte Berechtigungen sind entscheidend für Frameworks.

Standardberechtigungen

# Verzeichnisse: 755
find /home/user/domains/domain.de/myproject -type d -exec chmod 755 {} \;
# Dateien: 644
find /home/user/domains/domain.de/myproject -type f -exec chmod 644 {} \;

Schreibbare Verzeichnisse

Frameworks benötigen Schreibzugriff für: Laravel:

chmod -R 775 storage
chmod -R 775 bootstrap/cache

Symfony:

chmod -R 775 var

CodeIgniter:

chmod -R 775 writable

Datenbankkonfiguration

Verbinden Sie Ihr Framework mit MySQL/MariaDB.

Datenbank erstellen

  1. Gehen Sie zu DirectAdmin
  2. Öffnen Sie Account Manager und dann MySQL Management
  3. Klicken Sie auf Create new Database
  4. Füllen Sie aus:
    • Datenbankname
    • Benutzername
    • Passwort
  5. Klicken Sie auf Create

Verbindungsstring-Beispiele

Laravel (.env):

DB_CONNECTION=mysql
DB_HOST=localhost
DB_DATABASE=user_dbname
DB_USERNAME=user_dbuser
DB_PASSWORD=passwort

Symfony (.env):

DATABASE_URL="mysql://user_dbuser:passwort@localhost/user_dbname"

Cronjobs einrichten

Frameworks haben oft geplante Aufgaben.

Cronjob erstellen

  1. Gehen Sie zu DirectAdmin
  2. Öffnen Sie Advanced Features und dann Cron Jobs
  3. Klicken Sie auf Create Laravel-Scheduler:
* * * * * cd /home/user/domains/domain.de/myproject && php artisan schedule:run >> /dev/null 2>&1

Symfony-Konsole:

0 */6* * * cd /home/user/domains/domain.de/myproject && php bin/console app:my-command >> /dev/null 2>&1

Performance-Optimierung

Optimieren Sie DirectAdmin für Frameworks.

OPcache-Konfiguration

OPcache ist standardmäßig aktiv. Optimale Einstellungen über .htaccess oder php.ini:

opcache.enable=1
opcache.memory_consumption=128
opcache.max_accelerated_files=10000
opcache.validate_timestamps=0

Hinweis: validate_timestamps=0 erfordert manuelles Zurücksetzen des Caches bei Updates.

PHP-Memory-Limit

Für größere Anwendungen:

  1. Gehen Sie zu Domain Setup und dann PHP Settings
  2. Erhöhen Sie memory_limit auf 256M oder 512M
  3. Speichern Sie Oder über .htaccess:
php_value memory_limit 256M

Environment-Variablen

Sicherer Umgang mit Konfiguration.

.env-Schutz

Stellen Sie sicher, dass .env nicht öffentlich zugänglich ist:

  1. .env steht über public/ (standardmäßig sicher)
  2. Fügen Sie zu .htaccess hinzu:
<Files .env>
    Order allow,deny
    Deny from all
</Files>

Environment-Erkennung

Testen Sie, ob Produktion korrekt erkannt wird: Laravel:

php artisan env

Symfony:

php bin/console debug:container --env-vars

SSL/HTTPS konfigurieren

Alle Frameworks sollten HTTPS verwenden.

SSL aktivieren

  1. Gehen Sie zu DirectAdmin
  2. Öffnen Sie SSL Certificates
  3. Wählen Sie Let's Encrypt (kostenlos)
  4. Klicken Sie auf Save

HTTPS erzwingen

In der public/.htaccess Ihres Frameworks:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Deployment-Checkliste

Bei jedem Deployment:

  1. Composer-Installation mit Produktionsflags
  2. Environment-Variablen korrekt
  3. Cache geleert und aufgewärmt
  4. Migrationen durchgeführt
  5. Dateiberechtigungen überprüft
  6. SSL aktiv

Verwandte Artikel

Brauchen Sie Hilfe?

Wir sind für Sie da! Stoßen Sie auf Probleme oder haben Sie Fragen? Unser Support-Team hilft Ihnen gerne persönlich weiter. Senden Sie uns eine Nachricht über das Ticketsystem - wir antworten in der Regel innerhalb weniger Stunden und denken gerne mit Ihnen mit.