Bearbeiten Sie die standardmäßige .htaccess-Datei im WordPress-Docker

Lesezeit: 3 Minuten

Ich habe einen WordPress-Container, der von a generiert wird docker-compose Datei. WordPress-Container enthält .htaccess Datei standardmäßig. Ich möchte das so bearbeiten, dass die Bearbeitung nur einmal durchgeführt wird, wenn der Container erstellt wird.

Benutzeravatar von Ayushya
Ayushya

Im Moment fallen mir zwei mögliche Lösungen für dieses Problem ein:

  1. Wir können ein statisches verwenden .htaccess Datei und mounten Sie das als Volume an der Stelle, wo das Original war .htaccess kopiert wird, dh bei /var/html/www im Behälter. Von Updates zu dieser Antwort habe ich das verifiziert .htaccess Datei wird standardmäßig nicht überschrieben docker-entrypoint.sh.

  2. Wir können die docker-entrypoint.sh von wordpress docker at verwenden github und ändern Sie den Teil, der die erstellt .htaccess Datei. Dadurch wird das Standardverhalten von Einstiegspunkt und beibehalten .htaccess Datei wird ebenfalls geändert.


Aktualisieren: Antwort von @Nazar ist auch richtig. Default genauer unter die Lupe nehmen docker-entrypoint.sh in wordpress image habe ich festgestellt, dass es eine Bedingung bei gibt Zeile 35die überprüft, ob .htaccess Datei bereits existiert und erstellt nur dann eine neue Datei, wenn file ist nicht vorhanden. Wenn ich also meine eigene Datei mit RUNes wird nicht überschrieben werden.

Benutzeravatar von Nazar Sakharenko
Nazar Sacharenko

Am einfachsten ist es, ein eigenes Image auf Basis von wordpress:with-netcat mit allen erforderlichen Vorbereitungen zu erstellen:

FROM wordpress:with-netcat

RUN /. EDIT YOUR .htaccess file here ./

ENTRYPOINT ...
CMD ...

Und dieses Bild anstelle des Originals zu verwenden.

  • Das kann ich nicht, da hier vorgenommene Änderungen von überschrieben werden docker-entrypoint.sh die ausgeführt wird, nachdem das Image erstellt wurde. Es kopiert den gesamten Inhalt nach var/html/www und dadurch auch meine Akte ersetzen.

    – Ayushya

    7. Juli 2017 um 15:14 Uhr

  • deine Antwort war hilfreich. Beim genaueren Hinsehen docker-entrypoint.sh Ich habe das beim Kopieren des gesamten Inhalts gefunden var/html/wwwgibt es vor dem Ändern eine bedingte Prüfung .htaccess Datei.

    – Ayushya

    10. Juli 2017 um 6:51 Uhr

Benutzeravatar von sytech
Sytech

Dies kann schwierig sein, wenn Sie ein Verzeichnis auf dem Host mounten /var/www/html (z.B. bei der Nutzung -v /host/path:/var/www/html oder ähnliches) — der Volume-Mount wird alles in Ihrem Image überschreiben (überschreiben).

Wenn Ihr Host keine Mounts hat, fügen Sie einfach hinzu COPY .htaccess /var/www/html/.htaccess (oder das bestehende ändern mit RUN) sollte arbeiten.

Um zu umgehen, dass der Volume-Mount die htaccess-Datei des Abbilds belastet, schreiben Sie stattdessen ein Entrypoint-Skript, um die Datei zu überschreiben. Da der Einstiegspunkt ausgeführt wird, nachdem der Mount vorhanden ist, wird er mit Sicherheit wirksam.

Erstellen Sie ein benutzerdefiniertes Shell-Skript für den Einstiegspunkt, in das Ihre htaccess-Datei kopiert wird /var/www/html feuert dann den Standardeinstiegspunkt ab:

#!/usr/bin/env bash

# entrypoint.sh

cp /my-htaccess-file /var/www/html/.htaccess

# run the entrypoint from the ancestor image
docker-entrypoint.sh "$@"

Fügen Sie dann in Ihrer Docker-Datei Ihre eigene htaccess-Datei an einen bekannten Speicherort hinzu, fügen Sie das Einstiegspunktskript hinzu und setzen Sie den Bildbefehl (neu):

FROM wordpress:5.8.2-php7.4
COPY entrypoint.sh /my-entrypoint.sh
# RUN chmod +x /my-entrypoint.sh # uncomment if your source file is not executable
COPY .htaccess /my-htaccess-file
ENTRYPOINT ["/my-entrypoint.sh"]
# whenever the entrypoint is set, the command must also be set again
# this is the default CMD from the ancestor image.
CMD ["apache2-foreground"]

1387380cookie-checkBearbeiten Sie die standardmäßige .htaccess-Datei im WordPress-Docker

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy