2011-01-06 12 views
1

Ich benutze Zend Framework BTW und ich habe eine ZendX_JQuery_Form_Element_AutoComplete implementiert. Es funktioniert wie erwartet auf meinem lokalen System, aber auf dem Live-Server, wenn ich anfange zu tippen, gibt es mir einen 500 Internal Server Error. Ich habe dieses Problem seit 3 ​​Tagen gehabt und ich habe gegoogelt und ziemlich wenige Lösungen gelesen.500 Interner Server Fehler auf dem Server aber funktioniert auf dem Entwicklungssystem

Hoffe, dass jemand helfen kann.

Sowohl Server als auch dev System laufen Ubuntu und ich habe versucht, das gleiche Setup auf beiden Systemen zu halten.

Edit:

ich die Links und die Erlaubnis eingecheckt haben, wie vorgeschlagen, und das Problem immer noch besteht. Also, was ich tat, war buchstäblich die Code-Zeile-für-Zeile zu laufen, und ich kam in die folgende Zeile in der Steuerung, die den Fehler auslöst, 500:

$response = $groupsmapper->search($this->getRequest()->getParam('term')); 

unten ist die komplette Funktion

public function getallgroupnamesAction() 
{ 
    $this->_helper->viewRenderer->setNoRender(); 
    $this->_helper->getHelper('layout')->disableLayout(); 
    $groupsmapper = new Application_Model_GroupsMapper(); 

    $response = $groupsmapper->search($this->getRequest()->getParam('term')); 
    $json = Zend_Json::encode(array_values($response)); 
    echo $json; 
} 

und das Suchverfahren des groupsmapper ist wie so

public static function search($term) 
{ 
    $groupsmapper = new Application_Model_GroupsMapper(); 
    $response = $groupsmapper->getDbTable()->fetchAll(
        $groupsmapper->getDbTable() 
        ->select() 
        ->distinct() 
        ->from(array('groups'), array('group_name')) 
      ); 

    $no_groups = count($groups_array = $response->toArray()); 

    for ($x = 0; $x < $no_groups; $x++) 
    { 
     $groups[] = $groups_array[$x]['group_name']; 
    } 


    $filter = function($group) use ($term) 
    { 
     if(stristr($group, $term)) 
      return true; 
     return false; 
    }; 
    return array_filter($groups, $filter); 
} 

ich wirklich hoffe, euch etwas erkennen kann, andere weisen die Alternativen sind ein ausgewähltes Element verwenden, aber die Liste wird zu lang oder Lassen Sie den Benutzer den Namen eingeben und klicken Sie auf eine Schaltfläche zum Absenden, um zu suchen. Das ist auch nicht ideal, da die Schreibweisen nicht üblich oder leicht herauszufinden sind, daher wird die Abfrage möglicherweise nicht immer ausgeführt.

+5

Was sagt das Fehlerprotokoll tatsächlich über die Details der Fehlermeldung? Ohne weitere Details ist es unmöglich zu sagen. – artlung

+0

Einverstanden. "Error 500" ist völlig generisch. Sie müssen sich das Fehlerprotokoll des Servers ansehen, um zu sehen, was die eigentliche Fehlermeldung ist. – Spudley

Antwort

1

Überprüfen Sie die chmod für die Datei (en), die auf dem Server ausgeführt werden. Meine Vermutung ist, dass die Berechtigungen auf etwas gesetzt wurden, das von Ihrem Hosting nicht genehmigt wird.

0

versuchen Sie, Ihre Pfade zu überprüfen. Vielleicht sind deine Pfade auf dem lokalen Server richtig, aber auf dem richtigen Server ist dieser Pfad falsch. Die gute Übung, absolute Pfade zu verwenden. In Zend Framework in index.php können Sie ROOT_PATH und andere Pfade deklarieren. Wenn Sie auf anderen Seiten einige Dateien einschließen, verwenden Sie diese globalen Variablen. Der Server kann die Datei auf dem Server nicht finden (500 interner Fehler). Entschuldigung für mein Englisch.

0

Sie können kommentieren Sie die folgenden Zeilen von Code, um die Callback-Funktionen entfernen

/* //lines to comment 
$filter = function($group) use ($term) 
{ 
    if(stristr($group, $term)) 
     return true; 
    return false; 
}; 
return array_filter($groups, $filter); 
*/ 

Ihre eigene Funktion einbeziehen und über die Callback-Funktion übergeben sicher wird es funktionieren. Ich hatte das gleiche Problem mit den folgenden Zeilen überwunden.

//New lines to include 
    function filtergroup() 
    { 
     return true; 
    } 

    return array_filter($groups, $filtergroup); 
Verwandte Themen