2009年1月31日土曜日

OpenLDAPのインストール

ActiveDirectoryでユーザ管理しようと思ったのですが
お金がなかったのでOpenLDAPでユーザ管理しようと思いましたので
インストールを行います。

えーと、、、
OpenSSLとCyrus SASLをインストールする
必要があるようですね。

OpenSSLは
http://www.openssl.org/source/
からダウンロードして解凍して

./config shared
make
make install


でインストールされます。

Cyrus SASLはすでにインストールされている可能性があるので
RPMコマンドで確認して、存在したら2行目のコマンドで削除します。

rpm -qa | grep cyrus
rpm -e --nodeps パッケージ名


CyrusSASLは
ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/
からダウンロードして解凍します。

./configure --enable-login --with-openssl=/usr/local/ssl/lib
make
make install

を行います。


でOpenLDAPのインストールは
http://www.openldap.org/software/download/
からダウンロードして解凍します。

./configure --with-cyrus-sasl --with-tls
make depend
make
make test
make install


で行います。
test時にコネクトエラーで「test000-rootdse 255」みたいなエラーが出ました。
これは「/etc/hosts」の記述がおかしいかららしいです。

192.168.*.* localhost localhost

※*は端末のIPです。
で解決しました。

さて使ってみましょうかね。。。

2009年1月23日金曜日

JSPで画像を表示

簡易的にJSPで画像を作成してみました。


<%@ page contentType="image/jpeg" %>
<%@ page import="java.awt.Color" %>
<%@ page import="java.awt.Font" %>
<%@ page import="java.awt.Graphics2D" %>
<%@ page import="java.awt.image.BufferedImage" %>
<%@ page import="javax.imageio.ImageIO" %>
<%@ page import="java.net.*" %>
<%@ page import="java.io.*" %>
<%

int width=180;
int height=24;

BufferedImage image = new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB);
Graphics2D graphics = image.createGraphics();
graphics.setColor(Color.white);
graphics.fillRect(0,0,width,height);
Font font = new Font("SansSerif", Font.BOLD,14);
graphics.setFont(font);
graphics.setColor(Color.black);
graphics.drawString("TEST",5,19);
graphics.dispose();
ServletOutputStream objSos=response.getOutputStream();
try {
ImageIO.write(image, "jpeg",objSos);
} catch (IOException e) {
e.printStackTrace();
} finally {
objSos.close();
}
%>


とあるサービスにアクセスして
文字列を表示する際にJavaScriptだとクロスドメインでエラーになるので
JSPで画像出しちゃえ!みたいな感じの方法です。

2009年1月10日土曜日

PostgreSQLでSQLを取得する


pg_dump -D test_db > /tmp/test_db.sql


これでデータベースの作成されたSQLを取得できます。

PostgreSQLのネットワーク設定

クライアント等からアクセスするとコネクトを拒否されます。

データフォルダにある
「pg_hba.conf」にアクセスするIPを設定。 


#内部からはフルアクセス
host all all 192.168.0.1 255.255.255.0 trust
#アプリケーションサーバからはアクセス可!)
host all all 192.168.0.230 255.255.255.255 trust


と設定し「postgresql.conf」の接続フラグを立てます。


#tcpip_socket = false
    ↓
tcpip_socket = true 

PostgreSQLでデータベースの作成

データベースを作成するには


//データベースを作成
createdb <データベース名>
//データベースを確認
psql -l
//コンソールでログイン
psql <データベース名>


と行います。

PostgreSQLの起動

postmasterでも起動できるみたいなのですが


//起動
pg_ctl -w start
//終了
pg_ctl stop
//強制終了
pg_ctl -m f stop


などで操作します。

2009年1月9日金曜日

MySQLでテーブルのカラムを表示


DESCRIBE mst_image;


でテーブルのカラム一覧を表示します。

MySQLでファイルを実行する


mysql -u root -p "データベース名" < "ファイル名"


でファイルに記述してあるSQLを発行します。

MySQLでパスワード変更

以下でパスワードの変更を行います。


mysqladmin --user=root -p old_root_passward password new_root_password


JDBCなどでアクセスした場合


Client does not support authentication protocol requested
by server; consider upgrading MySQL client


と出る場合があります。
これはサーバとクライアントのバージョンが違う場合に起こります。

その場合、rootなどでmysqlデータベースで

//Hostを使い分けている場合、hostも条件に入れてください。
UPDATE user SET Password = OLD_PASSWORD('password') WHERE User = 'username';
FLUSH PRIVILEGES;

とします。

MySQLをシャットダウンする

以下でMySQLをシャットダウンします。

mysqladmin --u root -password shutdown

2009年1月4日日曜日

MySQLでのユーザ追加

MySQLにユーザを追加します。
Linuxなどでmakeしてインストールすると
サーバ以外の端末で何もできない場合があります。

それはrootユーザのlocalhostアクセスしかできないからです。
よってMySQLのコンソールで以下でユーザを追加します。


GRANT ALL PRIVILEGES ON *.* TO username@localhost
IDENTIFIED BY 'password' WITH GRANT OPTION;
FLUSH PRIVILEGES;


これは「username」というユーザを作成して、
そのユーザはlocalhostから'password'でアクセスする
っていう意味になります。

ALLの部分は全権限を与えるって意味で
*.*の部分はDBやテーブルを指定して行うことができます。
よって細かく指定するには


GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON dbname.* TO 
username@'192.168.24.%' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;


って感じで行います。