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>
44 lines
3.0 KiB
Twig
44 lines
3.0 KiB
Twig
{% 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 %}
|