Google App Engine php inclut / nécessite un problème de directive.
FICHIER 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
FICHIER 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’
FICHIER 3: form.php
The php code in this file simply echoes an html form.
FICHIER 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>
";
?>
Le nom de mon compartiment dans Google Cloud Storage est bucket1. bucket1 contient form.php. Toutes les autorisations du compartiment et de son objet ont été définies sur Lis pour tout le monde. Je suis capable d'utiliser tout le nécessaire PHP fonctions de fichier. Cependant, je ne peux pas utiliser les directives php include
et exiger.
Quand j'ai exécuté myapp, il affiche My First Cloud App
avec un arrière-plan rouge mais il n’affiche pas le code HTML dans «form.php». L’erreur suivante apparaît dans le fichier journal de mon compte Google:
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
Qu'est-ce que je fais mal?
Réponses:
1 pour la réponse № 1Pas besoin de télécharger form.php dans le seau ...
Peu importe le nombre de répertoires que vous créez, vous n’avez toujours pas besoin d’un seau pour cela ... Voir, laissez-moi vous donner un exemple ...
Votre form.php
est dans /form.php
et vous voulez l'inclure dans /folder1/file1.php
puis dans file1.php vous pouvez écrire include("../form.php");
et vous voulez l'inclure dans /folder2/file2.php
puis dans file2.php vous pouvez écrire include("../form.php");
si vous avez un fichier dans le dossier racine lui-même /helloworld.html.php
puis simple écriture include("form.php");
0 pour la réponse № 2
CyberBoy a raison de dire que vous n'avez pas besoin de mettreform.php dans le compartiment GCS pour l’inclure. Je ne suis pas sûr de la partie de la documentation à laquelle vous faites référence, mais il existe vraiment très peu de raisons spécifiques pour lesquelles vous souhaitez inclure le script PHP directement à partir de GCS.