Ich habe meine Website auf Google App Engine bereitgestellt, was einwandfrei funktioniert, sofern ich nicht versuche, ein Unterverzeichnis der Website zu öffnen. Wenn ich beispielsweise example.com/dir öffne, wird ein 404-Fehler ausgegeben, selbst wenn ich das Verzeichnis hochgeladen/bereitgestellt habe. Meine app.yaml sieht wie folgt aus:
runtime: php72
handlers:
- url: /
static_files: public/index.html
upload: public/index.html
- url: /
static_dir: public
# Serve images as static resources.
- url: /(.+\.(gif|png|jpg))$
static_files: \1
upload: .+\.(gif|png|jpg)$
application_readable: true
# Serve php scripts.
- url: /(.+\.php)$
script: \1
Sagen Sie mir Bescheid, wenn Sie weitere Einzelheiten hierzu benötigen.
Antwort1
Ich weiß nicht, ob dies ein Kopier-/Einfügefehler beim Hinzufügen von Code zu Serverfault war, aber die Einrückung in Ihrem YAML ist nicht korrekt, was diesen Fehler verursachen könnte. Es sollte lauten:
runtime: php72
handlers:
- url: /
static_files: public/index.html
upload: public/index.html
- url: /
static_dir: public
# Serve images as static resources.
- url: /(.+\.(gif|png|jpg))$
static_files: \1
upload: .+\.(gif|png|jpg)$
application_readable: true
# Serve php scripts.
- url: /(.+\.php)$
script: \1
Antwort2
Der einzige akzeptierte Wert für den Parameter „script“ in der PHPv7.2-Laufzeit für die App Engine-Standardumgebung ist „auto“, wie hier beschrieben [1]. Es wird empfohlen, ein Webframework (wie Laravel, Symfony oder ähnliches) mit In-App-Routing zu verwenden, um ein Skript auszuführen, wenn eine Anfrage eine bestimmte Route erreicht.
[1]https://cloud.google.com/appengine/docs/standard/php7/php-differences#migrating_your_appyaml_file
Denken Sie daran, dass sich diese Laufzeitumgebung in der Betaphase befindet, wenn Sie PHP 7.2 und die App Engine-Standardumgebung verwenden. Diese Funktion kann in einer nicht abwärtskompatiblen Weise geändert werden und unterliegt weder einem SLA noch einer Veraltungsrichtlinie.
Bitte versuchen Sie es und teilen Sie mir die Ergebnisse mit.
[1]https://cloud.google.com/appengine/docs/standard/php7/config/appref