[Apache] PHP-FPM에서 PHP_AUTH_USER, PHP_AUTH_PW 값의 전달이 안될 때
필요에 따라 인증을 하는데 있어 HTML 페이지를 통해 하지만 브라우저를 통해 하는 경우가 있습니다.
바로 아래와 같은 헤더를 사용하는 경우인데요.
header('HTTP/1.1 401 Unauthorized');
PHP-FPM 사용시 전달이 안되는 경우는 웹 서버 설정에서 FastCGI로 전달될 환경 변수를 설정해야 합니다.
PHP_AUTH_USER와 PHP_AUTH_PW는 HTTP 기본 인증에 사용되는 변수들입니다.
이런 값을 설정하는 방법은 웹 서버의 종류에 따라 다르며 Apache와 Nginx에서의 설정 방법.
Apache 웹서버
.htaccess 파일이나 httpd.conf 파일에 아래와 같이 작성하시면 됩니다.
RewriteEngine on
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
Nginx
nginx.conf 나 해당 사이트의 설정 파일에 아래 구문을 추가합니다.
fastcgi_pass_request_headers on;
fastcgi_param PHP_AUTH_USER $remote_user;
fastcgi_param PHP_AUTH_PW $http_authorization;
위 설정 후, 웹 서버를 재시작 해야 변경 사항이 적용됨.
아파치: systemctl restart httpd