Я развертываю статические файлы (html, css, js) и хорошо работаю в gae, но для файлов php выдает ошибку 404.

Мой app.yaml как:

 runtime: php55
 api_version: 1
 threadsafe: true

 handlers:
 - url: /
 static_files: www/index.html
 upload: www/index.html

 - url: /(.*)
 static_files: www/\1
 upload: www/(.*)

как видно выше, статические файлы находятся в каталоге www. и файлы php находятся в каталоге поставщика и его подчиненных. Я читал все дни док. чтобы понять этот файл yaml, чтобы понять, но, к сожалению, еще нет :). Итак, html и все статические файлы работают отлично. но когда ajax вызывает php с отправкой данных на php. выдает ошибку 404. Он хорошо работает на локальном сервере wamp. главная начальная страница - index.html под www. И это нормально. Весь день я тестировал множество вариантов развертывания php-файлов. Еще не умеет.

mainProjectRoot>app.yaml ( only this file and two directory "www and vendor")
                www/index.html
                   /css
                   /js
                vendor/smsgonder.php
                      /mail.php
                      /../../more php files

По крайней мере, я сдался, чтобы попробовать другой вариант, и мне нужна помощь в настройке страницы app.yaml. (за исключением приведенного выше варианта, весь дополнительный код, который я всегда получал с ошибкой и без развертывания) Любая помощь будет очень признательна. Заранее спасибо !

окончательный app.yaml

runtime: php55
api_version: 2
threadsafe: true

handlers:
- url: /(.+\.php)$
  script: vendor/\1

- url: /
  static_files: www/index.html
  upload: www/index.html

- url: /(.*)
  static_files: www/\1
  upload: www/(.*)

введите здесь описание изображения

EDIT это окончательный app.yaml... (некоторое время я развернул php-файлы, и некоторые из них работали. Но снова для некоторых php я получаю «Ошибка POST 500», если я хочу поделиться окончательный файл app.yaml здесь.

runtime: php55
api_version: 2
threadsafe: true

handlers:
- url: /(.*).php 
  script: \1.php

- url: /
  static_files: www/index.html
  upload: www/index.html

- url: /(.*)
  static_files: www/\1
  upload: www/(.*)

Любая помощь будет очень признательна. Как же так :)) Я потратил 5-6 дней только на развертывание готового приложения :)'


person HakanC    schedule 06.01.2017    source источник
comment
Вы должны задавать новые вопросы для новых проблем, этот пост уже слишком много раз трансформировался.   -  person Dan Cornilescu    schedule 09.01.2017


Ответы (2)


добавьте это сразу после обработчиков:

- url: /(.*)\.php$
  script: vendor/\1.php

Это будет обслуживать все запросы, заканчивающиеся на .php, в php-файлы в папке поставщика.

person user1431972    schedule 07.01.2017
comment
Большое спасибо, но на этот раз выдает другую ошибку: неизвестный тип обработчика URL. (скриншотом поделиться не могу) Но попробую записать. - person HakanC; 07.01.2017
comment
обратите внимание на интервал..... ваш файл app.yaml должен иметь 2 пробела перед static_files и строками загрузки - person user1431972; 07.01.2017
comment
Извините, но я не мог понять вас очень хорошо. Вы имеете в виду пространство в файле app.yaml или? - person HakanC; 07.01.2017
comment
Я редактирую вышеприведенный окончательный app.yaml как вашу информацию. Пожалуйста, проверьте выше!? - person HakanC; 07.01.2017
comment
Последние 3 дня я пытаюсь развернуть свой локально работающий сайт на gae. И так и не смог найти решение, перепробовал ваше предложение и еще много-много других способов. Он отлично работает на моем локальном сервере wamp. Даже я не смог запустить локально dev_appserver.py, как показано в учебниках. все файлы, кроме php, развернуты в другом каталоге. ! Пожалуйста, дайте мне знать, если у вас есть еще идеи. :)) - person HakanC; 08.01.2017
comment
не уверен, почему, потребуется тщательная проверка вашего исходного каталога, чтобы понять, почему - person user1431972; 13.01.2017

Раздел обработчиков для PHP-скриптов в соответствии с документацией Пример (работает также для vendor подкаталогов):

# Serve php scripts.
- url: /(.+\.php)$
  script: \1

Примечание: отступы имеют значение!

person Dan Cornilescu    schedule 07.01.2017
comment
Спасибо, Дэн, но я попробовал это и не только работает. :( Ну, пожалуйста, дайте мне полный код, если можете. ! - person HakanC; 07.01.2017
comment
Я только что исправил отступ в вашем последнем app.yaml, см. stackoverflow.com/posts/41512218/revisions - person Dan Cornilescu; 07.01.2017
comment
Дэн, большое спасибо, но опять не загружаются файлы php. Я проверил оба вашего кода - url: /(.+\.php)$ . также Лоуренс выше: - url: /(.*)\.php$. - person HakanC; 07.01.2017
comment
Все html, js другие статические файлы в порядке. и работает. лог-файлы говорят 404. либо когда я запускаю веб-сайт, выдает ту же ошибку на опубликованном сайте. - person HakanC; 07.01.2017
comment
Вы поняли примечание об отступе кода и проверили, что отступ файла app.yaml в порядке? Для проверки проверьте один файл .php, который не ссылается на другие подобные файлы (чтобы убедиться, что ошибка 404 не вызвана отсутствием какого-либо другого файла)`. Возможно, вставьте в вопрос точное и полное сообщение об ошибке. - person Dan Cornilescu; 07.01.2017
comment
Да хоть :)) Большое спасибо... Не знал, что это так важно. :) Но, к сожалению, я не смог загрузить все файлы! php файлы все еще ждут меня. Он работает на локальном сервере wamp без проблем. - person HakanC; 07.01.2017
comment
Пожалуйста, проверьте ссылку ниже кода выше. Я попытался загрузить снимок экрана. - person HakanC; 07.01.2017
comment
Ага, ваши пути запросов на самом деле включают префикс vendor/, я обновлю ответ. Кстати, вы не должны публиковать текст в виде изображений, вы должны скопировать / вставить его в сообщение (и отформатировать его соответствующим образом). - person Dan Cornilescu; 07.01.2017
comment
Дэн, это не текст, я пытался скопировать результат командной строки. Но не возможно. поэтому я сделал снимок экрана и обрезал его. затем я загрузил как снимок экрана. под дир. поставщика. в этом каталоге есть еще 3 ужасных. дерево под поставщиком: \vendor\iyzico\iyzipay-php\samples (локальная карта каталогов) - person HakanC; 07.01.2017