2013-05-23 2 views
6

के साथ सेट अप करना मैं php-sdk-gae के अंदर एक हैलो वर्ल्ड नमूना बंडल के साथ symfony2 चलाने की कोशिश कर रहा हूं।php-sdk-gae को symfony2

मैं https://developers.google.com/appengine/docs/php/ में दिए गए निर्देशों का अनुसरण कर रहा हूँ और मैं विकास नियंत्रक के साथ डेमो चला सकते हैं (यानी:

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 

यह ठीक काम करता है, और मैं प्राप्त करने में सक्षम हूँ: निम्नलिखित के रूप में app.yaml को विन्यस्त एक नमस्ते विश्व सर्वर और भार/हैलो/विश्व पेज

लेकिन जब मैं उत्पादन नियंत्रक (app.php बजाय app_dev.php), मैं कोई आंतरिक सर्वर त्रुटि मिल के साथ इसे चलाने के लिए प्रयास करें।

Request URL:http://mysite.local:8080/hello/World 
Request Method:GET 
Status Code:500 Internal Server Error 
चलाने के बाद

केवल सुराग कंसोल विंडो जहाँ मैं सर्वर का शुभारंभ किया, लाइनों दिखाने में है ...

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

अगर मैं app.php फाइलों में कुछ परिवर्तन करना, मुझे लगता है कि यह AppKernel निम्नलिखित के साथ ठीक काम करता है लोडिंग लाइनें:

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

लेकिन उत्पादन वातावरण ('प्रोड', झूठी) के लिए डिफ़ॉल्ट कॉन्फ़िगरेशन के साथ नहीं।

मैं इस आदेश के साथ GAE सर्वर की शुरूआत कर रहा हूँ: google_appengine/dev_appserver.py --php_executable_path =/घर/जॉन/php-sdk-gae/php-5.4.15/INSTALLDIR/bin/php-cgi HelloWorld/

मैं जीएई में नया हूं, और मुझे आश्चर्य है कि इस त्रुटि के बारे में कुछ और जानकारी प्राप्त करने के लिए मुझे लॉग कहां मिल सकता है।

+0

कृपया अपने ऐप/लॉग/prod.log के कुछ हिस्सों को प्रदान करें। http 500 उत्पादन में अपवाद के कारण होना चाहिए ... कौन सा? – nifr

+0

सिम्फनी का कौन सा संस्करण आप उपयोग कर रहे हैं? – nifr

+0

मैं सिम्फनी 2.2 – jonaguera

उत्तर

-1

कैशिंग के साथ भी एक समस्या है।

शायद समस्या यह है कि मैंने स्थानीय संस्करण में डेवलपमेंट संस्करण के साथ एक परियोजना की कोशिश की है, ठीक है। और जब इसे जीएई में तैनात किया जाता है तो यह विफल हो जाता है।

शायद इससे मदद मिलती है। http://www.ideato.it/planet-ideato/symfony2-su-google-app-engine/

3

आपके उत्पादन वातावरण में कोई अपरिचित अपवाद नहीं है। Http 500 त्रुटि के कारण बताता है।

मुझे जल्दी से समझाने AppKernel::__construct

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

पहला तर्क वातावरण है चलो, दूसरा एक डिबग विकल्प है।

यदि आप सही पर डीबग सेट करते हैं, तो सिम्फनी अपवादों को पकड़ने और आपको एक अच्छा स्टैक्र्रेस दिखाने की कोशिश करेगा।

यह पहला और तीसरा मामला शामिल है जहां आप http 500 त्रुटि प्राप्त नहीं करते हैं (बिना किसी अपवाद के कारण)।

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

अब आप बताते हैं कि डीबग सेट के साथ देव वातावरण में त्रुटि फेंक नहीं है।

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

यह देव वातावरण में इसका मतलब है कोई अपवाद नहीं

अब आपको यह पता लगाने के लिए उत्पादन लॉग फ़ाइल जांचनी है कि कौन सा अपवाद फेंक दिया गया है।

अपने खोल में उस फ़ाइल में किए गए लाइव परिवर्तनों को देखने के लिए tail -f का उपयोग करें (यानी बैश) या यदि उपलब्ध नहीं है तो फ़ाइल को अपने संपादक में खोलें और अंत में अपवाद देखें।

tail -f app/logs/prod.log 

symfony2 मानक संस्करण लॉगफ़ाइल में

app/logs/%kernel.environment%.log 

में पाया जा सकता ...% kernel.environment% देव/prod/परीक्षण में से एक

+0

का उपयोग कर रहा हूं मैंने इस लॉग (लॉग/prod.log और logs/dev.log) में गोता लगाने की कोशिश की है, लेकिन, जब मैं त्रुटि को बल देता हूं, prod.log में कोई पंक्ति नहीं है मैं dev मोड में कर्नेल चलाता हूं, dev.log में कुछ पंक्तियां हैं, लेकिन कोई त्रुटि रेखा नहीं है, क्योंकि dev enviroment में कोई त्रुटि नहीं है। यह "हैलो वर्ल्ड!" दिखाता है संदेश सफलतापूर्वक। मुझे संदेह है कि उत्पादन वातावरण में कुछ कार्रवाई है जो जीएई (कैशिंग फाइलों या इस तरह की चीजों की तरह कुछ) के साथ नहीं किया जा सकता है – jonaguera

+0

कृपया सुनिश्चित करें कि आपका मार्ग हैलो वर्ल्ड आउटपुट! केवल routing_dev.yml में कॉन्फ़िगर नहीं किया गया है - क्या आप इसकी पुष्टि कर सकते हैं? – nifr

+0

मैं इसकी पुष्टि कर सकता हूं। यह routing.yml में है। यह AppKernel ('prod', true) कॉन्फ़िगरेशन के साथ काम करता है, लेकिन ऐप कर्नेल ('प्रोड', झूठी) – jonaguera

1

समस्या से संबंधित है के साथ किया जा रहा है .htaccess फ़ाइल सिम्फनी 2.2

के साथ भेजी गई फ़ाइल मैं सिम्फनी 2.0 में किसी भी समस्या के बिना उपयोग कर सकता हूं, और मेरा आवेदक Symfony 2.2 के साथ आयन भी काम करता है अगर मैं सिम्फनी 2.2

के साथ भेजे गए वेब/.htaccess फ़ाइल को प्रतिस्थापित करता है, तो यह डुप्लिकेट सामग्री (/app.php से बचने के लिए किए गए परिवर्तन से संबंधित कुछ है)/कुछ और/कुछ), क्योंकि सिम्फनी 2.2 के बाद, /app.php अनुरोध (301) अनुरोध करता है।

0

मुझे विश्वास है कि समस्या GAE द्वारा लगाई गई फाइल सिस्टम पर लेखन समर्थन की कमी है। साथ ही, सिम्फनी tempnam() फ़ंक्शन पर भरोसा करता है जो 1.9.18 से कम संस्करणों में अक्षम है जो इस समय मैं सार्वजनिक रूप से उपलब्ध नहीं हूं।