Обработчик app.yaml Google App Engine для файла PHP

У меня есть сайт Codeigniter, развернутый в среде PHP 7 Google App Engine. Затем я добавил простой файл PHP с именем hello.php:

<?php
  echo "Hello World";
?>

и поместил его в корень сайта вот так:

Root
--application
--css
--js
--system
--hello.php

Когда я получаю доступ к hello.php с локального хоста Cloud Shell, он отлично загружается:

https://8080-dot-1234567-dot-devshell.appspot.com/hello.php

Когда я открываю hello.php после развертывания в Google App Engine, я получаю 404 Page Not Found ошибку. Поскольку GAE не поддерживает файлы .htaccess, я понимаю, что правильным способом обработки маршрутизации будет файл app.yaml. Вот мой app.yaml файл:

runtime: php72

handlers:
- url: /js
  static_dir: js

- url: /css
  static_dir: css

- url: /images
  static_dir: images   

- url: .*
  script: auto

Все ресурсы в папках js, css и images доступны через GAE, но hello.php недоступен. Как мне изменить этот app.yaml файл, чтобы маршрутизация обслуживала hello.php файл в GAE?


person DanielAttard    schedule 23.11.2019    source источник
comment
Какое ваше app.yaml местоположение относительно структуры каталога сайта, которую вы упомянули? Он должен находиться рядом с вашим hello.php файлом.   -  person Dan Cornilescu    schedule 23.11.2019


Ответы (1)


Мне удалось воспроизвести вашу проблему, и я обнаружил, что ошибка, похоже, связана с именем вашего php-файла.

Как упоминалось в документации app.yaml, поле скрипта определяет точка входа вашего приложения, но единственное допустимое значение - «auto», GAE будет искать контроллер в index.php или public / index.php, и, поскольку ваш называется hello.php, GAE не может его найти. Просто измените имя файла, и он заработает.

Надеюсь это поможет.

person Happy-Monad    schedule 25.11.2019