0

다른 모든 정적 파일이 도메인에서 정상적으로 작동합니다.App Engine YAML 파일이 스크립트를 실행하지 않음

PHP 파일이 실행되고 있지 않은 것으로 보입니다. 스크립트로 실행하려고하지 않고 정적 파일로 업로드하면 제대로 작동합니다. jQuery가 호출 할 때 plaintext를 돌려 주므로 - 확실히 파일 경로 문제는 아닙니다.

하지만 일단 yaml에서 PHP 파일로 나열하고 jQuery가 'hello, world!'를 얻을 것으로 기대합니다. Firefox 네트워크 모니터에서 404를 반환하고 콘솔에 응답이 없습니다.

App Engine Standard에서 단독 서버 측 PHP 스크립트를 실행하는 것과 관련하여 누락 된 것이 있습니까?

애플리케이션 제목을

runtime: php55 
api_version: 1 
threadsafe: true 

handlers: 
# Serve php scripts another way. 
- url: /scripts/elastic.php 
    script: scripts/elastic.php 

# Handle the main page by serving the index page. 
# Note the $ to specify the end of the path, since app.yaml does prefix matching. 
- url: /$ 
    static_files: index.html 
    upload: index.html 


# Handle folder urls by serving the index.html page inside. 
- url: /(.*)/$ 
    static_files: \1/index.html 
    upload: .*/index.html 

# Handle nearly every other file by just serving it. 
- url: /(.+) 
    static_files: \1 
    upload: (.*) 

elastic.php

<?php 
return 'Hello, world!' 
?> 

script.js (라고 내 index.html을에서 jQuery를로드 후)

$(document).ready(function(){ 
    $.get("./scripts/elastic.php", function(data) { 
     console.log(data); 
    }); 
}); 

답변

1

내가 생각하기에 최종 handlers 지시문은 응용 프로그램의 모든 파일을 업로드 및 정적으로 처리하도록 배포에 지시하고 있습니다. 이것이 이전 스크립트에 대한 호출이 잘못 처리 된 것 같습니다 (어쩌면 App Engine 버그 ...).

당신이 당신의 최종 핸들러를 변경하는 경우

은 같은 PHP 스크립트 또는 뭔가가 될 수있는 당신이 대부분 잘해야 다음 다음

당신은 또한 당신의 PHP 스크립트에서 echo 또는 print 결과를 갖고 싶어합니다
- url: /(.*) 
    static_files: \1 
    upload: (.*)\.html 

대답은 return이 아니라 브라우저에 실제로 표시되지 않습니다.

+0

당신은 100 % 정확합니다! 어떤 이유에서 나는 초기 스크립트 처리기가 모든 PHP 파일을 잡아서 깔때기 아래로 내려갈 수있는 것처럼 계단식으로 생각했습니다. 나는 당신의 대답이 더 많은 사람들을 도울 수 있도록 제목을 조정했습니다. 고마워 브렛 : – Diz

+0

적어도 URL 일치하는 그런 식으로 작동하도록되어 있지만 업로드 프로세스 동안 파일을 덮어 쓰거나 정적으로 재 분류 된 것 같아요. 나는 그 행동에 관한 벌레를 열어서 그것의 원인을 보게 될 것이다. 우리가 문서에있는 사람들에게 이것이 일어날 수 있다고 경고해야 할 필요가 있습니다. – BrettJ