Я создал веб-приложение в рамках codeigniter . Я разрабатывал приложение на компьютере с Windows, и окончательная версия отлично работает на одном и том же (то есть, окна, чтобы быть точным ). Теперь мне нужно развернуть приложение на сервере ubuntu. После первоначального входа в систему, который требуется в приложении, он не отображает другую страницу. При проверке консоли я нашел это
[09:08:37.255] GET http://localhost/sac.org/index.php/member [HTTP/1.0 500 Internal Server Error 17ms]
Я думаю, что это очень распространенная проблема, как видно из этих вопросов:
Codeigniter Framework не работает на Linux
Код Windows не работает на Linux
загрузка кодаигнита не работает на 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.