トップページ | 2008年1月 »

2007年12月

2007-12-28

やる夫がapache-1.3.36のインストールをするようです。

はじめてのapacheインストール

単に”./configure --> makeinstall”でインストールが完了しますが、Linuxのインストール時に最小構成のインストールとかにしてしまうと、gooコンパイラ等がインストールされていない場合があります。そこで詰まった人用(初歩だが・・・)。

ファイル取得

http://www.apache.jp/ から適当に落としてください。バージョンによっては、”mod_proxy_balancer ”等のモジュールが使えない場合があります。今回は”apache-1.3.36”をインストールしてみることにします。

apache-1.3 インストール

# cd apache_1.3.36
[root@test01 apache_1.3.36]# ls
ABOUT_APACHE     LICENSE               NWGNUmakefile     WARNING-WIN.TXT  htdocs
Announcement     Makefile.tmpl         NWGNUtail.inc     cgi-bin          icons
Announcement.de  NOTICE                README            conf             logs
Announcement.ja  NWGNUenvironment.inc  README-WIN.TXT    config.layout    src
INSTALL          NWGNUhead.inc         README.configure  configure
# ./configure
Configuring for Apache, Version 1.3.36
+ Warning: Configuring Apache with default settings.
+ This is probably not what you really want.
+ Please read the README.configure and INSTALL files
+ first or at least run './configure --help' for
+ a compact summary of available options.
+ using installation path layout: Apache (config.layout)
Creating Makefile
Creating Configuration.apaci in src
Creating Makefile in src
+ configured for Linux platform
Error: could not find any of these C compilers
anywhere in your PATH:  gcc cc acc c89
Configure terminated

       ____
     /ノ   ヽ、_\
   /( ○)}liil{(○)\
  /    (__人__)   \     gccコンパイラって普通デフォで
  |   ヽ |!!il|!|!l| /   |      はいってんじゃねぇ~の?????
  \    |ェェェェ|     /

”Error: could not find any of these C compilers” コンパイラが入ってないよってエラーです。

  • 対外は問題なく入っている筈。

コンパイラインストール

もう一回

# ./configure
Configuring for Apache, Version 1.3.36
+ Warning: Configuring Apache with default settings.
+ This is probably not what you really want.
+ Please read the README.configure and INSTALL files
+ first or at least run './configure --help' for
+ a compact summary of available options.
+ using installation path layout: Apache (config.layout)
Creating Makefile
Creating Configuration.apaci in src
Creating Makefile in src
+ configured for Linux platform
+ setting C compiler to gcc
+ setting C pre-processor to gcc -E
+ using "tr [a-z] [A-Z]" to uppercase
+ checking for system header files
+ adding selected modules
+ using builtin Expat
+ checking sizeof various data types
+ doing sanity check on compiler and options
Creating Makefile in src/support
Creating Makefile in src/regex
Creating Makefile in src/os/unix
Creating Makefile in src/ap
Creating Makefile in src/main
Creating Makefile in src/lib/expat-lite
Creating Makefile in src/modules/standard

# make
# make install

apache-1.3 起動

# /usr/local/apache/bin/apachectl start
/usr/local/apache/bin/apachectl start: httpd started

| | コメント (0) | トラックバック (0)

2007-12-27

[sendmail] やる夫がsendmailで転送設定をするようです。

sendmailの転送設定について

いつもメールの転送設定してくれる人が、長期休暇とったため自ら設定することになりました。sendmailについては正直よくわからないです。なのでメモ程度で・・・スマソ。

            / ̄ ̄\
          /   _ノ  \
          |     -□-□)
          |     (__人__)    やる夫~  
             |     ` ⌒´ノ    メールチームのちゅるやさんが、長期バカンスに
              |         }     行っちゃったので、代わりにメール転送設定宜しく
              ヽ        }
            ヽ、.,__ __ノ  
   _, 、 -― ''"::l:::::::\ー-..,ノ,、.゙,i 、
  /;;;;;;::゙:':、::::::::::::|_:::;、>、_ l|||||゙!:゙、-、_
 丿;;;;;;;;;;;:::::i::::::::::::::/:::::::\゙'' ゙||i l\>::::゙'ー、
. i;;;;;;;;;;;;;;;;;;;;;;|::::::::::::::\::::::::::\ .||||i|::::ヽ::::::|:::!
/;;;;;;;;;;;;;;;;;;;;;;;;!:::::::::::::::::::\:::::::::ヽ|||||:::::/::::::::i:::|
;;;;;;;;;;;;;;;;;;;;;;;;;;|;;;;:::::::::::::::::::::::\:::::゙、|||:::/::::::::::|:::

         ___
       /::::::::::  u\
      /:::::::::⌒ 三. ⌒\   
    /:::::::::: ( ○)三(○)\ 
    |::::::::::::::::⌒(__人__)⌒  |   あの・・・sendmailって設定したことないのですが・・・
     \::::::::::   ` ⌒´   ,/   しかもメールサーバってUNIXだったような・・・
    ノ::::::::::u         \ 
    /:::::::::::::::::      u      

            / ̄ ̄\
          /   _ノ  \
          |     -□-□)    あ!?
          |     (__人__)    しょうがねぇ~な今回は俺も一緒に見てやるよ・・・
             |     ` ⌒´ノ 
              |         }  
              ヽ        }
            ヽ、.,__ __ノ  
   _, 、 -― ''"::l:::::::\ー-..,ノ,、.゙,i 、
  /;;;;;;::゙:':、::::::::::::|_:::;、>、_ l|||||゙!:゙、-、_
 丿;;;;;;;;;;;:::::i::::::::::::::/:::::::\゙'' ゙||i l\>::::゙'ー、
. i;;;;;;;;;;;;;;;;;;;;;;|::::::::::::::\::::::::::\ .||||i|::::ヽ::::::|:::!
/;;;;;;;;;;;;;;;;;;;;;;;;!:::::::::::::::::::\:::::::::ヽ|||||:::::/::::::::i:::|
;;;;;;;;;;;;;;;;;;;;;;;;;;|;;;;:::::::::::::::::::::::\:::::゙、|||:::/::::::::::|:::

       ____
     /      \
   / ─    ─ \
  /   (●)  (●)   \  なんか、cfファイルみても
  |      (__人__)    |        わけわからんね・・・。
  \     ` ⌒´     /  

そう・・・。わけわからんのだよ。しかも会社サービス用のメールサーバだったらしい。今思えばちょっとだけ危なかった・・・。かも?

設定内容

会社で共通のメールサーバがあって、”yaruo.com”がDNS登録されているとします。そこから別のサーバへ”yaruo.co.jp”として転送したい時がやってきた・・・。

設定手順

list ファイル設定

# vi yaruo.list
-----
postmaster:maildrop     admin@yaruo.co.jp
root:maildrop           admin@yaruo.co.jp
admin:maildrop          admin@yaruo.co.jp
support:maildrop        admin@yaruo.co.jp
system:maildrop         dmin@yaruo.co.jp
vipper:maildrop         vipper@yaruo.com
*:maildrop              shinjuku@yaruo.com
-----

db 作成

# vi makemap.sh
-----
/usr/sbin/makemap hash yaruo.db < yaruo.list
-----

# ./makemap.sh
yaruo.db: could not create: Permission denied

  • パーミッションで怒られた。

# touch yaruo.db
# ./makemap.sh
# ls -l yaruo.db
-rw-r--r--   1 root     other      40960 12キ・ 5ニ・ 09:47 yaruo.db

  • touch でファイル作成しちゃえ

# ./makemap.sh

  • できた。

sendmail.cf ファイル設定

”sendmail.cf”ファイルの記述ミスがあるとsendmailは立ち上がりません。良くある間違え箇所は、スペースとタブでミスするようです。よく確認してみて下さい。ちなみに新宿Vipperはコレではまりました。サービス中のサーバでやったため、5分間ほど停止しました。方系だけだったから良かったですが、監視から連絡が来るかヒヤヒヤものでした。メール転送設定は別の部署担当なので、大目玉くらうところでした。

# cd /etc
# cp -p sendmail.cf.20071120 sendmail.cf.20071204
# vi sendmail.cf.20071204
-----
149,150d148
+ CY yaruo.com
+ yaruo0com hash -o /etc/mail/yaruo.com
858,860d855
+ R$+<@yaruo.com> $@$(yaruo0com $1:maildrop $: $1@ $)@<@yaruo.com>
+ R$+<%yaruo.com> $@$(yaruo0com *:maildrop $@ $1 $: $1@ $)@<@yaruo.com>
+ R$+<!yaruo.com> $@$(yaruo0com :default:maildrop $@ $1 $: $1@ $)@<@yaruo.com>
875d868
+ R$+<@yaruo.com> $@$(yaruo0com $1:mailname $: $1@ $)@<@yaruo.com>
-----

# mv sendmail.cf sendmail.cf.bak
# ln -s sendmail.cf.20071204 sendmail.cf

  • 運用上、コピーとってシンボリックリンクの張替えをおすすめします。

sendmail 再起動

# /etc/init.d/sendmail stop
# /etc/inif.d/sendmail start

  • UNIXの場合”restart”が出来なかった気がする。

| | コメント (0) | トラックバック (0)

[postgresql] やる夫がpqaでスロークエリを見やすくするようです。

pqa コマンド

pqaとは、postgreslogを見やすくするツールです。rubyで書かれているようです。postgreslogは、スロークエリー情報を記載したログで、postgresql.confの設定で" 出力情報を変えることが出来ます。

         ____
       /      \  
     /  _ノ  ヽ、_  \ 
    / o゚((●)) ((●))゚o \  
    |     (__人__)    |   一向にスロークエリが改善されないお
    \     ` ⌒´     /
   /´           `\
  /  /          l  l   .___
__l  l_¶______/_/__/     ヽ
  \, ´-'ヽ  ̄| ̄ ̄ ̄ ̄|   l二二二二l
    ヾ_ノ   | '''' '   |   l二二二二l
   | 9=ε-8. | '''..--  |   l二二二二l:::..
   |   ..''  |  ''-.  ,|

postgresql.conf 設定

デフォルトの設定だとスロークエリとして、ログに出力されない場合がある・・・。もとい何秒以上かかったクエリをログとして出力するように、”postgressql.conf”に記載されています、デフォルトは確か”6000msec”だった気がします。閾値は状況に応じて編集する必要があります。下記は”15000msec”に設定しています。postgresqlのデータディレクトリは”/usr/local/PGData”とします。

# vi /usr/local/PGData/postgresql.conf
-----
log_min_duration_statement = 1500000    # slowestquery 1500sOver
-----

# su - postgres
$ /usr/local/pgsql/bin/pg_ctl reload

  • 設定後は、pgctl reloadを必要とします(サービスが止まるわけではない)。

pqa ログ出力

# pqa -logtype pglog -file postgresql-Wed.log
# pqa -logtype pglog -file postgresql-Wed.log > /home/bin/postgresql.20070124.log

  • こんな感じで・・・。

ログ内容

######## Overall statistics <-- 一番長い時間のかかったクエリTime
1 queries (1 unique), longest ran in 2070.645574 seconds), parsed in 0.234787 seconds
######## Queries by type
######## Queries that took up the most time <-- 遅いクエリ一覧
2070.646 seconds: COPY public.mt_hogehoge (hogehoge_id, hogehoge_type, hogehoge_user_id, hogehoge_data) TO stdout;
######## Slowest queries
2070.646 seconds: COPY public.mt_hogehoge (hogehoge_id, hogehoge_type, hogehoge_user_id, hogehoge_data) TO stdout;
######## Most frequent queries <-- 良く使われるクエリです。
1 times: COPY public.mt_hogehoge (hogehoge_id, hogehoge_type, hogehoge_user_data TO stdout;

----------------------------------------

オープンソースを使ったデータベースの構築―ApacheサーバとPostgreSQLでデータベース
藤田 泰徳 山崎 文則
セレンディップセレンディップセレンディップ
定価 : ¥ 3,675
2000-09
amazonで詳しく見る

| | コメント (0) | トラックバック (0)

[postgresql] やる夫がDBのユーザ管理をするようです。

postgresql ユーザ追加

今回は”user”というpostgresアカウントを作成して、権限を追加する手順を記します。全ての権限を与えてしまっても良いかな~と思います(責任はとらんよ)。

         ____
       /      \  
     /  _ノ  ヽ、_  \ 
    / o゚((●)) ((●))゚o \  早く帰ってニコニコで
    |     (__人__)    |        ウッーウッーウマウマ(゚∀゚)したいお・・・
    \     ` ⌒´     /
   /´           `\
  /  /          l  l   .___
__l  l_¶______/_/__/     ヽ
  \, ´-'ヽ  ̄| ̄ ̄ ̄ ̄|   l二二二二l
    ヾ_ノ   | '''' '   |   l二二二二l
   | 9=ε-8. | '''..--  |   l二二二二l:::..
   |   ..''  |  ''-.  ,|
     ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄  

$ createuser -P --no-adduser --no-createdb user
Enter password for new role:
Enter it again:
Shall the new role be allowed to create more new roles? (y/n) y
CREATE ROLE

ユーザ情報確認

# su - postgres
$ psql -d user
postgres=# select usename, passwd from pg_shadow;
  usename  |               passwd
-----------+-------------------------------------
postgres   | md53175bce1d3201d16594cebf9d7eb3f9d
user       | md56d7f7b5139f0bfc1d8cf87392ed32506
(2 rows)
  • 上記手順で追加した”user”が確認できる筈。

ユーザ権限追加

$ psql -d user
user=# grant ALL on table mt_starter_session to user;
  • 全ての権限を与えた状態にしてます。

| | コメント (0) | トラックバック (0)

2007-12-26

dd [ファイル管理コマンド]

dd コマンド

ファイルを変換・コピーする。外部記憶装置(フロッピーなど)との間でのコピーもできるコマンド。今回はisoイメージの作成方法を説明します。

  • isoイメージでなにおする?

VMwareのguesutOSインストール時に有効です。VMwareサーバがデータセンター等にある場合、CDromの取替えが面倒です。WMwareクライアントからは、isoイメージを読み込むことが出来るため、有効です。

手順

インストールCDをマウントします。今回のカレントは”/usr/local/vmware/isoimage/redhat
”で実施するものとします。上の説明で軽く矛盾発生・・・。気づかなかったことに・・・。

# cd /usr/local/vmware/isoimage/redhat
# dd if=/dev/cdrom of=/service/data0/vmware/isoimage/redhat/RHEL4-ES-disc1.iso
dd: reading `/dev/cdrom': 入力/出力エラーです
読み込んだブロック数は 355536+0
書き込んだブロック数は 355536+0
  • "入力/出力エラーです"は特に気にしなくてよいです。Disc4枚分繰り返します。

| | コメント (0) | トラックバック (0)

やる夫がDHCP 設定をするようです。

DHCP について

インターネットに一時的に接続するコンピュータに、IPアドレスなど必要な情報を自動的に割り当てるプロトコル。つまり一般の会社ではほぼ固定IPとなる。フリーアクセスポイントへの接続とかに利用したりするようです。

Linuxインストール時に、固定IPかDHCPか選択しますが、間違えてDHCPを選択してしまった人のために設定方法を記します。

ネットワークカードchgファイルの設定

ネットワークカードがいくつも刺さっている場合(Global、NFS...etc)。”ifconfig”コマンドで修整したいネットワークカードを調べます。

# vi /etc/sysconfig/network-scripts/ifcfg-eth0
-----
- BOOTPROTO=dhcp
+ BOOTPROTO=static
+ IPADDR=172.16.128.129
+ NETMASK=255.255.255.0
-----

ネットワークの再起動

# /etc/rc.d/init.d/network restart
インターフェース eth0 を終了中:             [  OK  ]
ループバックインターフェースを終了中        [  OK  ]
IPv4 パケット転送を無効化中:                [  OK  ]
ネットワークパラメーターを設定中:           [  OK  ]
ループバックインターフェイスを呼び込み中    [  OK  ]
インターフェース eth0 を活性化中:           [  OK  ]

| | コメント (0) | トラックバック (0)

diff/patch [ファイル管理コマンド]

diff コマンド

ファイルの差分を出力する。結構好きなコマンド、でもオプションを詳しく知っているわけではない。

patch コマンド

diff ファイルをオリジナルのファイルに適用するコマンド。”sed”とか”awk”でも代用可能かな?とか思いましたが、パッチ当てる前に戻すことも可能とか、なので楽なのです。

手順

今回はオリジナルファイルに対して、パッチ当てをして、やっぱ元に戻したいっスって手順にしてます。参考までに・・・。

”verification.txt”ファイルをオリジナルファイルとします。”verification.txt.rej”としてコピーして編集しパッチを作成します。

# ls
verification.txt
# cat verification.txt
       ____
    /      \
   /  ─    ─\
 /    ,(●) (●)、\
 |       (__人__)    |   
 \     ` ⌒´   /  
,,.....イ.ヽヽ、___ ーーノ゙-、.
:   |  '; \_____ ノ.| ヽ i
    |  \/゙(__)\,|  i |
    >   ヽ. ハ  |   ||
# cp -p verification.txt verification.txt.rej

  • -p オプションは、パーミッション・タイムスタンプを引き継ぎます。今回では特に意味なし。

適当に編集します。やる夫のコメントを追加しました。

# vi verification.txt.rej
-----
       ____
    /      \
   /  ─    ─\
 /    ,(●) (●)、\  やる夫のAAはって見ますた
 |       (__人__)    |   
 \     ` ⌒´   /  
,,.....イ.ヽヽ、___ ーーノ゙-、.
:   |  '; \_____ ノ.| ヽ i
    |  \/゙(__)\,|  i |
    >   ヽ. ハ  |   ||
-----

パッチファイルの作成

# diff -c verification.txt verification.txt.rej > verification.txt.patch
# cat verification.txt.patch
*** verification.txt       2007-12-26 11:52:39.000000000 +0900
--- verification.txt.patch 2007-12-26 11:51:50.000000000 +0900
***************
*** 1,7 ****
         ____
      /      \
     /  ─    ─\
!  /    ,(●) (●)、\
   |       (__人__)    |   
   \     ` ⌒´   /  
  ,,.....イ.ヽヽ、___ ーーノ゙-、.
--- 1,7 ----
         ____
      /      \
     /  ─    ─\
!  /    ,(●) (●)、\  やる夫のAAはって見ますた
   |       (__人__)    |   
   \     ` ⌒´   /  
  ,,.....イ.ヽヽ、___ ーーノ゙-、.

パッチファイルの適用

# patch -p0 < verification.txt  < verification.txt.patch
patching file verification.txt
# cat verification.txt
       ____
    /      \
   /  ─    ─\
 /    ,(●) (●)、\  やる夫のAAはって見ますた
 |       (__人__)    |   
 \     ` ⌒´   /  
,,.....イ.ヽヽ、___ ーーノ゙-、.
:   |  '; \_____ ノ.| ヽ i
    |  \/゙(__)\,|  i |
    >   ヽ. ハ  |   ||

ちゃんとやる夫がコメントが反映されてますね。

パッチファイルの解除

# patch -p0 -R < verification.txt  < verification.txt.patch
patching file verification.txt

  • ーR オプションは、パッチの解除です。 

”verification.txt”を確認すると、やる夫のコメントが消えている筈。

| | コメント (1) | トラックバック (0)

[mysql] やる夫がDBに接続できなくて困っているようです。

構成(っというか・・・)

別のホストから、DBサーバへ接続しようとしたとき出力されたエラーのまとめです(初歩)。構成はこんな幹事です。

  • データベースサーバ

indigo01(IPaddress:192.168.2.20)
MySQL-5.0.42-0(DBname:yaruo_db)

  • アプリケーションサーバ

indigo02(IPaddress:192.168.2.21)

上記ホストについてはルーティングが通っているものとします。データベース”yaruo_db”のportは”13306”で立ち上がっているものとします。

接続エラー1

       ____
     /_ノ   ヽ_\
   /( >)  (<)\   MySQL DB構築したお!
  /::::::⌒(__人__)⌒::::: \    スケジュール1週間遅れだけど、そんなの関係ないお!
  |     |r┬-/      |  
  \    ` ̄'´     /

[indigo02]# /usr/bin/mysql -h 192.168.2.20 -P 13306 yaruo_db
ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.2.20' (113)

”MySQLサーバへ接続できません。”

         ____
       /::::::::::  u\
      /:::::::::⌒ 三. ⌒\     キャントコネットがMySQLの上にのってる?
    /:::::::::: ( ○)三(○)\  
    |::::::::::::::::⌒(__人__)⌒  | ________
     \::::::::::   ` ⌒´   ,/ .| |          |
    ノ::::::::::u         \ | |          |
  /:::::::::::::::::      u       | |          |
 |::::::::::::: l  u             | |          |
 ヽ:::::::::::: -一ー_~、⌒)^),-、   | |_________|
  ヽ::::::::___,ノγ⌒ヽ)ニニ- ̄   | |  |

# telnet 172.22.238.153 13306
Trying 192.168.2.20...
telnet: connect to address 172.22.238.153: No route to host
telnet: Unable to connect to remote host: No route to host

とりあえず、telnetして見ましたが、コネクションを掴めないようです。単純にMySQLサーバが立ち上がっていないか、port”13306”での接続が出来ないことが予想されます。

プロセス確認方法

”ps auxw | grep”でも良いですが、今回はportが特殊なので、下記で調べてみます。DBサーバで調べます。下記結果が返ってくれば、MySQLサーバに問題はなさそうです(そうでもないが)。

[indigo01]# /usr/sbin/lsof -i -n -P|grep 13306
mysqld    28156   mysql   15u  IPv4  715453       TCP *:13306 (LISTEN)

portを調べてみます。

[indigo01]# /sbin/iptables -L -n | grep ACCEPT
ACCEPT     tcp  --  172.16.0.0/12        0.0.0.0/0           tcp dpt:21
ACCEPT     tcp  --  172.16.0.0/12        0.0.0.0/0           tcp dpt:23
ACCEPT     udp  --  172.16.0.0/12        0.0.0.0/0           udp dpt:3306
ACCEPT     tcp  --  172.16.0.0/12        0.0.0.0/0           tcp dpt:3306

port”13306”が空いていないようです。port開放しましょう。

接続エラー2

[indigo02]# /usr/bin/mysql -h 192.168.2.20 -P 13316 yaruo_db
ERROR 1130 (00000): Host '192.168.2.20' is not allowed to connect to this MySQL server

       ____
     /      \
   /  _ノ  ヽ、_  \   あれから3日経ったけど
  / o゚((●)) ((●))゚o \      いまだにMySQLに接続できないお・・・
  |     (__人__)    |
  \     ` ⌒´     /   

まだ接続できないようです。今回は”yaruo_db”へのアクセス権限が無いものと思われます。DBサーバで下記手順を実施してみて下さい。

        ノ L____
       ⌒ \ / \
      / (○) (○)\
     /    (__人__)   \   やる夫は悪くないお!
     |       |::::::|     |       フリーウェアの癖に生意気だお!
     \       l;;;;;;l    /l!| !
     /     `ー'    \ |i
   /          ヽ !l ヽi
   (   丶- 、       しE |そ  ドンッ!!
    `ー、_ノ       ∑ l、E ノ <
               レY^V^ヽl  

DBクリエイトするのにいつまでかかってんだよ!!     うっせ~!
      / ̄ ̄\                      いちいちユーザ指定してんじゃねぇよ!
    /ノ(  ゝ 、_,ノヽ        r'´ ゙ヽ      /`ヽ          ___
    | ⌒(( ●)(●)        ヽ   ヽ从从/   /        \   /\
.    |     (__人__) /⌒l     \  \/  /て       (●)liil(●) ノ( \
     |     ` ⌒´ノ |`'''|    ∑ ヽ/  /  そ     / (__人__)  ⌒   \
    / ⌒ヽ     }  |  |      ,)/  / \ く     |   |!!il|!|!l|         |
   /  へ  \   }__/ /      /   /\  \      \i⌒ヽェェ|      /
 / / |      ノ   ノ    /   / YYY\   \     \ \  /⌒,/´
( _ ノ    |      \´    /   /       \   \     / \ \/  /l
       |       \_,/   /         \   \_/    \__ノ |\
       .|            /            \             |) )
       ヽ          /               \           ,r' /
         \      , '´                   `' ,        /ー'′
          \     (                     )     /
            \    \                  /    /

もう一息です。頑張ってください。

[indigo01]# /usr/bin/mysql -S /var/lib/mysql/yaruo_db.sock yaruo_db
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.0.42-enterprise-gpl-log MySQL Enterprise Server (GPL)

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

ユーザーパスワード及びACLの確認

mysql> select user,host,password from mysql.user;
+--------+------------+---------------------------+
| user   | host       | password                  |
+--------+------------+---------------------------+
| root   | localhost  |                           |
| root   | indigo01   |                           |
| root   | 127.0.0.1  |                           |
+--------+------------+---------------------------+
3 rows in set (0.00 sec)

ユーザパスワード及びACLの設定

下記は”root”に対して、パスワードなし+どのホストからもアクセス可能にする設定です。

mysql> grant all privileges on *.* to root@'%';
+--------+------------+---------------------------+
| user   | host       | password                  |
+--------+------------+---------------------------+
| root   | localhost  |                           |
| root   | indigo01   |                           |
| root   | 127.0.0.1  |                           |
| root   | %          |                           |
+--------+------------+---------------------------+
4 rows in set (0.00 sec)

ちなみに、”yaruo”ユーザで”vipper”というパスワードを設定するならこんな感じです。

mysql> GRANT ALL ON *.* TO yaruo@'%' IDENTIFIED BY 'vipper';

これで、”indigo02”から”indigo01”MySQLサーバへ接続することができました。

[indigo02]# /usr/bin/mysql -h 192.168.2.20 -P 13306 yaruo_db
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 6

Server version: 5.0.42-enterprise-gpl-log MySQL Enterprise Server (GPL)
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql>

       ____
     /_ノ ' ヽ_\
   /(≡)   (≡)\
  /::::::⌒(__人__)⌒::::: \  なんとかまにあったお!
  |     |r┬-|     |  
  \      `ー'´     /  

----------------------------------------

現場で使える MySQL (DB Magazine SELECTION)
松信 嘉範
翔泳社翔泳社翔泳社
定価 : ¥ 2,730
2006-03-17
amazonで詳しく見る

| | コメント (0) | トラックバック (0)

2007-12-21

やる夫がguestOSインストールエラーに直面したようです。

boot時エラー

特に記載する程のことではないですが、VMware構築時にはまったので記載します。

boot:
Loading SA.1...............
Loading SA.2............................................

Ready.
Uncompressing Linux... Ok, booting the kernel.
PCI: Cannot allocate resource region 4 of device 00:7.1

Booting the system, pleasy wait...
To begin replication, please insert your replication floppy.
Replication will begin once the system has booted.

Unsupported system detected. Press <ENTER> to reboot the system.

bootCD(だと思っていた)を入れたのに、インストールが開始されないで、
こんなメッセージが出力されました。内容としては・・・。

”さっきからboot準備して待っていますがなにか?”
”次にお進みになりたい場合は、bootフロッピーでも入れとけカス”

Dell PowerEdge TM Installation and Server Management って
bootCDではなかったようです。よく見ると”Quick installation support for the following”って
インストールをカンタンにしてあげますよCDだったようです。
Dell PowerEdge なら反応するけど、VMwareの仮想マシンには反応しませんってことです。
解決策としては、”DISK1”とか書いてあるCDからセットしてみて下さい。

| | コメント (0) | トラックバック (0)

2007-12-20

やる夫がsquid-3.0を導入するようです。

squid について

あまり良く分かっていないのですが、キャッシュとして利用したり出来るようです。他には動作確認用の逆proxyサーバとして利用したりできます。例えば、運用中のアプリサーバがロードバランサでランドロビンされているときとかに、squidを使えば裏から特定のホストへアクセスすることが出来ます。ロードバランサ側で”stick”とか使えば良いではないですか?と言われればそれまでです。

       ____
     /_ノ   ヽ_\
   /( >)  (<)\     検証環境で動作確認したので
  /::::::⌒(__人__)⌒::::: \                運用に適用するお!
  |     |r┬-/      |  
  \    ` ̄'´     /

     ____ 
   /      \
  /  ─    ─\ 
/    (●)  (●) \    ・・・と思ったが、念のため1台だけ
|       (__人__)    |         適用して動作確認したいのだが・・・
/     ∩ノ ⊃  /  
(  \ / _ノ |  |     ロードバランサーから外すと、外からアクセスできないし・・・
.\ “  /__|  |   
  \ /___ /

         |
     \  __  /
     _ (m) _
        |ミ|
      /  `´  \
       ____
     /⌒  ⌒\
   /( ●)  (●)\    squid入れて逆proxyすれば
  /::::::⌒(__人__)⌒::::::\       裏から動作確認できるお!
  |     |r┬-|     |    
  \      `ー'´     /

ロードバランサー(VIP側)から、動作検証用にサービス機を外すと、アクセスできなくなりますので、インターネット --> squid --> ローカルネットワーク --> 対象サーバ  っとこんな感じで、やる夫は確認をしようとしています。

  internet
        yaruo.co.jp         proxy:yaruo.co.jp
        |         |          |
        |         |          |
  LB ===+=========-===       |
        |                    |
        |                    |
        V                    V
    +-------+ +-------+  +-------+
    |master | |slave  |  | squid |
    +---+---+ +---+---+  +---+---+
        |         |          |    
    ----+---------+----------+----- 192.168.2.0/24   
    ※slaveをLBから切り離します。

squid-3.0 インストール

ファイル入手

squidはフリーウェアです。http://www.squid-cache.org/

下記例では、”/usr/local/squid”で作業するものとします。

cd /usr/local/squid
# gzip -d squid-3.0.PRE5-20061208.tar.gz      
# tar -xvf squid-3.0.PRE5-20061208.tar
# cd squid-3.0.PRE5-20061208
# make
# make install

squid.conf ファイルの設定

# /usr/local/squid/etc/squid.conf
-----
#20061210 setup squid デフォルトポートは3128
http_port 3128

#20061210 setup アクセス許可するセグメント設定
acl yaruo src 192.168.xx.xx/255.255.255.0      

#20061210 setup アクセス許可設定
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost
http_access allow yaruo

#20061210 setup
cache_effective_user nobody
-----

  • 参考程度に見てください。

squid 初期化

# /usr/local/squid/sbin/squid -z
2006/12/10 09:40:55| Creating Swap Directories
2006/12/10 09:40:55| storeDirWriteCleanLogs: Starting...
2006/12/10 09:40:55| log.clean.start() failed for dir #0
2006/12/10 09:40:55|   Finished.  Wrote 0 entries.
2006/12/10 09:40:55|   Took 0.0 seconds (   0.0 entries/sec).
FATAL: Failed to make swap directory /usr/local/squid/var/cache: (13) Permission denied
アボートしました
 

  • /usr/local/squid/var/ 配下のパーミッションがおかしいようです。

squid log,cache ディレクトリのパーミッション設定

今回は適当に755で・・・。644とかでも良いかも。

# chmod 755 /usr/local/squid/var
# /usr/local/squid/sbin/squid -z
2006/12/10 09:42:46| Creating Swap Directories
2006/12/10 09:42:46| Making directories in /usr/local/squid/var/cache/00
2006/12/10 09:42:46| Making directories in /usr/local/squid/var/cache/01
2006/12/10 09:42:46| Making directories in /usr/local/squid/var/cache/02
2006/12/10 09:42:46| Making directories in /usr/local/squid/var/cache/03
2006/12/10 09:42:46| Making directories in /usr/local/squid/var/cache/04
2006/12/10 09:42:46| Making directories in /usr/local/squid/var/cache/05
2006/12/10 09:42:46| Making directories in /usr/local/squid/var/cache/06
2006/12/10 09:42:46| Making directories in /usr/local/squid/var/cache/07
2006/12/10 09:42:46| Making directories in /usr/local/squid/var/cache/08
2006/12/10 09:42:46| Making directories in /usr/local/squid/var/cache/09
2006/12/10 09:42:46| Making directories in /usr/local/squid/var/cache/0A
2006/12/10 09:42:46| Making directories in /usr/local/squid/var/cache/0B
2006/12/10 09:42:46| Making directories in /usr/local/squid/var/cache/0C
2006/12/10 09:42:46| Making directories in /usr/local/squid/var/cache/0D
2006/12/10 09:42:46| Making directories in /usr/local/squid/var/cache/0E
2006/12/10 09:42:46| Making directories in /usr/local/squid/var/cache/0F
 

squid 起動

# /usr/local/squid/sbin/squid start
# ps -auxw | grep squid
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.3/FAQ
root     22067  0.0  0.1  5716 2652 ?        Ss   09:43   0:00 /usr/local/squid/sbin/squid start
nobody   22069  1.6  0.3  9056 6300 ?        S    09:43   0:00 (squid) start
 

squid 停止

# /usr/local/squid/sbin/squid stop 

ブラウザの設定

  • address:192.168.yy.yy    <-- squid サーバ
  • port:3128

ログトレースしたり、”tcpdump”仕掛けたりすると、導通が確認できる筈です。

| | コメント (0) | トラックバック (0)

やる夫がiptablesの設定をするようです。

iptablesについて

iptablesとは、パケットフィルタを行うソフトウェアです。必要のないポートは塞いでしまいましょう。ファイアウォールとかそんな感じです。

iptables 設定

# /sbin/iptables -L -n
Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

  • 全開状態です。危険です。

iptablesの設定方法は、2つあります。一つは現在の状態に対して、追加する方法と、もう一つは、設定ファイルを読み込ませて、設定を反映させる方法です。

コマンドから設定

注意点としては、運用中のサービスへiptablesの設定を要するときは、こっちの設定の方がよいです。影響範囲としては、瞬断ですが、arp等の設定が再構築(?)したりして、反映までに導通が出来なくなったりするときがあるようです(あった)。30分くらい重たい状態が続いた・・・。

# /sbin/iptables -A INPUT -p tcp --dport 23 -j ACCEPT

  • 今回の例では、23番(telnet)ポートの開放です。

# /sbin/iptables -L -n
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:23

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

  • -L オプションはiptablesの設定表示です。
  • -n 設定内容のport番号表示です。

設定ファイルから設定

サーバの再起動時に、下記ファイルを読み込みに行きます。再起動後にまたiptablesの設定をすることがないように要設定。サーバがデータセンターにあるのに、この記述がされていないと、”telnet”出来なくなったり・・・悲劇です。

  • 嘘ですデフォルトは22番(ssh)が設定されているので、然程困ることでもない。

vi /etc/sysconfig/iptables
-----
# Firewall configuration written by system-config-securitylevel
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 25 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT
-----

  • デフォルトはこんな感じです。

# /sbin/service iptables restart
ファイアウォールルールを適用中:                [  OK  ]
チェインポリシーを ACCEPT に設定中filter       [  OK  ]
iptables モジュールを取り外し中               [  OK  ]
iptables ファイアウォールルールを適用中:       [  OK  ]

ポート一覧

よく使うport一覧(デフォルト)です。任意に編集したい場合は”/etc/services”で変更可能です。

ポート番号

サービス

21

ftp

22

ssh

23

telnet

25

smtp

80

http

3128

squid

3306

mysql

5432

postgresql

5801

vnc

8080

tomcat

11211

chache

| | コメント (0) | トラックバック (0)

やる夫がpostfix-2.1.6-1をインストールするようです。

はじめに

とりあえず作りかけ随時更新すること。

postfix-2.1.6-1 インストール

Red Hat Enterprise Linux ES release 4 のCDに下記rpmがあったのでそのまま利用します。ソースからコンパイルするのも結構ですが、sendmailとの兼ね合いで面倒くさいです(新宿Vipperがヘッポコなだけですが・・・)。

# rpm -ivh postfix-2.1.6-1.rhel4.i386.rpm

postfix の各種設定

aliases の設定

-----
skip ココが一番重要なんだけどね
-----

aliases.db の作成

# /usr/sbin/postalias /etc/postfix/aliases

設定の反映

# newaliases
WARNING: local host name (stgapl003-v) is not qualified; see cf/README: WHO AM I?
/etc/aliases: 78 aliases, longest 10 bytes, 802 bytes total

  • WARNING だから気にしない(?)知らん・・・。
  • hosts にメールドメインを追記する必要があります。コレしないと”newaliases”コマンド打つと時間がかかってしまいます。対応しなくてもよい。

postfix 起動+停止

起動

# /etc/init.d/postfix start
Shutting down postfix:                                    
[  OK  ]
Starting postfix:                                          
[  OK  ] 

停止

/etc/init.d/postfix stop
Shutting down postfix:                                    
[ OK ] 

メール送信確認

# telnet localhost 25
Trying 127.0.0.1...
Connected to vipper.com (127.0.0.1).
Escape character is '^]'.
220 yaruo.com ESMTP Postfix (2.1.6)
mail from:yaruo@vipper.co.jp
250 Ok
rcpt to:yaruo@vipper.co.jp
250 Ok
DATA
354 End data with <CR><LF>.<CR><LF>
Subject: yaruo
I'm Vipper
.
250 Ok: queued as C831B200DD
quit
221 Bye
Connection closed by foreign host.

  • ちゃんとメールが送られてきますた。

おまけ

ログ出力先

/var/log/maillog

バージョン確認方法

# /usr/sbin/postconf | grep mail_version
mail_version = 2.1.6
smtpd_banner = $myhostname ESMTP $mail_name ($mail_version)

| | コメント (0) | トラックバック (0)

up2date [パッケージ管理コマンド]

<h4>はじめに

”up2date”はRHESで使用されるパッケージ管理コマンドです。このコマンドを利用すれば、パッケージのアップデートやインストールなどが行えます。

Red hat更新エージェント ウィザード

誤った内容でユーザ登録した場合や、既に登録しているにもかかわらず再度ユーザ登録をした場合などには、Red Hat Network の登録をやり直す必要があります。

# cd /etc/sysconfig/rhn
# mv systemid systemid.org
# up2date --register

Up2date_1

Up2date_2

Up2date_3












流れにそって、登録作業します。

up2date コマンド操作(例)

パッケージのインストール

下記は”alsa-lib-devel”をインストールする場合の例

# up2date --install alsa-lib-devel

Fetching Obsoletes list for channel: rhel-i386-es-4...

Fetching rpm headers...
########################################

Name                                    Version        Rel
----------------------------------------------------------
alsa-lib-devel                          1.0.6          5.RHEL4           i386

Testing package set / solving RPM inter-dependencies...
########################################
alsa-lib-devel-1.0.6-5.RHEL ##                          59 k/sec, 00:00:1
########################## Done.
pkgconfig-0.15.0-3.i386.rpm #########################   47 k/sec, 00:00:0
########################## Done.
Preparing             ########################################### [100%])

Installing...
   1:pkgconfig              ###############################             (
########################################### [100%]
   2:alsa-lib-devel                                                     (
########################################### [100%]
The following packages were added to your selection to satisfy dependencies:

Name                                    Version        Release
--------------------------------------------------------------
pkgconfig                               0.15.0         3

パッケージの確認

# rpm -qa alsa-lib-devel
alsa-lib-devel-1.0.6-5.RHEL4

パッケージの削除

# rpm -e alsa-lib-devel

鍵のインポート

# rpm --import /usr/share/doc/redhat-release-4ES/RPM-GPG-KEY

| | コメント (0) | トラックバック (0)

やる夫がvnc-4_1_2 を使うようです。

はじめに

前記事で、VMwareの構築をしましたが、作業端末とサーバのロケーションが違う場合かなり面倒くさいです。vncを利用するとネットワークに繋がった他のコンピュータの画面を遠隔に操作することが出来るため、結構楽です。

realvnc のインストール

Red Hat Enterprise Linux ES release 4 のCDに下記rpmがあったのでそのまま利用します。無い場合は、http://www.realvnc.com/index.html から入手してみて下さい。

# rpm -Uvh vnc-4_1_2-xxx_linux.rpm

  • コレだけ。

vncserver 起動+停止

起動

# /usr/bin/vncserver :1
You will require a password to access your desktops.
Password:

# /usr/bin/vncserver -geometry 1280x1024 -depth 16  :1

  • 最初だけPasswordを聞かれます。rootのパスワードを設定しました。

停止

# /usr/bin/vncserver -kill :1

vncserver 設定

解像度設定

# vi /usr/bin/vncserver
-----
$geometry = "1024x768";
#$geometry = "1100x828";
$depth = 16;
-----

  • geometry 解像度の指定デフォルトは”800×600”だった気がする。
  • depth 画面の色上記だと16ビット

ビジュアル(?)設定

”goneme”で立ち上げるため、”xstartup”ファイルの設定を必要とします。デフォルトでは”twm”で立ち上がるようです。なにが違うかは、それぞれ2パターンをお試し下さい。”twm”は残念な感じです。

# vi /root/.vnc/xstartup
-----
#20071206 setup
#twm &
exec gnome-session &
-----

接続確認

構築したサーバのIPアドレスにport:5801でアクセスします。 http://192.168.xx.xx:5801/ ブラウザなら何でも良いです。

-----
ERROR
The requested URL could not be retrieved

Access Denied.
-----

と出たら、恐らくportが空いていないと思います。iptablesの設定をお願いします。

vnc-4_1_2-x86_win32 のインストール

ブラウザからのアクセスだと、カーソルがぶれたり、画質が汚かったりします。ですのでvncクライアントをインストールしてみます。

http://www.realvnc.com/products/download.html

Free Editionの”Download & use”をクリック。ユーザデータを聞いてくるので、適当に入力してダウンロードしてみて下さい。セットアップは、画面なりでクリックしていけばインストールされる筈。

Vnc






”192.168.xx.xx:1”として”OK”クリック

Vnc2





rootパスワードで設定したので入力。下記のように表示されます。

Vnc3_2

| | コメント (0) | トラックバック (0)

やる夫がpostgresql-8.1.4 をインストールするようです。

postgreSQL user group の作成

# /usr/sbin/groupadd -g 1001 postgres
# /usr/sbin/useradd -g 1001 -u 1001 postgres
# /usr/bin/passwd postgres

postgreSQL インストール

ファイルのダウンロード

下記URLより、ファイルを取得して下さい。今回はソースファイルからコンパイルする方法でインストールします。特に意味は無いですが、rpmの方が楽かと思います。

http://www.postgresql.org/ftp/source/

# md5sum postgresql-8.1.3.tar.gz
MD5 (postgresql-8.1.4.tar.gz) = 2717019b3626f7420a54c25c2e83231c

  • MD5 ダウンロードしたファイルの正当性を検証するためのチェックサムファイル。

コンパイル+インストール

$ su postgres
$ gzip postgresql-8.1.4.tar.gz
$ tar -xvf postgresql-8.1.4.tar
$ ./configure
$ gmake
$ gmake check
$ exit
# gmake install
# cd /usr/local
# chown -R postgres:postgres pgsql

  • わざわざ”postgres”にならなくても問題ないと思った・・・

initdb

新しいPostgreSQLのデータベースクラスタの作成

# su - postgres
$ /usr/local/pgsql/bin/initdb --no-locale --encoding UNICODE -D /usr/local/PGData

おまけ

上記手順でインストールは完了です。DBを操作していく上で下記エラーが出た場合の対処方法を記します。予めインストールしておいた方が良いかもしれませんね。

ERROR:  could not access file libdir/dbsize    <-- (*1)
ERROR:  could not access file libdir/pgstattuple.so    <--(*2)   
ERROR:  could not load library pgstattuple.so

  • (*1) データ領域を調べるために必要なライブラリが無いため発生したエラー

# cd /usr/local/postgres/postgresql-8.1.4/contrib/dbsize
# gmake
# gmake install

  • (*2) pgstattuple ライブラリが無いため発生したエラー

# cd /usr/local/postgres/postgresql-8.1.4/contrib/
# make && make install

| | コメント (0) | トラックバック (0)

2007-12-19

やる夫がVMware gestOSをインストールするようです。

はじめに

今回はRed Hat Enterprise Linux ES release 4をGuestOSへインストールする手順を記載します。な