Files
kantarciandClaude Opus 5 ea3dd4ddf2
CMS quality / php (8.2) (push) Canceled after 0s
CMS quality / php (8.4) (push) Canceled after 0s
CMS quality / browser (push) Canceled after 0s
CMS quality / mysql (push) Canceled after 0s
Fassung 1.4.2: die Systempruefung nennt die SQLite-Fassung
Auf dem Hosting brach die Installation im dritten Schritt ab: near
"(": syntax error. Dort laeuft SQLite in einer Fassung vor 3.16, und
Doctrine liest das Schema mit Tabellenfunktionen wie
pragma_table_info(...), die es erst seit 3.16 gibt.

Die Pruefung nennt die gefundene Fassung jetzt vor der Wahl der
Datenbank, und der Datenbankschritt bietet SQLite gar nicht erst an,
wenn sie zu alt ist - mit dem Hinweis auf MySQL. Eine Voraussetzung,
die erst mitten in der Installation auffaellt, ist keine Pruefung wert.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-13 21:56:17 +02:00

44 lines
3.0 KiB
Twig
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{% extends 'install/base.html.twig' %}
{% block heading %}Wohin mit den Inhalten?{% endblock %}
{% block lead %}
<p class="muted">SQLite ist eine Datei auf diesem Server – nichts einzurichten, gut für eine Website mit überschaubarem Verkehr. MySQL brauchst du, wenn der Hoster es vorgibt oder mehrere Websites dieselbe Datenbank nutzen sollen. Die Verbindung wird sofort geprüft, nicht erst beim Speichern.</p>
{% endblock %}
{% block content %}
<form method="post" action="{{ path('install_database') }}">
<input type="hidden" name="issued" value="{{ issued }}">
<input type="hidden" name="signature" value="{{ signature }}">
<fieldset class="field-set">
<legend>Art der Datenbank</legend>
<label class="check-label">
<input type="radio" name="driver" value="sqlite" {{ driver != 'mysql' ? 'checked' : '' }} {{ sqlite ? '' : 'disabled' }}>
<span><strong>SQLite</strong> – eine Datei unter <code>var/</code>. Empfohlen, wenn nichts dagegen spricht.{% if not sqlite %} <em>{% if sqliteVersion %}Dieser Server hat SQLite {{ sqliteVersion }}; gebraucht wird mindestens {{ minSqlite }}. Nimm MySQL – eine Datenbank legst du beim Hoster im Kundenmenü an.{% else %}Auf diesem Server nicht verfügbar.{% endif %}</em>{% endif %}</span>
</label>
<label class="check-label">
<input type="radio" name="driver" value="mysql" {{ driver == 'mysql' ? 'checked' : '' }} {{ mysql ? '' : 'disabled' }}>
<span><strong>MySQL / MariaDB</strong> – mit den Zugangsdaten aus dem Kundenmenü deines Hosters.{% if not mysql %} <em>Auf diesem Server nicht verfügbar.</em>{% endif %}</span>
</label>
</fieldset>
<label for="name">Name der Datenbank <span class="muted">(bei SQLite der Dateiname, ohne Endung)</span></label>
<input id="name" name="name" value="{{ values.name|default('cms') }}" required maxlength="64">
<details class="install-details" {{ driver == 'mysql' ? 'open' : '' }}>
<summary>Zugangsdaten für MySQL</summary>
<label for="host">Host</label>
<input id="host" name="host" value="{{ values.host|default('127.0.0.1') }}" maxlength="120" autocomplete="off">
<label for="port">Port</label>
<input id="port" name="port" value="{{ values.port|default('3306') }}" inputmode="numeric" maxlength="5" autocomplete="off">
<label for="user">Benutzer</label>
<input id="user" name="user" value="{{ values.user|default('') }}" maxlength="120" autocomplete="off">
<label for="password">Passwort</label>
<input id="password" name="password" type="password" maxlength="200" autocomplete="off">
<p class="muted">Diese Angaben landen in <code>.env.local</code> im Projektstamm – nicht in der Datenbank und in keinem Protokoll. Die Datei liegt außerhalb von <code>public/</code> und ist über das Netz nicht erreichbar.</p>
</details>
<div class="sheet-actions">
<button class="primary" type="submit">Verbindung prüfen und weiter <span aria-hidden="true">→</span></button>
</div>
</form>
{% endblock %}