Aber ich habe Sorge, dann genau in das Problem zu rennen, dass das SSL-Zertifikat dann nicht mehr greift.
Du hast einen Webserver. In dem ist der oder die Servername(n) konfiguriert. Und dass dieser bei einem Request nach einer Ressource unterhalb von „example.org“ oder „www.example.org“ eine bestimmte SSL-Konfiguration, also ein bestimmtes Zertifikat benutzt. Aber auch jeweils ein Verzeichnis, in dem der Webserver die Ressourcen erwartet. (DOCUMENT_ROOT)
Da Du kein Wildcard-Zertifikat hast, sendest Du, wenn Du Subdomains (eg. php72.example.org, php74.example.org, php80.example.org, ... ) einrichtest, entweder gar kein Zertifikat - oder das falsche. Denn dann sendest Dein Server (je nach Konfiguration) womöglich das für die Hauptdomain gültige.
Wenn Du (notlos) für Testzwecke Subdomains einrichtest, hast Du also entweder kein HTTPS oder ein für die Subdomain ungültiges Zertifikat (noch kannst Du dem Browser „sagen“, dass er das akzeptieren soll, in Zukunft wird das aus Sicherheitsgründen aufwendiger, „normalen“ Benutzern (erst recht den Admins!), z.B. in einer Windows-Domain, wahrscheinlich sogar gar nicht mehr erlaubt).
Daran ändert kein Link der Welt etwas!
Die Idee, mittels Links die Zuordnung ServerName ←→ Zertifikat ändern zu wollen, erschien mir so fern liegend, dass ich mich bisher dazu nicht geäußert habe. Ich dachte, das hätte ich falsch verstanden.
Willst Du für Deine Tests gültige Zertifikate, dann musst Du „Unterverzeichnisse“ der Domain
- https://example.org/tests/php72 z.B. mit dem Ordner /var/www/example.org/tests/php72
- https://example.org/tests/php74 z.B. mit dem Ordner /var/www/example.org/tests/php74
- https://example.org/tests/php80 z.B. mit dem Ordner /var/www/example.org/tests/php80
- https://example.org/tests/php81 z.B. mit dem Ordner /var/www/example.org/tests/php81
- https://example.org/tests/php82 z.B. mit dem Ordner /var/www/example.org/tests/php82
nutzen oder ein gültiges (Wildcard-)Zertifikat besorgen.
Und in den Ordnern dann Kopien des Auftritts - damit Du nicht versehentlich die falsche Datei „mit“ umschreibst, so dass diese nun zwar mit PHP8.2, aber nicht mehr mit PHP7.2 funktioniert. (Das kann Deinen eigentlichen Webauftritt kaputt machen!) Natürlich muss der Webserver so konfiguriert sein, dass er für die Ordner die entsprechende PHP-Version benutzt. Ich würde hier sehr ernsthaft vorschlagen, die PHP-Version für die Test-Verzeichnisse in der .htaccess zu konfigurieren. Wäre blöd, wenn die ein Link ist.
-
Sorge dafür, dass alles unter https://example.org/tests/ bzw. /var/www/example.org/tests/ nur für Berechtigte abgerufen werden kann.
-
Ja. Es ist richtig, dass dann alle Links in den Webseiten und alle Zugriffe von PHP auf Dateien mit relativen Adressen gebaut werden müssen. Das ist aber ohnehin die weitaus bessere Idee.
-
Etwas anderes sind Libarys, die mit PHP nichts zu schaffen haben. Ordner wie (DOCUMENT_ROOT)/images, (DOCUMENT_ROOT)/fonts, (DOCUMENT_ROOT)/js, (DOCUMENT_ROOT)/data, (DOCUMENT_ROOT)/templates kannst Du natürlich verlinken, aber auch für diese würde ich erst mal eine Kopie haben wollen:
cp -r /var/www/example.org/images /var/www/example.org/tests/static
und erst dann verlinken:
ln -s /var/www/example.org/tests/static/images /var/www/example.org/tests/php72/images
# …
ln -s /var/www/example.org/tests/static/images /var/www/example.org/tests/php80/images
- Libarys, die in PHP geschrieben sind, solltest Du in diesen Szenario als Kopie vorhalten, denn es gibt keine Garantie, dass jede Version von diesen mit jeder Version von PHP benutzt werden kann - eher die gegenteilige Vermutung.