지난 몇 시간 동안 나를 미치게하는 문제가 있습니다. 내 개발 컴퓨터 (Debian 8 + php-fpm 5.6.29 + Nginx/1.6.2)에서 error_reporting
지시어의 기본값을 무시할 수 없습니다.PHP-FPM이 error_reporting을 재정의 할 수 없습니까?
PHP는 패키지 내가 사용하고 있습니다 :
$ dpkg --get-selections | grep php
libapache2-mod-php5 install
php-console-table install
php5 install
php5-cli install
php5-common install
php5-curl install
php5-fpm install
php5-gd install
php5-intl install
php5-json install
php5-mcrypt install
php5-mysql install
php5-readline install
php5-xmlrpc install
php5-xsl install
다음 죽은 - 간단한 스크립트 고려 : 나는 CLI에서 실행하면
<?php
$initial_value = error_reporting(); // Just read the current value
error_reporting(E_PARSE); // Lets set it to something else.
$update_value = error_reporting(); // Read again.
printf(
"Initial value: %s\nFinal value: %s",
$initial_value,
$update_value
);
을, 그것을 작동 :
내가 PHP5-FPM에서이 작업을 실행하면$ php test.php
// output: Initial value: 22527 Final value: 4
그러나, 출력은 다음과 같습니다
Initial value: 32767 Final value: 32767
나는 시도했다 :
- 는
php.ini
내부의 값을 설정 (모두의 php.ini의 체크 단지phpinfo();
에 나열된 파일). - 임 (2 회 검사)
.user.ini
fiels - 이
error_reporting(E_PARSE)
와ini_set('error_reporting', E_PARSE);
으로 모두 시도를 사용하지. 그 지시어는 ini 파일을 오버라이드해야합니다. 맞습니까? 내가 다시 시작 PHP5-FPM 과정을 한 INI 파일에 대한 모든 편집 후 물론
(대신 다시 시작/다시로드의 시작 후 중지 및 시도)
이상한 일이 실제로 다른 매개 변수를 대체 할 수 이다 (예 : display_errors
)은 ini 파일과 ini_set
호출에서 모두 작동합니다.
그래서 지금까지 내가 무엇을 놓치고 있습니까?
저는 이것을 php7-fpm에서 실행했고 작동합니다. 어쩌면 php5-fpm 버그일까요? – apokryfos
@apokryfos dunno, 나는 php5 + fpm을 수년간 사용 해왔다. 이것이 나에게 처음 일어난 일이다! p.s : 'php7로 업그레이드'와 같은 말을하지 마십시오. 내가 할 수 있다면, 그럴거야! – Strae
최근 PHP 버전을 5.6.X-1에서 5.6.X로 업그레이드했다면 다시 다운 그레이드 할 가치가 있다고 말할 수 있습니다. 그렇지 않다면 아마도 더 미묘한 일이 벌어지고있을 것입니다. – apokryfos