2012-10-29 7 views
6

टीएल; डीआर एनजिनक्स/PHP-FPM के साथ लिनक्स बॉक्स पर एक त्रुटि प्राप्त करना "सत्र शुरू करने में विफल रहा क्योंकि शीर्षलेख पहले से ही भेजे जा चुके हैं।" अपाचे स्थानीय मशीन सेटअपSymfony2: सत्र शुरू करने में विफल रहा क्योंकि शीर्षलेख पहले से ही

पर त्रुटि नहीं हो रही है इसलिए मेरी स्थानीय मशीन पर मेरे पास सिम्फनी 2 ऐप ठीक चल रहा है। कोई त्रुटि पॉप अप नहीं कर रहे हैं। लेकिन जैसे ही मैं अपने लिनक्स सर्वर को तैनात जब मैं एक नियंत्रक वर्ग

Failed to start the session because headers have already been sent. 

के भीतर एक निश्चित कार्रवाई सूचकांक कार्रवाई मैं पहले से ही

$session = $this->getRequest()->getSession(); 

और में कहा जाता है में फोन मैं इस त्रुटि मिल रही है एक ही नियंत्रक वर्ग के भीतर एक और कार्रवाई मैं इसे फिर से बुला रहा हूँ। त्रुटि पॉप अप होता है जब मैं एक

$session->set('foo', $bar); 

मेरी टहनी में कोशिश मैं इतना

<form id='blahblah'> 
    .... some fields here ..... 
    <button type='submit' formaction='{{path('2ndAction')}}'></a> 
</form> 
अपने स्थानीय मशीन पर

तो कुछ ऐसे स्वरूप द्वारा कार्रवाई और एक formaction संपत्ति के साथ एक बटन फोन कर रहा हूँ, चल अपाचे सब ठीक चल रहा है। लिनक्स सर्वर Nginx और php-fpm का उपयोग कर रहा है और यह किसी कारण से क्रैश हो रहा है। मैंने phpInfo() की जांच की और सत्र ऑटो स्टार्ट को बंद कर दिया गया है। सुनिश्चित नहीं है कि यह एक Nginx/php-fpm समस्या है या नहीं, लेकिन मैंने सोचा कि यह प्रासंगिक जानकारी हो सकती है।

यहाँ नियंत्रक घोषणा, indexAction() है, और मेरे 2ndAction()

use Symfony\Bundle\FrameworkBundle\Controller\Controller; 
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route; 
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template; 
use Symfony\Component\HttpFoundation\Request; 
use Symfony\Component\HttpFoundation\Response; 
use Symfony\Component\HttpFoundation\Session\Session;  
use CBSi\Utils\HTTPUtils\CURLUtil; 

class StartController extends Controller 
{ 
    /** 
    * @var CurlUtil $curlUtil 
    */ 
    private $curlUtil; 

    /** 
    * @var AccessControl $accessControl 
    */ 

    private $accessControl; 

    /*placeholder for request object*/ 
    private $requestHolder; 


    /** 
    * @Route("/path/for/action/one", name="start") 
    * @Template() 
    */ 


public function indexAction() 
{ 
$session = $this->getRequest()->getSession(); 
$this->curlUtil = $this->get('curlUtil'); 
$this->requestHolder= Request::createFromGlobals(); 

// Some logic is done here 


return $this->render('ListEngagementBundle:Start:start.html.twig'); 

} 

/** 
* @Route("/path/to/second/action", name="2ndAction") 
* @Template 
*/ 
public function 2ndAction(){ 
    $session = $this->getRequest()->getSession(); 
    $this-> curlUtil = $this->get('curlUtil'); 
    $this->requestHolder= Request::createFromGlobals(); 

    //Some logic is done here to get the data for the session variable 

     $bar= logic output 

       $session->set('foo', $bar); 

    return $this->redirect($this->generateUrl('start')); 
} 
} 

आप अधिक जानकारी है कि मैं प्रदान कर सकते हैं मैं :) जाएगा

+1

यह http: // stackoverflow देखें।कॉम/प्रश्न/8028957/चेतावनी-शीर्षलेख-पहले से भेजे गए-इन-php –

उत्तर

4

तो मैं यह समझ से बाहर की जरूरत है। 2 कार्रवाई जहाँ मैं

$session->getRequest()->getSession(); 

बुला रहा था मैं

$session = new Session(); 
$session->start(); 

जाओ आंकड़ा है कि बदलना पड़ा। : पी

+0

हाँ, जब आप S2.0 और S2.1 की तुलना करते हैं तो सत्रों की बात आती है, तो कुछ बदलावों से अधिक लगता है;) –

4

मुझे कुछ त्रुटि मिली है। लेकिन मेरे मामले में मैंने < ?php टैग से पहले AppKernel.php में कुछ रिक्त स्थान रखे हैं। तो अगर किसी और को यह त्रुटि मिलती है, तो चेकआउट करें यदि आपके पास प्रत्येक .php फ़ाइल की पहली पंक्ति में पहले कुछ रिक्त स्थान या टैब हैं जो सत्र शुरू होने से पहले लोड हो जाते हैं।

0

मैं यह त्रुटि संदेश हर बार जब मैं सिम्फोनी कंसोल का उपयोग मेरी डेटाबेस स्कीमा अद्यतन करने के लिए करने की कोशिश की हो रही है और था जब मैं संगीतकार का उपयोग कर नए निर्भरता स्थापित करने की कोशिश की:

[RuntimeException]

Failed to start the session because headers have already been sent by "/var  
/www/html/pulsar283/src/MyService/Local/Brasil.php" at line 153. 

तो, मैं फ़ाइल की जांच के लिए गया, और, लाइन 152 पर मुझे एक "?>" (PHP बंद टैग) मिला।

तो, मैं सिर्फ php बंद टैग को हटा देता हूं और त्रुटि फिर से दिखाई नहीं देती है!

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