2013-05-23 8 views
6

ile php-sdk-gae kurma.Ben php-sdk-GAE'nin içinde bir merhaba dünya örneği paket ile Symfony2'ye yönetmeye çalışıyorum Symfony2'de

ben https://developers.google.com/appengine/docs/php/ sunulan talimatları takip ediyorum ve ben geliştirme kontrolörü ile demo çalıştırabilirsiniz (yani: Düzgün çalışır ve

application: helloworld 
version: 1 
runtime: php 
api_version: 1 

handlers: 
- url: /bundles 
    static_dir: helloWorld/web/bundles 

- url: /favicon.ico 
    static_files: helloWorld/web/favicon.ico 
    upload: helloWorld/web/favicon.ico 

- url: /.* 
    script: helloWorld/web/app_dev.php 

ben almak mümkün: Aşağıdaki şekilde app.yaml yapılandırılması bir Merhaba Dünya sunucusu ve yük/merhaba/Dünya sayfa

Ama üretim kontrolörü (app.php yerine app_dev.php), bir iç sunucu hatası alıyorum ile çalıştırmak için deneyin.

Request URL:http://mysite.local:8080/hello/World 
Request Method:GET 
Status Code:500 Internal Server Error 
çalıştırdıktan sonra

tek ipucu ben app.php dosyalarındaki bazı değişiklikler yaparsanız

ERROR:root:php failure (255) with: 
Status: 500 Internal Server Error 
X-Powered-By: PHP/5.4.15 
Content-type: text/html 

, ben AppKernel aşağıdaki ile çalışıyor fark ... Ben satırları gösteren sunucu başlattı konsol penceresinde olduğu yükleme hatları: üretim ortamı ('eşya', false) için varsayılan yapılandırma ile

$kernel = new AppKernel('prod', true); 
$kernel = new AppKernel('dev', false); 
$kernel = new AppKernel('dev', true); 

Ama.

Ben bu komutla GAE'nin sunucusunu başlatma ediyorum: google_appengine/dev_appserver.py --php_executable_path =/home/Jon/php-sdk-gae/php-5.4.15/installdir/bin/php-cgi helloWorld/

Ben GAE yeniyim ve ben bu hata hakkında biraz daha bilgi almak için günlükleri nerede bulabilirim acaba.

+0

Lütfen uygulamanızın/logların/prod.log'un bazı bölümlerini sağlayın. http 500, üretimdeki bir istisnadan kaynaklanmalı ... hangisi? – nifr

+0

Symfony hangi sürümünü kullanıyorsunuz? – nifr

+0

Symfony 2.2 kullanıyorum – jonaguera

cevap

3

üretim ortamında yakalanmamış istisna vardır. Http 500 hatası nedeni budur.

beni çabuk AppKernel::__construct

$kernel = new AppKernel($environment, $debug); 

İlk argüman ortamıdır açıklayalım, ikincisi ayıklama seçenektir.

true olarak hata ayıklama ayarlarsanız, symfony durumları yakalamak ve sana güzel stracktrace göstermeye çalışacağım.

Bu, 'un'un bulunmadığı ilk ve üçüncü durumu kapsar (yakalanmamış bir istisna nedeniyle).

$kernel = new AppKernel('prod', true); 
$kernel = new AppKernel('dev', true); 

Artık, hata ayıklama öğesi false olarak ayarlanmış dev bir ortamda atılmadığını bildirdiniz.

$kernel = new AppKernel('dev', false); 

Bu da bir istisnaolduğu dev ortamında gelir.

Şimdi atılmış edildiği istisna öğrenmek için üretim günlük dosyasını kontrol etmek zorunda.

kullanın tail -f sizin kabuğunda o dosyada yapılan değişiklikleri görmek (yani bash) ya da mevcut değilse Düzenleyicinizde dosyayı açın ve sonunda istisnalar aramaya.Symfony2 standart edition logfiles ise

tail -f app/logs/prod.log 

% kernel.environment%

+0

Bu günlükleri (logs/prod.log & logs/dev.log) dayamaya çalıştım ama hatayı zorladığımda, prod.log içinde hiçbir satır yok Dev modda çekirdeği çalıştırıyorum, dev.log'daki bazı satırlar var, ama hata satırları yok, çünkü dev çevrede hata yok. "Merhaba Dünya!" mesaj başarıyla. GAE ile yapamayacağınız bir üretim eylemi olduğundan şüpheleniyorum (dosya veya benzeri dosyaları önbelleğe alma gibi bir şey) – jonaguera

+0

Lütfen rotamızın Hello World'ü çıkardığından emin olun! sadece routing_dev.yml olarak yapılandırılmamıştır - bunu onaylayabilir misiniz? – nifr

+0

Bunu doğrulayabilirim. Bu routing.yml içinde. AppKernel ('prod', true) yapılandırmasıyla çalışır, ancak AppKernel ('prod', false) – jonaguera

1

sorun ilişkilidir dev/eşya/testin biri olmak ...

app/logs/%kernel.environment%.log 

bulunabilir Symfony 2.2

Ben herhangi bir sorun symfony 2.0 bir uygulama olmadan kullanabilir ve benim applicat sevk .htaccess dosya Symfony 2.2 ile birlikte Symfony 2.2 ile birlikte gönderilen web/.htaccess dosyasını değiştirdiğimde, yinelenen içerikten kaçınmak için yapılan değişiklikle ilgili bir şey olabilir (/app.php/bir şey ve/bir şey), çünkü Symfony 2.2'den beri, /app.php isteği (301) yönlendiriyor.

0

Problemin GAE tarafından dayatılan dosya sistemi üzerinde yazma desteğinin olmaması olduğuna inanıyorum. Ayrıca, symfony, bunu yazdığım anda halka açık olmayan 1.9.18'den daha düşük sürümlerde devre dışı olan tempnam() işlevine güveniyor gibi görünüyor.

İlgili konular