2013-05-21 3 views
0

У меня есть index.php сКак ссылаться вложенными требует в app.yaml для App Engine PHP

require 'myfolder/folder/lib1.php'; 

Так app.yaml я ссылка:

- url: /myfolder/folder/lib1.php 
    script: myfolder/folder/lib1.php 

но это lib1.php делает другой require 'lib2.php'; в то же самое уровень папки /myfolder/folder/. Поэтому он вызывает ошибку 500, потому что не может найти lib2.php. Как я могу правильно ссылаться на них как в app.yaml?

+0

Почему, по вашему мнению, вам нужно указать необходимые файлы библиотеки в файле 'app.yaml'? – hakre

ответ

0

Ошибка 500 была брошена в основном потому, что Google App Engine для php не поддерживает расширение CURL, используемое в PHP php SDK. Ничего не связано с app.yaml. Я разветвил официальный fb sdk git, и сейчас я исправляю решение.

+1

Уже сделано - получите его отсюда. https://github.com/camfitz/facebook-php-sdk –

+0

Мое решение уже вытащено на официальный SDK https://github.com/facebook/facebook-php-sdk/pull/77 – Veilkrand

+0

awesome - можете ли вы ping me offline? –

4

Ваш файл app.yaml предназначен для маршрутизации запросов от входящих URL-адресов к исходному скрипту, который вы хотите использовать для обработки запроса.

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

Например, посмотрите примердля запуска wordpress. У него просто есть URL-адреса, к которым будут обращаться клиенты, но не все скрипты php, используемые wordpress.

+0

Хорошо, я немного собираюсь здесь ... Я пытаюсь включить API facebook, но он все время показывает ошибку 500. – Veilkrand

+0

@Veilkrand: Это не зависит от 'app.yaml'. Вместо этого рассмотрите возможность использования * composer */* packagist * для управления пакетами PHP для легкого пути. http://getcomposer.org - https://packagist.org/search/?q=facebook – hakre

1

Проблема, с которой вы сталкиваетесь, скорее всего, не зависит от Google App Engine. В Google App Engine действует standard rules of PHP file-inclusion. Единственная потенциальная разница здесь в том, что файлы доступны только для чтения (но это не должно создавать проблем в вашем случае).

Поэтому, если lib1.php требуется lib2.php, для этого вам потребуется потребовать позднее, прежде чем требуется другое. Это стандартное поведение PHP:

require 'myfolder/folder/lib2.php'; 
require 'myfolder/folder/lib1.php'; 

Чтобы узнать больше, что именно вызвало ошибку 500 на Google App Engine, consider downloading the log and look into it. Это также не зависит от Google App Engine, потому что это лучшее предложение, которое можно дать любому веб-серверу на 500 ошибках.

Смежные вопросы