NginxでBasic認証して、そのユーザ名をPHPに渡す

認証されたユーザ名を変数REMOTE_USERに入れて、PHPプログラムに渡すことをやってみました。

まずはNginxのインストール

# wget http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm
# rpm -ivh nginx-release-centos-6-0.el6.ngx.noarch.rpm
# yum install nginx

最新版Ver1.9.10がインストールされました。

次にphpおよびphp-fpmのインストールこちらを参考にしました。

EPELリポジトリ
# wget https://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
# rpm -Uvh epel-release-6-8.noarch.rpm

REMIリポジトリ
# wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
# rpm -Uvh remi-release-6.rpm

php,php-fpmインストール
# yum --enablerepo=remi install php php-devel php-pear php-fpm

上記サイトにしたがって/etc/nginx/conf.d/default.confを編集して、php-fpm起動、Nginx再起動。

次はメインの目的である、認証ユーザをPHPに渡すところ。こちらを参考にしました。/etc/nginx/conf.d/default.confは次の通り。

server {
listen 80;
server_name localhost;

location / {
root /var/www;
index index.php;
}

#error_page 404 /404.html;

# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
root /var/www;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www$fastcgi_script_name;
include fastcgi_params;

fastcgi_param REMOTE_USER $remote_user;

auth_basic "hogehoge";
auth_basic_user_file /opt/.htpasswd;
}
}


login.phpというPHPプログラムを、


<?php
echo $_SERVER['REMOTE_USER'];

として、ブラウザでlogin.phpにアクセスすると、認証ユーザ名が表示されました。

スポンサーサイト

テーマ: Linux | ジャンル: コンピュータ

「東大のディープな数学」を読んだ | Home | 第2回ビジネスマネジャー検定試験ーどうやら合格したようです

コメント

コメントの投稿


非公開コメント

このページのトップへ