ナビゲーション
FrontPage
FreeBSD
Linux
Citrix XenServer
VMware ESXi
Unixコマンド
MySQL
PostgreSQL
Windows
CMS/CRM
クラウド
用語
PHPスクリプト
Bashシェルスクリプト
Rubyスクリプト
開発日記
検索
ツールボックス
新しいページの作成
バックアップの表示
外部のリンク元
最近更新したページ
全ページ
ヘルプ
凍結
アップロード
ページ名の変更
最新の40件
2016-08-17
Linux/NagiosQL
Linux/CentOSチューニング
2016-02-23
Linux/ソフトウェアRAID復旧手順
2016-02-18
FreeBSD/DHCP
FreeBSD/squid
2016-02-15
Unixコマンド/file
2016-02-05
FreeBSD/DynaBook
FreeBSD/Linux compatibility
2016-01-21
PHPスクリプト/PEAR DBインストールできない
PHPスクリプト/PEAR DB
2016-01-20
PHP/フレームワーク/Zend Framework
PHP/フレームワーク
FreeBSD/Postfix+amavisd+clamav
2016-01-15
FreeBSD/sl
2015-12-04
Unixコマンド/dig
Unixコマンド/nslookup
Unixコマンド/traceroute
Linux/rsync
FreeBSD/rsync
Unixコマンド/vipw
2015-11-25
Linux/Postfix+MySQL+Postfix AdminによるバーチャルSMTPサーバの構築
Linux/Postfix + postgrey
2015-11-24
Linux/Postfix + amavisd + clamav
2015-05-25
Unixコマンド/ifconfig
2015-05-23
Unixコマンド/netstat
Unixコマンド/route
Unixコマンド/lsof
Unixコマンド/disown
Unixコマンド/time
Unixコマンド/crontab
2015-05-22
Unixコマンド/nohup
Unixコマンド/fgとbg
Unixコマンド/nice
Unixコマンド/kill
Unixコマンド/jobs
Unixコマンド/restor
Unixコマンド/dump
Unixコマンド/uncompress
Unixコマンド/compress
Unixコマンド/zcat
total:
2380
today:
1
yesterday:
0
now:
1
本文
ノート
?
編集
差分
一覧
FreeBSD/ApacheのBasic認証でPostgreSQLを参照 の編集
*FreeBSD/ApacheのBasic認証でPostgreSQLを参照 [#hfaa0dc2] [[dokuwiki.fl8.jp転載済>http://dokuwiki.fl8.jp/doku.php/02_freebsd/04_database/02_posgresql/apache%E3%81%AEbasic%E8%AA%8D%E8%A8%BC%E3%81%A7postgresql%E3%82%92%E5%8F%82%E7%85%A7]] #contents **ソースコードの展開 [#k3bca735] tarコマンドやgzipコマンドを使って、入手したソースコードを展開する。 $ tar -xvzf mod_auth_pgsql-0.9.11.tar.gz **生成されたディレクトリへの移動 [#p0b484c7] $ cd mod_auth_pgsql-0.9.11 **INSTALLの参照 [#k35b77cd] インストール手順の確認のため、INSTALLファイルの内容を確認しておく。 $ less INSTALL **configureの実行 [#e376f679] INSTALLファイルのインストール手順に従って、configureを実行する。 ~ 以下の例は、Apacheが/usr/local/apache、PostgreSQLが/usr/local/pgsqlに ~ インストールされているものとする。 $ ./configure \ --with-apxs=/usr/local/apache/bin/apxs \ --with-pgsql=/usr/local/pgsql **モジュールのコンパイル [#r0d241de] 以下のコマンドでコンパイルを行う。 $ /usr/local/apache/bin/apxs \ -I/usr/local/pgsql/include \ -L/usr/local/pgsql/lib -lpq \ -o mod_auth_pgsql.so -c mod_auth_pgsql.c auth_pgsql_shared_stub.c **モジュールのインストール [#pb484b80] コンパイルしたモジュールをインストールする。この作業のみ、rootユーザーでなくては行えない。 # /usr/local/apache/bin/apxs \ -i -a -n auth_pgsql mod_auth_pgsql.so **確認 [#mfeaa46b] 一般ユーザーに戻り、Apacheの設定ファイル(httpd.conf)の内容を確認する。 ~ 以下のような行が自動的に追加されているはずである。 LoadModule auth_pgsql_module libexec/mod_auth_pgsql.so **Apacheの再起動 [#t22db8b1] インストール直後は正常に再起動するが、サーバリブート後は、以下エラーが発生する。 ~ Cannot load /usr/local/apache/libexec/mod_auth_pgsql.so into server: Shared object "libpq.so.3" not found 以下のようにシンボリックリンクを張ることで正常に起動する。 ln -s /usr/local/pgsql/lib/libpq.so.3 /usr/lib/libpq.so.3 **httpd.conf(.htaccess)の設定 [#i958043a] インストールできたら、httpd.conf(または .htaccess)の設定を行おう。 ~ 本来ならデータベースを先に用意するべきだが、説明の都合上こちらを先にする。 これらのファイルの設定は、前回説明したようにディレクトリ別のセキュリティ設定に用いられる。 ~ ここでは、httpd.confに/usr/local/apache/htdocsで公開されているコンテンツへのアクセス制限を設定する方法を紹介する。 <Directory "/usr/local/apache/htdocs/"> Auth_PG_host 127.0.0.1 Auth_PG_port 5432 Auth_PG_database test Auth_PG_user postgres Auth_PG_pwd pg_password Auth_PG_pwd_table user_data Auth_PG_uid_field user_name Auth_PG_pwd_field passwd AuthName "Please Enter Your Password" Authtype Basic <Limit POST GET> require valid-user </Limit> <Directory> これは、ごく単純なデータベース認証を設定した例である。簡単に説明すると、 Auth_PG_host 127.0.0.1 はデータベースがローカルホスト(127.0.0.1)にインストールされていること、 Auth_PG_port 5432 でポートが5432であることを指定している。次に、 Auth_PG_database test はデータベース名が「test」で、 Auth_PG_user postgres Auth_PG_pwd pg_password データベースへのアクセスには、ユーザー「postgres」とパスワード「pg_password」を用いる。 Auth_PG_pwd_table user_data Auth_PG_uid_field user_name Auth_PG_pwd_field passwd この3行では、テーブル名が「user_data」であり、その「user_name」フィールドをユーザー名、passwdフィールドを ~ パスワードとして扱うことを指定している。 この場合、user_dataテーブルに含まれるデータに一致すれば、アクセス権を持つユーザーとして認証する。 ~ このように、mod_auth_pgsqlではユーザー名とパスワードを含むテーブル名やフィールド名は自由に決定できる。 パスワードを平文で格納した場合は、Auth_PG_encrypted off を追加する。 PHPをインストールしているなら、以下のようなソースを用意する。 # vi index.php ------------------------------------------------------------ <html> <head> <title>mod_auth_pgsql test page</title> </head> <body> <?php print "REMOTE_USER = " . "$REMOTE_USER" . "<br>"; ?> mod_auth_pgsql test page... </body> </html> ------------------------------------------------------------ (認証されたユーザ名が環境変数 REMOTE_USER にセットされる)
タイムスタンプを変更しない
*FreeBSD/ApacheのBasic認証でPostgreSQLを参照 [#hfaa0dc2] [[dokuwiki.fl8.jp転載済>http://dokuwiki.fl8.jp/doku.php/02_freebsd/04_database/02_posgresql/apache%E3%81%AEbasic%E8%AA%8D%E8%A8%BC%E3%81%A7postgresql%E3%82%92%E5%8F%82%E7%85%A7]] #contents **ソースコードの展開 [#k3bca735] tarコマンドやgzipコマンドを使って、入手したソースコードを展開する。 $ tar -xvzf mod_auth_pgsql-0.9.11.tar.gz **生成されたディレクトリへの移動 [#p0b484c7] $ cd mod_auth_pgsql-0.9.11 **INSTALLの参照 [#k35b77cd] インストール手順の確認のため、INSTALLファイルの内容を確認しておく。 $ less INSTALL **configureの実行 [#e376f679] INSTALLファイルのインストール手順に従って、configureを実行する。 ~ 以下の例は、Apacheが/usr/local/apache、PostgreSQLが/usr/local/pgsqlに ~ インストールされているものとする。 $ ./configure \ --with-apxs=/usr/local/apache/bin/apxs \ --with-pgsql=/usr/local/pgsql **モジュールのコンパイル [#r0d241de] 以下のコマンドでコンパイルを行う。 $ /usr/local/apache/bin/apxs \ -I/usr/local/pgsql/include \ -L/usr/local/pgsql/lib -lpq \ -o mod_auth_pgsql.so -c mod_auth_pgsql.c auth_pgsql_shared_stub.c **モジュールのインストール [#pb484b80] コンパイルしたモジュールをインストールする。この作業のみ、rootユーザーでなくては行えない。 # /usr/local/apache/bin/apxs \ -i -a -n auth_pgsql mod_auth_pgsql.so **確認 [#mfeaa46b] 一般ユーザーに戻り、Apacheの設定ファイル(httpd.conf)の内容を確認する。 ~ 以下のような行が自動的に追加されているはずである。 LoadModule auth_pgsql_module libexec/mod_auth_pgsql.so **Apacheの再起動 [#t22db8b1] インストール直後は正常に再起動するが、サーバリブート後は、以下エラーが発生する。 ~ Cannot load /usr/local/apache/libexec/mod_auth_pgsql.so into server: Shared object "libpq.so.3" not found 以下のようにシンボリックリンクを張ることで正常に起動する。 ln -s /usr/local/pgsql/lib/libpq.so.3 /usr/lib/libpq.so.3 **httpd.conf(.htaccess)の設定 [#i958043a] インストールできたら、httpd.conf(または .htaccess)の設定を行おう。 ~ 本来ならデータベースを先に用意するべきだが、説明の都合上こちらを先にする。 これらのファイルの設定は、前回説明したようにディレクトリ別のセキュリティ設定に用いられる。 ~ ここでは、httpd.confに/usr/local/apache/htdocsで公開されているコンテンツへのアクセス制限を設定する方法を紹介する。 <Directory "/usr/local/apache/htdocs/"> Auth_PG_host 127.0.0.1 Auth_PG_port 5432 Auth_PG_database test Auth_PG_user postgres Auth_PG_pwd pg_password Auth_PG_pwd_table user_data Auth_PG_uid_field user_name Auth_PG_pwd_field passwd AuthName "Please Enter Your Password" Authtype Basic <Limit POST GET> require valid-user </Limit> <Directory> これは、ごく単純なデータベース認証を設定した例である。簡単に説明すると、 Auth_PG_host 127.0.0.1 はデータベースがローカルホスト(127.0.0.1)にインストールされていること、 Auth_PG_port 5432 でポートが5432であることを指定している。次に、 Auth_PG_database test はデータベース名が「test」で、 Auth_PG_user postgres Auth_PG_pwd pg_password データベースへのアクセスには、ユーザー「postgres」とパスワード「pg_password」を用いる。 Auth_PG_pwd_table user_data Auth_PG_uid_field user_name Auth_PG_pwd_field passwd この3行では、テーブル名が「user_data」であり、その「user_name」フィールドをユーザー名、passwdフィールドを ~ パスワードとして扱うことを指定している。 この場合、user_dataテーブルに含まれるデータに一致すれば、アクセス権を持つユーザーとして認証する。 ~ このように、mod_auth_pgsqlではユーザー名とパスワードを含むテーブル名やフィールド名は自由に決定できる。 パスワードを平文で格納した場合は、Auth_PG_encrypted off を追加する。 PHPをインストールしているなら、以下のようなソースを用意する。 # vi index.php ------------------------------------------------------------ <html> <head> <title>mod_auth_pgsql test page</title> </head> <body> <?php print "REMOTE_USER = " . "$REMOTE_USER" . "<br>"; ?> mod_auth_pgsql test page... </body> </html> ------------------------------------------------------------ (認証されたユーザ名が環境変数 REMOTE_USER にセットされる)
テキスト整形のルールを表示する
ログインまたはアカウント作成