2009年1月31日土曜日

OpenLDAPのインストール

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

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

OpenSSLは
http://www.openssl.org/source/
からダウンロードして解凍して
  1. ./config shared  
  2. make  
  3. make install  


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

Cyrus SASLはすでにインストールされている可能性があるので
RPMコマンドで確認して、存在したら2行目のコマンドで削除します。
  1. rpm -qa | grep cyrus  
  2. rpm -e --nodeps パッケージ名  


CyrusSASLは
ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/
からダウンロードして解凍します。
  1. ./configure --enable-login --with-openssl=/usr/local/ssl/lib  
  2. make  
  3. make install  

を行います。


でOpenLDAPのインストールは
http://www.openldap.org/software/download/
からダウンロードして解凍します。
  1. ./configure --with-cyrus-sasl --with-tls  
  2. make depend  
  3. make  
  4. make test  
  5. make install  


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

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

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

2009年1月23日金曜日

JSPで画像を表示

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

  1. <%@ page contentType="image/jpeg" %>  
  2. <%@ page import="java.awt.Color" %>  
  3. <%@ page import="java.awt.Font" %>  
  4. <%@ page import="java.awt.Graphics2D" %>  
  5. <%@ page import="java.awt.image.BufferedImage" %>  
  6. <%@ page import="javax.imageio.ImageIO" %>  
  7. <%@ page import="java.net.*" %>  
  8. <%@ page import="java.io.*" %>  
  9. <%  
  10.   
  11.   int width=180;  
  12.   int height=24;  
  13.   
  14.   BufferedImage image = new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB);  
  15.   Graphics2D graphics = image.createGraphics();  
  16.   graphics.setColor(Color.white);  
  17.   graphics.fillRect(0,0,width,height);  
  18.   Font font = new Font("SansSerif", Font.BOLD,14);  
  19.   graphics.setFont(font);  
  20.   graphics.setColor(Color.black);  
  21.   graphics.drawString("TEST",5,19);  
  22.   graphics.dispose();  
  23.   ServletOutputStream objSos=response.getOutputStream();  
  24.   try {  
  25.     ImageIO.write(image, "jpeg",objSos);  
  26.   } catch (IOException e) {  
  27.     e.printStackTrace();  
  28.   } finally {  
  29.     objSos.close();  
  30.   }  
  31. %>  


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

2009年1月10日土曜日

PostgreSQLでSQLを取得する

  1. pg_dump -D test_db > /tmp/test_db.sql  


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

PostgreSQLのネットワーク設定

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

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

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


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

  1. #tcpip_socket = false   
  2.     ↓   
  3. tcpip_socket = true   

PostgreSQLでデータベースの作成

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

  1. //データベースを作成  
  2. createdb <データベース名>  
  3. //データベースを確認  
  4. psql -l  
  5. //コンソールでログイン  
  6. psql <データベース名>  


と行います。

PostgreSQLの起動

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

  1. //起動  
  2. pg_ctl -w start  
  3. //終了  
  4. pg_ctl stop  
  5. //強制終了  
  6. pg_ctl -m f stop  


などで操作します。

2009年1月9日金曜日

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

  1. DESCRIBE mst_image;  


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

MySQLでファイルを実行する

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


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

MySQLでパスワード変更

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

  1. mysqladmin --user=root -p old_root_passward password new_root_password   


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

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


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

その場合、rootなどでmysqlデータベースで
  1. //Hostを使い分けている場合、hostも条件に入れてください。  
  2. UPDATE user SET Password = OLD_PASSWORD('password') WHERE User = 'username';   
  3. FLUSH PRIVILEGES;  

とします。

MySQLをシャットダウンする

以下でMySQLをシャットダウンします。
  1. mysqladmin --u root -password shutdown  

2009年1月4日日曜日

MySQLでのユーザ追加

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

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

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


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

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

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


って感じで行います。