2011-03-06 4 views
0

면책 조항 - 총 PHP 멍청한데 -이 문제를 디버깅하는 방법에 대한 도움말/도움말을 찾고 있습니다 ...LAMP/CakePHP quirk - 원격 서버가 아닌 로컬에서 작동합니다. 디버깅 팁?

저는 Linux/CentOS 및 MySQL에서 실행되는 PHP/CakePHP 기반 앱이 있습니다.

내 로컬 컴퓨터 (OSX Snow Leopard)에서도 실행됩니다.

그러나 앱의 작은 부분은 두 항목 사이에 일관성이 없습니다.

DB와 PHP 코드를 서버에서 로컬 컴퓨터로 복사 했으므로 싱크대에 설치되어 있습니다. 앱은 원래 다른 곳에 개발 된 다음 서버에 배포되었습니다.

다른 점은 마스터/세부 유형 페이지가 있다는 것입니다. 두 사이트 모두 마스터 파트가 정상적으로 작동하지만 세부 부품은 로컬/OSX 버전에서만 작동합니다.

DB를 검사하고 세부 레코드가 예상대로 존재하는 것 같습니다.

PHP 버전이 약간 다릅니다.

리눅스 서버 : 로컬

HP: Error parsing /usr/local/lib/php.ini on line 803 
PHP 5.2.16 (cli) (built: Mar 1 2011 11:48:38) 
Copyright (c) 1997-2010 The PHP Group 
Zend Engine v2.2.0, Copyright (c) 1998-2010 Zend Technologies 
    with eAccelerator v0.9.6.1, Copyright (c) 2004-2010 eAccelerator, by eAccelerator 
    with the ionCube PHP Loader v3.3.20, Copyright (c) 2002-2010, by ionCube Ltd. 

Server version: Apache/2.2.17 (Unix) 
Server built: Mar 1 2011 11:42:56 
Cpanel::Easy::Apache v3.2.0 rev5291 

OSX :

PHP 5.3.3 (cli) (built: Aug 22 2010 19:41:55) 
Copyright (c) 1997-2010 The PHP Group 
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies 

Server version: Apache/2.2.15 (Unix) 
Server built: Jul 1 2010 17:16:33 

내가 시도를 다시 시작 아파치, 그것은 캐싱 문제였다 경우. 나는 mysql 커맨드 라인을 통해 마스터 세부 사항을 변경하려고 시도했으며 그 변경 사항이 표시되고있다.

display_errors/display_startup_errors를 사용하려고 시도했지만 아무 것도 표시되지 않습니다.

CakePHP 디버그 팁이 있다면 궁금 할 것입니다.

내 계획은 다른 서버에 응용 프로그램을 설치하여 해당 응용 프로그램이 차이점을 식별하고 /하거나 도움이되는지 확인하는 것입니다.

$carInsuranceQuoteRequest = $this->CarInsuranceQuoteRequest->find('first', array(
     'conditions' => array(
      'CarInsuranceQuoteRequest.id' => $id, 
     ) , 
     'contain' => array(
      'Company' => array(
       'Attachment' 
      ), 
      'CarInsuranceVehicleType', 
      'CarInsuranceVehicleMake', 
      'CarInsuranceVehicleModel', 
      'CarInsuranceVehicleVersion', 
      'CarInsuranceCoverageType', 
      'CarInsuranceQuoteResponse' => array(
       'CarInsuranceQuoteSite' 
      ), 
     ), 
    )); 

견적 요청 객체가 모두 설치 수에 확인 반환되는 :

문제가 될 것으로 보인다 PHP 코드는이 (그것 CakePHP의 컨트롤러 중 하나)입니다. 하지만 견적 응답 객체는 비록 그들이 mysql db에서 괜찮은 것처럼 보이더라도 항상 리눅스 박스에서는 비어 있습니다. OSX에서는 응답이 잘 표시됩니다. 내 문제는 잘못된되는 CakePHP의 모델 때문이었고, 그래서 그것은을 탐색 할 수 않네 -

라인 (803)의 PHP 오류가

FWIW, 크리스

어떤 조언에 미리

; url_rewriter.tags: (ini file field description not available) 
url_rewriter.tags = a=href,area=href,frame=src,input=src,form=,fieldset= 

감사입니다 처지. 나는 mysql 테이블을 변경했다. 어떤 이유로 로컬 시스템의 문제를 해결했습니다.

+1

세부 정보 페이지의 컨트롤러 동작에서 코드를 게시 할 수 있습니까? 또한, php.ini 파일에 오류가 있습니다 ... – Dimitry

+0

추가되었습니다. 오, 그리고 PHP eror spot에 감사드립니다. - 저를 전혀 의미하지는 않지만 완전히 잊었습니다. ( –

답변

2

크리스, 앱에서 CakePHP의 디버그 출력을 켜기

보십시오. app/config/core 파일에서.이 설정 CakePHP의 디버그 수준과 같은 라인을 찾을 수 있어야 PHP :

Configure::write('debug', 0); 

변경 그것을 :

Configure::write('debug', 1); 

또는 더 높은 값. 이렇게하면 오류 출력이 생성되고 문제의 원인을 좁히는 데 올바른 방향으로 나아갈 수 있습니다.

프로덕션 구성을 위해 다시 0으로 설정해야합니다. 이에 대한 문서는 다음과 같습니다.

/** 
* CakePHP Debug Level: 
* * Production Mode: 
*  0: No error messages, errors, or warnings shown. Flash messages redirect. 
* 
* Development Mode: 
*  1: Errors and warnings shown, model caches refreshed, flash messages halted. 
*  2: As in 1, but also with full debug messages and SQL output. 
*  3: As in 2, but also with full controller dump. 
* 
* In production mode, flash messages redirect after a time interval. 
* In development mode, you need to click the flash message to continue. 
*/ 

유용한 오류 출력에 대해서는 Apache 오류 로그 파일을 확인하십시오.

+1

완벽 해 - 많은 분들께 감사드립니다. 세부 라인과 메시지를 받고 있습니다. 희망 사항 : –

+0

우수 뉴스 Chris ! 후속 질문에 대해서도 도움을 줄 것입니다. :-) –