2016-05-06 4 views
11

प्रोजेक्ट का गिट रेपो: https://github.com/tombusby/docker-laravel-experiments (लेखन के समय HEAD 823fd22 है)। एक ताजा laravel परियोजनाडॉकर php-fpm/nginx set-up: php-fpm खाली 500 फेंक रहा है, कोई त्रुटि लॉग

nginx: 
    image: nginx:stable 
    volumes: 
    - ./nginx.conf:/etc/nginx/conf.d/default.conf:ro 
    volumes_from: 
    - php 
    links: 
    - php:php 
    ports: 
    - 80:80 

php: 
    image: php:5.6-fpm 
    volumes: 
    - ./src:/var/www/html 
    expose: 
    - 9000 

src में/मैं बना लिया है:

यहाँ मेरी डोकर-compose.yml है। यह सभी सही ढंग से कार्य करता है अगर मैं मूल echo "hello world"; के साथ index.php को स्वैप करता हूं और यदि मैं echo "called";exit(); का उपयोग करता हूं तो मैं लार्वेल के index.php का उस भाग को निष्पादित कर सकता हूं।

यह लाइन 53 में मर जाता है:

$response = $kernel->handle(
    $request = Illuminate\Http\Request::capture() 
); 

मुझे पता नहीं क्यों ऐसा होता है, और मुझे docker exec -it <cid> bash का उपयोग कर त्रुटि लॉग के लिए मेरे php-एफ पी एम कंटेनर के आसपास देखने के लिए कोशिश की है। सभी लॉग stderr/stdout (जिसे डॉकर द्वारा एकत्र किया जाता है) पर रीडायरेक्ट किया जाता है।

यहाँ उत्पादन कि डोकर एकत्र करता है:

php_1 | 172.17.0.3 - 06/May/2016:12:09:34 +0000 "GET /index.php" 500 
nginx_1 | 192.168.99.1 - - [06/May/2016:12:09:34 +0000] "GET /index.php HTTP/1.1" 500 5 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.94 Safari/537.36" "-" 

आप देख सकते हैं "500" मुझे बाहर काम क्यों कोई त्रुटि हुई थी मदद करने के लिए काफी कुछ नहीं करता है, लेकिन मैं के किसी भी तरह से नहीं मिल सकता है स्टेक ट्रेस या उचित त्रुटि लॉग की तरह कुछ भी प्राप्त करना जो अपाचे के PHP एक्सटेंशन का उत्पादन होता।

+0

मैं एक _very_ समान मुद्दे का सामना करना पड़ रहा हूँ ... क्या तुमने कभी का मूल कारण मिला probl उन्हें? – chrisvdb

+1

स्वीकृत उत्तर आपकी समस्या का समाधान करेगा। आधिकारिक डॉकर iamge से डिफ़ॉल्ट php-fpm कॉन्फ़िगरेशन में त्रुटियां बंद हैं। यदि आप इसे 'ini_set' या इसी तरह से सक्षम करने का प्रयास करते हैं तो php-fpm उसे अनदेखा करता है। आपको इसे php_admin_flag [log_errors] 'का उपयोग करके php-fpm कॉन्फ़िगरेशन फ़ाइल में सेट करने की आवश्यकता है। मैंने ऐसा किया है कि मेरे डॉकर कम्पोज़ को एक कॉस्टॉम php-fpm कॉन्फ़िगरेशन फ़ाइल को मौजूदा पढ़ने के लिए केवल एक ही वॉल्यूम के रूप में माउंट करें। –

+0

इसके अलावा, यदि यह प्रश्न आपके पास एक समस्या का वर्णन करता है, तो अपवॉट्स की हमेशा सराहना की जाती है;) –

उत्तर

12

freenode पर ## php में हमारी चर्चा के अनुसार ...

आपका मुद्दा यह है कि php.ini सेटिंग "log_errors" बंद करने के लिए सेट कर दिया जाता है।

अपने विकल्प हैं:

  • सेट log_errors php.ini में = पर
  • सेट php_admin_flag [log_errors] = पर अपने पूल config में (php:5.6-fpm के आधार पर डोकर कंटेनर फ़ाइल /usr/local/etc/php-fpm.conf में है कि के लिए)
  • या संभवतः सेट log_errors = .user.ini में (php के प्रति-निर्देशिका config, समान .htaccess करने के लिए) पर
+1

अंततः कुछ काम करता है, मैं इसे बहुत लंबे समय से खोज रहा हूं! 'php_admin_flag [log_errors] = ऑन ' – peedee

0

जैसा कि मैं देख सकता हूं कि मैक द्वारा आपका अनुरोध चल रहा है, क्या मैक पर भी डॉकर वातावरण स्थापित है? यदि आप कर सकते हैं, तो php-fpm कंटेनर पर बैश चलाकर, उजागर मात्रा में लिखने का प्रयास करें? (कंटेनर पर /var/www/html)

+0

यह मुद्दा नहीं है। सब कुछ मूल हैलो वर्ल्ड ऐप के लिए सही तरीके से काम कर रहा है। मेरा मुद्दा यह है कि मुझे 500 मिलते हैं, और मैं यह पता लगाने के लिए लॉग देखना चाहता हूं कि ऐसा क्यों हुआ। मुझे कोई लॉग नहीं मिल रहा है। –

+0

"हैलो वर्ल्ड ऐप" के लिए आपका क्या मतलब है? –

+0

के रूप में, "हैलो वर्ल्ड": –

संबंधित मुद्दे