Aplikácia Google App Engine php obsahuje / vyžaduje problém so smernicou.
SÚBOR 1: app.yaml
application: myapp
version: 1
runtime: php
api_version: 1
handlers:
- url: /stylesheets
static_dir: stylesheets
- url: /images
static_dir: images
- url: /myIncludes
script: form.php
- url: /.*
script: HelloWorld.html.php
SÚBOR 2: php.ini
; This is a simple php.ini file.
; It indicates my desire to use php’s include and require directives.
google_app_engine.allow_include_gs_buckets=‘bucket1’
SÚBOR 3: form.php
The php code in this file simply echoes an html form.
SÚBOR 4: HelloWorld.html.php
<?php
echo "
<html>
<head>
<style type="text/css">
body {background-color:red;}
</style>
</head><body>
<table>
<tr>
<td>My First Cloud App</td>
</tr></table>
";
include "gs://bucket1/form.php";
echo "
</body>
</html>
";
?>
Názov môjho vedra v službe Google Cloud Storage je vedro1. bucket1 obsahuje form.php. Všetky povolenia pre vedro aj pre jeho objekt boli nastavené na prečítať pre každého. Dokážem využiť všetky vhodné PHP funkcie súborov. Nemôžem však použiť smernice o php include
a vyžadovať.
Keď som spustil aplikáciu myapp, zobrazí sa My First Cloud App
s červeným pozadím, ale nezobrazí sa html v časti „form.php“. V súbore denníka účtu Google sa zobrazuje nasledujúca chyba:
2013-11-19 01:44:20.209
PHP Warning: include(gs://bucket1/form.php): failed to open stream: "googleappengineextcloud_storage_streamsCloudStorageStreamWrapper::stream_open" call failed in /base/data/home/apps/s~myapp/1.335363258528205/HelloWorld.html.php on line 74
W 2013-11-19 01:44:20.209
PHP Warning: include(): Failed opening "gs://bucket1/form.php" for inclusion (include_path=".;/base/data/home/apps/s~myapp/1.335363258528205/;/base/data/home/runtimes/php/sdk") in /base/data/home/apps/s~myapp/1.335363258528205/HelloWorld.html.php on line 74
Čo robím zle?
odpovede:
1 pre odpoveď č. 1Nie je potrebné nahrávať form.php do vedra ...
Bez ohľadu na to, koľko adresárov vytvoríte, stále preň nepotrebujete vedro ... Ukážem vám príklad ...
tvoj form.php
je v /form.php
a chcete ho zahrnúť do /folder1/file1.php
potom v file1.php môžete písať include("../form.php");
a chcete ho zahrnúť do /folder2/file2.php
potom v file2.php môžete písať include("../form.php");
ak máte súbor v koreňovom liste samotnom /helloworld.html.php
potom jednoduché písanie include("form.php");
0 pre odpoveď č. 2
CyberBoy má pravdu, ktorú nemusíte vkladaťform.php do vedra GCS na jeho zahrnutie. Nie som si istý, na ktorú časť dokumentácie sa odvolávate, ale existuje naozaj veľmi málo a konkrétnych dôvodov, prečo by ste chceli zahrnúť skript PHP priamo z GCS.