2012-02-24 4 views
0

웹 서버에 최신 안정된 PyroCMS 버전을 새로 설치했습니다. 이제 세션 데이터와 관련된 PHP 오류로 인해 사이트를 거의 사용할 수 없습니다. "헤더 데이터를 수정할 수 없습니다."라이브 서버 오류가 있지만 MAMP가 아닙니다.

CMS가 MAMP에서는 오류없이 실행되지만 라이브 서버에서는 실행되지 않는 이유는 무엇입니까?

+0

덕분에, 나는 아래의 답변을 본 적이 및 오류보고와 함께 연주를 살펴해야합니다. 덧붙여 말하자면, 나는 이것을 테스트하기 위해 다른 서버에 접근 할 수 있었고 아무런 문제가 없었습니다. –

답변

0

도움 주셔서 감사합니다. 결국 세션과 관련된 문제를 발견했습니다. 라이브 서버에 session.autostart=on이 있습니다. 이 기능을 끄면 문제가 해결되었습니다.

0

오류 표시와 관련하여 서버 구성이 서로 달라야합니다.

초기 페이지에 error_report('E_ALL'); (대부분 index.php 일 가능성이 있음)을 배치하거나 CMS에 오류 표시를 사용 중지 할 수있는 방법을 찾아보십시오 (일부 구성이 있어야 함).

php.ini 파일에 offdisplay_errors 지시어를 넣으십시오.

0

프로덕션 환경으로 만들기 전에 로컬 컴퓨터에서 오류를 발견 할 수 있도록 PHP를 설정해야합니다. 현재이 방향을 잘못 잡은 것 같습니다!

MAMP의 dev 설치는 php.ini에서 error_reporting을 E_ALL로 설정하고 display_errors를 'on'으로 설정해야합니다. 프로덕션 웹 서버는 최소한 display_errors가 'off'로 설정되어 있어야합니다 (로그 파일로 보내지는 것을 확인하십시오 - 손실하지 않으려 고합니다). error_reporting을 E_ERROR로 줄일 수도 있습니다.

E_ERROR로 설정하면 프로덕션 서버의 로그가 깨끗하게 유지되므로 문제가 발생할 때 큰 문제를 발견 할 수 있습니다. 특히 PHP 알림이나 경고를 생성하는 라이브러리 나 CMS를 사용하는 경우에는이 작업을 수행 할 수 있습니다. 또는 E_ALL을 사용하여 모든 것을 로그에 저장하고 표시되는 모든 항목을 체계적으로 정렬 할 수 있지만 업그레이드하기가 쉽지 않으면 서 수정할 수있는 코드를 사용해야합니다. 프로덕션 서버의 환경이 로컬 서버와 다를 수 있으며 예상치 못한 이유로 환경이 중단 될 수 있기 때문에 매우 유용 할 수 있습니다.

덧붙여 말하자면, '헤더 데이터를 수정할 수 없습니다'라는 오류는 이것이 주석이 무엇이든 PyroCMS의 안정 버전이 아니라는 것을 의미합니다!

+0

PyroCMS는 실제로 내장 된 오류 수준을 제어 할 수 있습니다. 'PYRO_ENV'라는 아파치 환경 변수가 있는데, DEVELOPMENT, STAGING 또는 PRODUCTION 일 수 있으며 기본 설치에서 DEVELOPMENT로 설정됩니다. [표준 .htaccess 파일]에 행이 있습니다 (https://github.com/pyrocms/pyrocms/blob/2.1/develop/.htaccess)를 사용하면 제작에 대한 주석을 달 수 있습니다. [Display_errors] (http://uk3.php.net/manual/en/errorfunc.configuration.php#ini.display-errors)는 [index.php]의 '오류보고'섹션을 통해 사용/사용 중지됩니다 (https : //github.com/pyrocms/pyrocms/blob/2.1/develop/index.php) –

1

나는 동일한 문제가있었습니다. PyroCMS는 PHP 5.4에서 MAMP가 기본적으로 사용하는 것과 관련하여 문제가있는 것처럼 보입니다. PHP 버전을 5.3으로 전환 해보십시오.

Thread with same issue

관련 문제