我在codeigniter框架中做了一个web应用程序。 我正在Windows机器上开发应用程序,并且最终版本在相同的情况下运行得非常好(即,窗口, 准确地说是wamp )。 现在我需要在Ubuntu服务器上部署应用程序。 在应用程序中需要初始login后,它不会显示任何其他页面。在检查控制台时,我发现这一点
[09:08:37.255] GET http://localhost/sac.org/index.php/member [HTTP/1.0 500 Internal Server Error 17ms]
我认为这是一个非常普遍的问题,从这些问题可以明显看出:
codeigniter框架不能在linux上工作
Windows代码不能在linux上工作
codeigniter上传不能在Linux上工作
这里也是Codeigniter的问题
还有很多。 这些线程中提到的答案不适合我。 有没有办法解决这个问题?
我的代码示例是
<?php class member extends CI_Controller{ public $data1 = ""; public function __construct(){ parent::__construct(); $this->load->helper('form'); $this->load->helper('url'); $this->load->library('session'); $this->load->library('table'); $this->load->model('membermodel'); $this->data1 = $this->membermodel->getYearList(); } private function accesscheck(){ $privilege = $this->session->userdata('privilege'); if($privilege=='2'||$privilege=='1'){ return "True"; } } public function index(){ echo phpinfo(); die(); if($this->accesscheck()){ $data = array('years'=>$this->membermodel->getYearList()); $notifications = $this->membermodel->numberOfNotifications(); $this->session->set_userdata('notifications',$notifications); $this->load->view('templates/header',$data); $this->load->view('templates/menu'); $this->load->view('members/home',$data); $this->load->view('templates/footer'); } else{ $this->load->view('templates/accessErr'); }} public function year($year){ if($this->accesscheck()){ $this->getTable($year,"FullList"); }else{ $this->load->view('templates/accessErr'); }} public function positive($year){ if($this->accesscheck()){ $this->gettable($year,"positive"); }else{ $this->load->view('templates/accessErr'); } } public function negative($year){ if($this->accesscheck()){ $this->getTable($year,"negative"); } else{ $this->load->view('templates/accessErr'); }} public function neutral($year){ if($this->accesscheck()){ $this->getTable($year,"neutral"); }else{ $this->load->view('templates/accessErr'); }} public function registered($year){ if($this->accesscheck()){ $this->gettable($year,"register"); }else{ $this->load->view('templates/accessErr'); }} public function uncontacted($year){ if($this->accesscheck()){ $this->getTable($year,"uncontacted"); }else{ $this->load->view('templates/accessErr'); }} public function unsearched($year){ if($this->accesscheck()){ $this->getTable($year,"unsearched"); }else{ $this->load->view('templates/accessErr'); }} public function notfound($year){ if($this->accesscheck()){ $this->gettable($year,"notFound"); }else{ $this->load->view('templates/accessErr'); }} public function Paid($year){ if($this->accessCheck()){ $this->getTable($year,"Paid"); }else{ $this->load->view('templates/accessErr'); }} public function getProfile(){ $id=$this->input->get('id'); $data = $this->membermodel->getPrimaryInfo($id); echo json_encode($data); } public function getTable($year,$list){ $this->data1 = $this->membermodel->getYearList(); if(in_array(array('alumSince'=>$year),$this->data1)){// think of a get around $data['table'] = $this->membermodel->getTable($year,$list); $data['year'] = $year; $this->load->view('templates/header'); $this->load->view('templates/menu'); $this->load->view('members/fullList',$data); $this->load->view('templates/footer'); }else{ $this->load->view('templates/header'); $this->load->view('templates/badParam'); $this->load->view('templates/footer'); } } public function search(){ if($this->session->userdata('privilege')){ $this->load->view('templates/header'); $this->load->view('templates/menu'); $this->load->view('members/search'); $this->load->view('templates/footer'); } else $this->load->view('templates/accessErr'); } public function generate_result(){ if($this->session->userdata('privilege')){ $data = $this->membermodel->search(); if($data){ $this->load->view('templates/header'); $this->load->view('templates/menu'); $this->load->view('members/search_result',$data); $this->load->view('templates/footer'); } }else{ $this->load->view('templates/accessErr'); } } public function updateProfile(){ if($this->accessCheck()){ if($this->input->post('submit')){ if($msg = $this->membermodel->updateProfile()){ header('Refresh:2,url='.$_SERVER["HTTP_REFERER"]);//security issues here echo $msg; } } }else{ $this->load->view('templates/accessErr'); } } public function updateSearch(){ if($this->accessCheck()){ $alumid = $this->input->get('alumid'); $search = $this->input->get('search'); $result = $this->membermodel->updateSearch($alumid,$search); echo $result; } else{ $this->load->view('templates/accessErr'); } } public function updateResponse(){ if($this->accessCheck()){ $alumid = $this->input->get('alumid'); $response = $this->input->get('response'); $result = $this->membermodel->updateResponse($alumid,$response); echo $result; } else{ $this->load->view('templates/accessErr'); } } public function updatePayment(){ if($this->accessCheck()){ $alumid = $this->input->get('alumid'); $dateofpayment = $this->input->get('dateofpayment'); $referenceNo = $this->input->get('referenceNo'); $paymentAmt = $this->input->get('paymentAmt'); $remarks = $this->input->get('remarks'); $result = $this->membermodel->updatePayment($alumid,$dateofpayment,$referenceNo,$paymentAmt,$remarks); echo $result; }else{ $this->load->view('templates/accessErr'); } } public function updateRegister(){ if($this->accessCheck()){ $register = $this->input->get('register'); $alumid = $this->input->get('alumid'); $result = $this->membermodel->updateRegister($alumid,$register); echo $result; }else{ $this->load->view('templates/accessErr'); } } public function addCallDetail(){ $alumid = $this->input->get('alumid'); date_default_timezone_set('Asia/Calcutta'); $date = date('Ym-d'); $time = date('H:i:s'); echo $this->membermodel->addCallDetail($alumid,$date,$time); } public function updateCall(){ $remarks = $this->input->get('remarks'); $nextdate = $this->input->get('nextdate'); $nexttime = $this->input->get('nexttime'); $callid = $this->input->get('callid'); $alumid = $this->input->get('alumid'); echo $this->membermodel->updateCall($remarks,$nextdate,$nexttime,$callid,$alumid); } public function updateMember(){ $name = $this->input->get('name'); $age = $this->input->get('age'); $gender = $this->input->get('gender'); $relationship = $this->input->get('relationship'); $alumid = $this->input->get('alumid'); echo $this->membermodel->updateMember($name,$age,$gender,$relationship,$alumid); } public function removeAccompaniant(){ $memberid = $this->input->get('id'); $alumid = $this->input->get('alumid'); echo $this->membermodel->removeAccompaniant($memberid,$alumid); } public function updateRemark(){ $remark = $this->input->get('remark'); $alumid = $this->input->get('alumid'); echo $this->membermodel->updateRemark($alumid,$remark); } public function getNetworkingSummary($year){ $userid = $this->membermodel->getUserId(); if($data = $this->membermodel->getNetworkingSummary($userid,$year)) echo json_encode($data); //echo json_encode($data['msg']="boo"); } public function getNotifications(){ if($this->accessCheck()){ $data['result'] = $this->membermodel->getNotifications(); $this->load->view('templates/header'); $this->load->view('templates/menu'); $this->load->view('templates/dummyMember',$data); $this->load->view('templates/footer'); }else{ $this->load->view('templates/accessErr'); } } public function notificationStatus(){ $id = $this->input->get('id'); $this->membermodel->updateNotificationStatus($id); } } ?>
正如Prix所建议的,我检查了我的错误日志,发现问题是由于语法错误造成的。 我正在使用函数数组解引用 ,它已经在PHP 5.4.0中添加,但我的服务器运行PHP 5.2。
解决方案在这里
解决方案工作。 我不得不求助于这个方法,而不是升级我的PHP版本,因为服务器运行UBUNTU 12.04,而PHP 5.4没有这个版本。