投げ銭

★当サイトへの投げ銭(PayPal)★

LINK


(無償)
logo
世界中で使われるISO標準オフィスソフト(MSオフィス互換)
The Document Foundation Wiki

人気の投稿(1ヶ月間)

Ad

Ad

投げ銭

★当サイトへの投げ銭(PayPal)★

2011年12月31日土曜日

【MS Windows 7 pro sp1】Windows7ファイアーウォールの考え方

Windows7のファイアーウォールの考え方について

業務用ルーターなどと違って、Windows7のファイアーウォールでは、
少々その理解の仕方を変えたほうが良いようだ。

業務用ルーターでのファイアーウォールは、
各ネットワークインターフェイス毎に通信ルールを一つ一つ設定し、このネットワークインターフェイスの制御を行っていると考えると良かった。

しかし、Windows7のファイアーウォールでは、
通信ルールの集合である既存のプロファイルにネットワークインターフェイスを関連付けることで、
ネットワークインターフェイスの制御を行っていると考えると理解しやすかった。

(注)以下、憶測も混じっているので、十分に検証して使用する必要がある



■ファイアウォールのプロファイル■

WINDOWS7で使われる防御ルールは、3種類のプロファイルを組み合わせて構成される。
ここでプロファイルとは、安全な通信を許可し安全でない通信を拒否するためのルールの集合体である
また、各プロファイルには、それをどのネットワークインターフェイスに関連付けるかについても設定を行う
関連付けられたインターフェイスはそのプロファイルによって保護される。

ネットワークインターフェイスが接する外部の環境に応じて、プロファイルは3種用意されている。
それぞれ、「パブリック」、「プライベート」、「ドメイン」である。
ユーザーは自分でルールを一つ一つ考え作成する必要がない。
 
また、プロファイルは、ユーザーのニーズに応じて通信ルールを調整することも可能である。
ほとんどの場合、通信を必要とするアプリケーションとのダイアログでユーザーが応じることで、自動的に再設定される。



■プロファイルと、ネットワークインターフェイス■

プロファイルに関連付けられたネットワークインターフェイスはそのルールの集合によって保護される
逆に、いずれのプロファイルにも関連付けられていないネットワークインターフェイスは、無防備な状態になると考えられる。
しかし安全なネットワークでは別の言い方をすれば、ネットワーク通信の障害を引き起こすファイアウォールをそのインターフェイスから取り外した状態になる。

私の環境では、どのプロファイルにも関連付けていないネットワークインターフェイスのみが、
外部からのpingコマンドにリプライメッセージを返した
(=どれか一つでもプロファイルに関連付けていると応答しなかった。)


私の環境では、デフォルトで各インターフェイスは3種類全てのプロファイルに関連付けられていた。
(=各プロファイルそれぞれで、同じインターフェイスが関連付けられていた。)
複数のプロファイルに関連付けられたネットワークインターフェイスが、どのようにプロファイルの適用を受けるのか詳しいことはわからない。
インターフェイスから、そのうち一つでもこの保護プロファイルを外せば×印でファイアーウォール警告が表示された。


■プロファイルの設定■

各プロファイルの詳細を表示させるには、次の手順で、専用のウインドウを開く。

○プロファイルに設定された各通信ルールを表示させる
「コントロールパネル」から、「WINDOWSファイアウォール」をクリックし、
さらにそこから「詳細設定」を開く。
左欄にある「受信の規則」「送信の規則」をクリックし、それぞれの通信ルールを表示させられる。

○各プロファイルにどのネットワークインターフェイスが関連付けられているかを表示させる
左欄ルートの「ローカルコンピューターのセキュリティーが強化されたWINDOWSファイアウォール」項目をクリックし、
右側に表示された「概要」から、「WINDOWSファイアウォールのプロパティー」をクリックする。

すると、4つのタブを持ったウインドウが表示され、それぞれ次のような名前が書かれている。
・パブリック プロファイル
・プライベート プロファイル
・ドメイン プロファイル
・IPSecの設定

3つのプロファイルそれぞれの「状態」欄には、「保護されているネットワーク接続」という項目があり、
このプロファイルに関連付けるネットワークインターフェイスを選択することができるようになっている
チェックボックスを操作し、「適用」ボタンを押すことによって、
このプロファイルに関連付けるインターフェイスを設定できる。

(参考)
 ファイアウォールのプロファイルについて
< http://technet.microsoft.com/ja-jp/library/cc731634%28WS.10%29.aspx > 2011年12月31日

2011年12月26日月曜日

【VMware vSphere Hypervisor 5.0.0 インストーラー】NO DEFAULT or UI configuration directive found ! の対策について【ESXi 5】

VMware vSphere Hypervisor 5.0.0のインストールCDをブートしているとき、次のようなエラーが生じた。
NO DEFAULT or UI configuration directive found !
そして、boot: というプロンプトが表れて停止した。



■対策(1)■
今回、その原因はどうやら、SATA接続のDVD-ROMドライブ(CD-ROMドライブ)が、
AHCIモードで接続されていたことにあるようだった

BIOSの設定で、光学ドライブを接続しているSATAポートのみ、IDEモードに切り替えた
すると、問題なくインストーラーは起動した。
(HDDを接続しているポートは、AHCIモードのままにした。)


■対策(2)■
あるいは、boot: というプロンプトで次のようにコマンドを入力すると良いようだ。


mboot.c32 -c boot.cfg

すると、インストーラーが起動した。



結局、対策(1)を選んで、ESXI 5のインストールを続行し、無事に解決できた。



(参照)
VMWare vSphere Hypervisor (ESXi) 5.0 installation “no DEFAULT or UI” on boot
< http://www.ivanlam.info/blog/2011/11/04/vmware-vsphere-hypervisor-esxi-5-0-installation-no-default-or-ui-on-boot/ > 2011年12月26日

2011年12月25日日曜日

【VMware vSphere Hypervisor 5.0.0】仮想マシンのコンフィグレーションファイルの名前を後から変更する方法【ESXi 5】

仮想マシンを構成しているファイルの名称を変更する方法について


!警告! ただし、スナップショットは一切使っていないものとする。
(スナップショットを使っている場合は問題が生じるようだ)

!注意! 必ずバックアップをとってから行うようにする。仮想マシンが壊れてしまうかもしれない。


1、対象のゲストマシンをシャットダウンさせ、poweroff状態にしておく。

2、sshでESXI5に入って仮想マシンのディレクトリに移動し、仮想マシンを構成しているファイル名を変更する

例として、guestos_originalを、guestosに変更する場合には次のようにする
# mv guestos_original.nvram guestos.nvram
# mv guestos_original.vmdk guestos.vmdk
# mv guestos_original.vmsd guestos.vmsd
# mv guestos_original.vmx guestos.vmx
# mv guestos_original.vmxf guestos.vmxf
# mv guestos_original-flat.vmdk  guestos-flat.vmdk


3、変更したファイル名を、.vmxファイルに設定する

各設定項目に変更済みの新しいファイル名を設定する。
guestos-xxxxxxx.vswpの、ハイフンより先、xxxxxxxは英数字で構成されている。
次のように、ハイフン以下を新しい名称(この例では、guestos)に連結するようにする。
# vi guestos.vmx
nvram = "guestos.nvram"
extendedConfigFile = "guestos.vmxf"
scsi0:0.fileName = "guestos.vmdk"
sched.swap.derivedName = "/vmfs/volumes/xyzxyzxyzxyz/guestmachinename/guestos-xxxxxxx.vswp"


4、変更したファイル名を、.vmdkファイル(容量の小さいメタファイルの方)に設定する
次の設定項目に変更済みの新しいファイル名を設定する
# vi guestos.vmdk
RW 209715200 VMFS "guestos-flat.vmdk"


5、変更後は、vSphere Clientをつかってこの仮想マシンをインベントリに再登録する

もし、以前の名称で登録されている場合には、まず「仮想マシンインベントリから削除(Y)」を行う。
次に、「サマリ」タブを開き、「ストレージ」からデータストアを右クリックし、「データストアの参照(B)」を選択する。
仮想マシンを選び、vmxファイルを右クリックし、「インベントリへの追加(A)」を選ぶ。



このようにすることによって、仮想マシンを構成するファイル名を変更し、無事に起動することができた。
ただし、スナップショットは一切使っていない場合に限る


(参考)
.vmdk Snapshots and the Importance of CID Chains
< http://redshift10.blogspot.com/2008/04/vmdk-snapshots-and-importance-of-cid.html > 2011年12月25日

【VMware vSphere Hypervisor 5.0.0】仮想マシンのスワップを無効化し高速化を期待する【ESXi 5】

ESXI 5では、ゲストマシン動作時にホスト物理メモリを占有するのをできるだけ少なくするために、
ホスト側でメモリスワップファイルを設けている。
ゲストに割り当てられたメモリの一部を、ホスト側でメモリスワップファイルに書き出しているようだ。
これはデフォルトの動作である。

しかし、ゲストに割り当てられるメモリを全てホスト物理メモリから与えてやり、メモリスワップファイルを無効にすることができる
これによって、ゲストマシンの高速動作を期待できる。
また、SSDを使っている場合にはスワップファイルへの書き込みによるディスク劣化を防げるのだろう。

スワップを使わないようにする設定は、vSphere Clientで行える
今回扱った仮想マシンのバージョンは、8だった。


<手順>
1、対象の「仮想マシン」をシャットダウンしておく。

2、対象の「仮想マシン」を右クリックし、「設定の編集(E)」を開く。

3、「リソース」タブを開き「メモリ」を選択して、右欄の「リソース割り当て」で、
「すべてのゲスト メモリを予約(ロック)」にチェックを入れ、「OK」をクリックする。


設定後、仮想マシンを起動させた。(物理メモリに余裕がなければ、エラーで起動しなかった。
例えば、2.5GBのメモリを割り当てていた仮想マシンでは、
設定前ではスワップファイルの大きさが2.4GBだったのに対し、設定によってそのサイズは、0になった

○設定(スワップファイル有効時)
-rw-------    1 root     root        50.0M vmx-guestos-xxxxxxxxxx-1.vswp
-rw-------    1 root     root         2.4G guestos-yyyyyyyy.vswp

○設定スワップファイル無効時
-rw-------    1 root     root        50.0M vmx-guestos-xxxxxxxxxx-1.vswp
-rw-------    1 root     root            0 guestos-yyyyyyyy.vswp

ただし、50メガバイトのファイルはそのままだった。

そして仮想マシンの動作は、体感であるが軽快になったと思う。



◎ちなみに、変更を行った仮想マシンの設定ファイル(.vmxファイル)上には、次の項目が追記されていた。

多分、上二つは、vmware toolsをインストールしたときに設定された項目だと思う。
下二つのみが、スワップ無効化の設定によって、今回追記されたのだと思う。
tools.syncTime = "FALSE"
unity.wasCapable = "FALSE"
sched.mem.min = "2500"
sched.mem.pin = "TRUE"
前述の通りvSphere Clientを使って設定できるので、.vmxファイルを直接操作する必要はない。

(注意)
ホストメモリが十分ではない場合、ゲストマシンの起動が許可されない。次のようにエラーになる。
ぎりぎりでは駄目みたい。
仮想マシンのパワーオンに失敗しました。
仮想マシンをパワーオンできませんでした: メモリ リソースの許可チェックに失敗しましたリソース管理設定の詳細については、VMware ESX リソース管理ガイドを参照してください。
グループ vm.236833: 仮想マシン vmm0:guestos-yyyyyyyy のメモリ割り当てパラメータが無効です。(分: 640000、最大: -1、minLimit: -1、共有: -1、単位: pages)
グループ vm.236833:仮想マシンを受け入れられません:メモリ の受け入れチェックが失敗しました。要求された予約: 667609 pages


(参考)
Migrating to ESXi 5 Worth the Trip
< http://wfcastle33.wordpress.com/2011/11/02/migrating-to-esxi-5-worth-the-trip/ > 2011年12月25日

【VMware vSphere Hypervisor 5.0.0】作成した仮想マシンファイルをとりあえず簡易にバックアップする方法【ESXi 5】

とりあえず手動で仮想マシンファイルのバックアップする方法


ESXI 5では、普通にcpコマンドを使って、HDDイメージであるvmdkファイルをコピーすると、
「シン」タイプのvmdkファイルであるにもかかわらず、ホストの物理領域を大きく占有してしまった。

「シン」タイプのvmdkファイルのバックアップをとる場合には、 専用ツール(vmkfstools -i)を使う必要がある


□まずは、sshでESXI 5.0.0にログイン

データストアのディレクトリに移動する
# cd /vmfs/volumes/datastore1/

バックアップ用ディレクトリを作成する
# mkdir backup-guestmachine

対象の仮想マシンのディレクトリに移動する
# cd guestmachine


□次に、二つの手順で、仮想マシンファイルをバックアップする


 1、先にvmdkファイル以外のファイルを全てコピーする

(注意) `find . ! -name '*.vmdk' -type f` の部分で、「`」を使っているが、これはバッククォート(@キーをshiftで押して得られるもの)である。
また、「!」は否定を意味する。
各行でエンターし一連のコマンドを入力する。doneの行ではエンターで一連のコマンドが実行される。

# for f in `find . ! -name '*.vmdk' -type f`
> do cp $f ../backup-guestmachine/
> done
この処理はすぐに終わった。


2、次に、ディスクイメージに相当するvmdkファイルを、「シン」タイプでクローニングする
# vmkfstools -i ./guest.vmdk -d thin ../backup-guestmachine/guest.vmdk
Destination disk format: VMFS thin-provisioned
Cloning disk './guest.vmdk'...
Clone: 100% done.  ←進捗は一定でなく、速く進むところがあった。

これによって、あて先ディレクトリに、-flat.vmdkファイルと、vmdkが生成される。
ただし、-flat.vmdkファイルは、lsコマンドではプロビジョニング後の「容量」しか表示されない
実際の物理的な占有サイズは、「df -h」コマンドを使ってマウントポイントごとに確かめる。



実際の占有サイズが5GBほどのthin-provisionedディスクイメージ(900GB)を上のコマンドを使いコピーした結果、次のことがわかった。
<ローカルからNFSに転送した場合>
ネットワーク上には5GBほどしか流れなかった。

<NFSからローカルディスクに転送した場合>
ネットワーク上には900GBのデータが流れた。
シンタイプのイメージであっても、いったん言わばシック状態に戻されて転送されるのかもしれない。
しかし転送先のディスクにはシン状態で再び保存されるようである。
ローカルからNFSにバックアップするとき、シンタイプディスクイメージの転送はとても早く済むので時間の節約になった。




(参考)
・ESXiでVMのホットバックアップをとるスクリプト
< http://blog.cles.jp/item/3731 > 2011年12月24日

・vmdk.flat
< http://communities.vmware.com/message/796481 > 2011年12月24日

・VMware ESXi で容量可変の仮想ディスクを作成/変換する
< http://www.maruko2.com/mw/VMware_ESXi_%E3%81%A7%E5%AE%B9%E9%87%8F%E5%8F%AF%E5%A4%89%E3%81%AE%E4%BB%AE%E6%83%B3%E3%83%87%E3%82%A3%E3%82%B9%E3%82%AF%E3%82%92%E4%BD%9C%E6%88%90/%E5%A4%89%E6%8F%9B%E3%81%99%E3%82%8B > 2011年12月24日

2011年11月29日火曜日

【Linux CentOS 5.7】【MYSQL 5.0.77】 MySQL Connector/Jを使ったクライアントから接続できるようMYSQLサーバー側にコネクターをインストールする

「Connector/Jを使ったクライアントから接続できるようMYSQLサーバー側にコネクターをインストールする」

JDBC driver(= MySQL Connector/J)を用いたクライアントアプリケーションからMYSQLへ接続するためには、
MYSQLサーバー側でもコネクターをインストールしている必要がある。
これは、そのインストール手順のメモである。


<前提> 
・OSは、CentOS 5.7 64bit版である。

対象にしたMYSQLのバージョンは5.0.77であり、
これは、YUMを使って次の手順でインストールし、初期設定を済ませている
http://akira-arets.blogspot.com/2011/11/linux-centos-57-mysqlyum.html



<方法>
前提であげたMYSQLサーバーがインストールされているマシンにおいて、
mysql-connector-javaというパッケージをYUMを使ってインストールする。

mysql-connector-javaというパッケージは、epelリポジトリに存在しているので、
先ず、epelリポジトリが利用できる状態にしておく必要がある。

(注意)
クライアントがリモートに存在する場合は、
さらに、MYSQLサーバー側でリモートアクセスを許可する設定が必要になる



<手順>
■epelリポジトリをyumリポジトリとして登録した
[root@localhost ~]# rpm -ivh http://download.fedora.redhat.com/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm

http://download.fedora.redhat.com/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm を取得中
警告: /var/tmp/rpm-xfer.XXXXX: ヘッダ V3 DSA signature: NOKEY, key ID
準備中...                ########################################### [100%]
   1:epel-release           ########################################### [100%]

[root@localhost ~]#

□mysql-connector-javaについて情報を表示させる
[root@localhost ~]# yum info mysql-connector-java
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp.nara.wide.ad.jp
 * epel: ftp.kddilabs.jp
 * extras: ftp.nara.wide.ad.jp
 * updates: ftp.nara.wide.ad.jp
Available Packages
Name       : mysql-connector-java
Arch       : x86_64
Epoch      : 1
Version    : 5.1.12
Release    : 2.el5
Size       : 2.5 M
Repo       : epel
Summary    : Official JDBC driver for MySQL
URL        : http://dev.mysql.com/downloads/connector/j/
License    : GPLv2 with exceptions
Description: MySQL Connector/J is a native Java driver that converts JDBC (Java Database
           : Connectivity) calls into the network protocol used by the MySQL database.
           : It lets developers working with the Java programming language easily build
           : programs and applets that interact with MySQL and connect all corporate
           : data, even in a heterogeneous environment. MySQL Connector/J is a Type
           : IV JDBC driver and has a complete JDBC feature set that supports the
           : capabilities of MySQL.

[root@localhost ~]#

■インストール作業を行った
[root@localhost ~]# yum install mysql-connector-java
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp.nara.wide.ad.jp
 * epel: ftp.kddilabs.jp
 * extras: ftp.nara.wide.ad.jp
 * updates: ftp.nara.wide.ad.jp
Setting up Install Process
Resolving Dependencies

========================================================================================================================================================================
 Package                                           Arch                          Version                                              Repository                   Size
========================================================================================================================================================================
Installing:
 mysql-connector-java                              x86_64                        1:5.1.12-2.el5                                       epel                        2.5 M
Installing for dependencies:
 antlr                                             x86_64                        2.7.6-4jpp.2                                         base                        1.1 M
 axis                                              x86_64                        1.2.1-2jpp.6                                         base                        3.6 M
 bcel                                              x86_64                        5.1-8jpp.1                                           base                        1.1 M
 classpathx-jaf                                    x86_64                        1.0-9jpp.1                                           base                        111 k
 classpathx-mail                                   x86_64                        1.1.1-4jpp.2                                         base                        1.2 M
 geronimo-specs                                    x86_64                        1.0-0.M2.2jpp.12.el5.centos                          base                        259 k
 geronimo-specs-compat                             x86_64                        1.0-0.M2.2jpp.12.el5.centos                          base                        5.5 k
 gjdoc                                             x86_64                        0.7.7-12.el5                                         base                        886 k
 jakarta-commons-discovery                         x86_64                        1:0.3-4jpp.1                                         base                        150 k
 jakarta-commons-httpclient                        x86_64                        1:3.0-7jpp.1                                         base                        596 k
 jakarta-commons-logging                           x86_64                        1.0.4-6jpp.1                                         base                        115 k
 java-1.4.2-gcj-compat                             x86_64                        1.4.2.0-40jpp.115                                    base                         29 k
 jpackage-utils                                    noarch                        1.7.3-1jpp.2.el5                                     base                         61 k
 libXtst                                           x86_64                        1.0.1-3.1                                            base                         16 k
 libart_lgpl                                       x86_64                        2.3.17-4                                             base                         75 k
 libgcj                                            x86_64                        4.1.2-51.el5                                         base                         18 M
 log4j                                             x86_64                        1.2.13-3jpp.2                                        base                        728 k
 mx4j                                              x86_64                        1:3.0.1-6jpp.4                                       base                        2.7 M
 regexp                                            x86_64                        1.4-2jpp.2                                           base                        102 k
 tomcat5-servlet-2.4-api                           x86_64                        5.5.23-0jpp.19.el5_6                                 base                        163 k
 wsdl4j                                            x86_64                        1.5.2-4jpp.1                                         base                        429 k
 xml-commons                                       x86_64                        1.3.02-0.b2.7jpp.10                                  base                         19 k
 xml-commons-apis                                  x86_64                        1.3.02-0.b2.7jpp.10                                  base                        388 k
 xml-commons-resolver                              x86_64                        1.1-1jpp.12                                          base                        170 k

Transaction Summary
========================================================================================================================================================================
Install      25 Package(s)
Upgrade       0 Package(s)

Total download size: 34 M

Installed:
  mysql-connector-java.x86_64 1:5.1.12-2.el5

Dependency Installed:
  antlr.x86_64 0:2.7.6-4jpp.2                                axis.x86_64 0:1.2.1-2jpp.6                            bcel.x86_64 0:5.1-8jpp.1
  classpathx-jaf.x86_64 0:1.0-9jpp.1                         classpathx-mail.x86_64 0:1.1.1-4jpp.2                 geronimo-specs.x86_64 0:1.0-0.M2.2jpp.12.el5.centos
  geronimo-specs-compat.x86_64 0:1.0-0.M2.2jpp.12.el5.centos gjdoc.x86_64 0:0.7.7-12.el5                           jakarta-commons-discovery.x86_64 1:0.3-4jpp.1
  jakarta-commons-httpclient.x86_64 1:3.0-7jpp.1             jakarta-commons-logging.x86_64 0:1.0.4-6jpp.1         java-1.4.2-gcj-compat.x86_64 0:1.4.2.0-40jpp.115
  jpackage-utils.noarch 0:1.7.3-1jpp.2.el5                   libXtst.x86_64 0:1.0.1-3.1                            libart_lgpl.x86_64 0:2.3.17-4
  libgcj.x86_64 0:4.1.2-51.el5                               log4j.x86_64 0:1.2.13-3jpp.2                          mx4j.x86_64 1:3.0.1-6jpp.4
  regexp.x86_64 0:1.4-2jpp.2                                 tomcat5-servlet-2.4-api.x86_64 0:5.5.23-0jpp.19.el5_6 wsdl4j.x86_64 0:1.5.2-4jpp.1
  xml-commons.x86_64 0:1.3.02-0.b2.7jpp.10                   xml-commons-apis.x86_64 0:1.3.02-0.b2.7jpp.10         xml-commons-resolver.x86_64 0:1.1-1jpp.12

Complete!
[root@localhost ~]#

MYSQLサーバーに対するコネクターのインストール作業はこれで完了した。
構成などは自動的にされているようで、問題なくクライアントからアクセスることが出来た。

ただし、クライアントがリモートに存在する場合は、
さらにMYSQLサーバー側でリモートアクセスを許可する設定が必要になる。

【MySQL 5.0.77】 リモートからのアクセスを許可する設定方法

ネットワーク上のリモートマシンからMySQLサーバーに接続するためには、MySQLサーバーで設定が必要になる。

mysqlコマンドプロンプトでGRANT文をユーザーごとに発行することで、ユーザーごとにリモートアクセスが許可された。
リモートアクセスの許可に伴ってそのユーザーに与える権限も指定する必要がある。

<手順>

■まず、mysqlコマンドプロンプトを起動する
[root@localhost ~]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 7
Server version: 5.0.77 Source distribution

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

mysql>

■GRANT文を次のように発行して、指定したリモートユーザーを許可し、例えば全ての権限を与える場合の設定
mysql> GRANT ALL PRIVILEGES ON *.* TO root@'192.168.0.0/255.255.0.0' IDENTIFIED BY "ここに対象ユーザーのパスワードを入力";
Query OK, 0 rows affected (0.00 sec)
mysql>
(コマンドの意味)
・ALL PRIVILEGES ON *.*
全てのデータベースとそのテーブルに対する、全ての権限を意味する

・root@'192.168.0.0/255.255.0.0'
指定したサブネットからアクセスするrootユーザーを意味する


これによって、直ちにリモートアクセスが可能になった
言うまでもなく、ファイヤーウォールなどのpass設定は別に必要になってくる。



□また例えば、指定したリモートユーザーを許可し、「SELECT」操作だけを許可する場合の設定
mysql> GRANT SELECT ON *.* TO username@'192.168.0.0/255.255.0.0' IDENTIFIED BY "ここに対象ユーザーのパスワードを入力";
Query OK, 0 rows affected (0.00 sec)


(参照)
How can I setup a remote connection to MySQL?
< http://help.hardhathosting.com/question.php/87 > 2011/11/29

2011年11月26日土曜日

【MYSQL 5.0.77】 相関クエリ内でdeleteできないこと、サブクエリと同一名のテーブルの行をメインクエリでdeleteできないこと

◎以下の操作は全て、phpMyAdmin - 2.11.11.3のSQL文発行機能をMYSQL 5.0.77に対して用いて行った。

相関クエリで行をdeleteできなかったことと、
サブクエリとメインクエリとで使っている同一名のテーブルについて、その行をメインクエリでdeleteできなかったことについて



先ず、次の相関クエリは通って結果を得ることができた。
select * from TMPADR t1
where t1.id > ( select min(t2.id) from TMPADR t2 where t1.number = t2.number )
しかし、これらの該当行を削除しようとする次のdelete相関クエリはエラーが発生して通らなかった。
delete from TMPADR t1
where t1.id > ( select min(t2.id) from TMPADR t2 where t1.number = t2.number )


相関クエリのサブクエリで用いているテーブルと同名のテーブルを、
メインクエリでdelete文の対象にしているためにエラーが生じるのかと考えて、
サブとメインとで異なるテーブルを用いる次の相関クエリを作成した。

TMPADRと、tmpadr2は全く同じ内容のテーブルである。
delete from TMPADR t1
where t1.id > ( select min(t2.id) from tmpadr2 t2 where t1.number = t2.number )
しかし、次のエラーが発生してdelete相関クエリは通らなかった。
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'where t1.id &gt; ( select min(t2.id) from tmpadr2 t2 where t1.number = t2.number )' at line 2 


①のクエリは通ったことから、
とりあえず、①の相関クエリの結果をWHERE句で指定し、相関クエリの外でDELETEしてみようとした。

先ず、DELETE文の代わりにSELECT文を次のように発行してみると、
クエリは通り、結果が返された。
SELECT * FROM TMPADR WHERE id IN (
  SELECT id FROM TMPADR t1 WHERE t1.id > (
    SELECT min(t2.id) FROM TMPADR t2 WHERE t1.number = t2.number )
)


つづいて、該当する行を削除する次のクエリを作成したが、またエラーが発生した。
DELETE FROM TMPADR WHERE id IN (
  SELECT id FROM TMPADR t1 WHERE t1.id > (
    SELECT min(t2.id) FROM TMPADR t2 WHERE t1.number = t2.number )
)
次のエラーが発生した。
#1093 - You can't specify target table 'TMPADR' for update in FROM clause 
そこで、DELETE文を発行しているメインクエリと、サブクエリである相関クエリで、同じテーブルを用いないようにしてみた。
TMPADRテーブルの複製を、tmpadr2テーブルとして作成した。
DELETE FROM TMPADR WHERE id IN (
  SELECT id FROM tmpadr2 t1 WHERE t1.id > (
    SELECT min(t2.id) FROM tmpadr2 t2 WHERE t1.number = t2.number )
)

すると、ようやく、クエリを受け付けてもらえて、該当行が削除された。


(まとめ)
MYSQL(5.0.77)+phpMyAdmin - 2.11.11.3で次のことができなかった。
・相関クエリでは、該当行を削除するdeleteを発行することができなかった。( ③のクエリ )
・サブクエリで使っている同じ名前のテーブルの行は、メインクエリからdeleteすることができなかった。( ⑤のクエリ )

相関クエリやサブクエリで扱われるテーブルは別名を与えたとしても、主クエリではselectすることはできるがその行をdeleteできなかったということになると思う。

これが標準的なSQLの動作なのかどうかはよくわからない。

2011年11月21日月曜日

【Linux CentOS 5.7】 phpMyAdminをYUMでインストールする

CentOS 5.7 64bit版に、phpMyAdminをYUMでインストールする手順メモ


phpMyAdminは、MySQLサーバーを管理・操作するためのGUIインターフェイスを提供する。
httpdと協調して動作するので、ユーザーはブラウザから扱うことができる。


<前提として>
MySQLが次の手順でインストールできていて、同一マシンにphpMyAdminをインストールすることとする。
http://akira-arets.blogspot.com/2011/11/linux-centos-57-mysqlyum.html



■システムのアップデートを行った
[root@localhost ~]# yum update
[root@localhost ~]# uname -a
Linux localhost.localdomain 2.6.18-274.7.1.el5 #1 SMP Thu Oct 20 16:21:01 EDT 2011 x86_64 x86_64 x86_64 GNU/Linux


■epelリポジトリを追加する
phpMyAdminは、標準のリポジトリには入っていない。epelリポジトリを追加しておく。
[root@localhost ~]# rpm -ivh http://download.fedora.redhat.com/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm
http://download.fedora.redhat.com/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm を取得中
警告: /var/tmp/rpm-xfer.XXXXX: ヘッダ V3 DSA signature: NOKEY, key ID
準備中...                ########################################### [100%]
   1:epel-release           ########################################### [100%]
[root@localhost ~]#


□phpMyAdminの情報を表示させる
[root@localhost ~]# yum info phpMyAdmin
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp.nara.wide.ad.jp
 * epel: ftp.jaist.ac.jp
 * extras: ftp.nara.wide.ad.jp
 * updates: ftp.nara.wide.ad.jp

Available Packages
Name       : phpMyAdmin
Arch       : noarch
Version    : 2.11.11.3
Release    : 2.el5
Size       : 4.2 M
Repo       : epel
Summary    : Handle the administration of MySQL over the World Wide Web
URL        : http://www.phpmyadmin.net/
License    : GPLv2+
Description: phpMyAdmin is a tool written in PHP intended to handle the administration of
           : MySQL over the World Wide Web. Most frequently used operations are supported
           : by the user interface (managing databases, tables, fields, relations, indexes,
           : users, permissions), while you still have the ability to directly execute any
           : SQL statement.


■phpMyAdminをインストールする
依存関係にあるhttpdや、phpなどもインストールされた。
[root@localhost ~]# yum install phpMyAdmin
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp.nara.wide.ad.jp
 * epel: ftp.jaist.ac.jp
 * extras: ftp.nara.wide.ad.jp
 * updates: ftp.nara.wide.ad.jp
Setting up Install Process
Resolving Dependencies
========================================================================================================================================================================
 Package                                    Arch                              Version                                          Repository                          Size
========================================================================================================================================================================
Installing:
 phpMyAdmin                                 noarch                            2.11.11.3-2.el5                                  epel                               4.2 M
Installing for dependencies:
 GeoIP                                      x86_64                            1.4.8-1.el5                                      epel                               783 k
 apr                                        x86_64                            1.2.7-11.el5_6.5                                 base                               119 k
 apr-util                                   x86_64                            1.2.7-11.el5_5.2                                 base                                79 k
 gd                                         x86_64                            2.0.33-9.4.el5_4.2                               base                               155 k
 gmp                                        x86_64                            4.1.4-10.el5                                     base                               201 k
 httpd                                      x86_64                            2.2.3-53.el5.centos.3                            updates                            1.2 M
 libXpm                                     x86_64                            3.5.5-3                                          base                                44 k
 libmcrypt                                  x86_64                            2.5.8-4.el5.centos                               extras                             105 k
 libxslt                                    x86_64                            1.1.17-2.el5_2.2                                 base                               488 k
 nginx                                      x86_64                            0.8.55-1.el5                                     epel                               389 k
 php                                        x86_64                            5.1.6-27.el5_5.3                                 base                               2.3 M
 php-cli                                    x86_64                            5.1.6-27.el5_5.3                                 base                               2.2 M
 php-common                                 x86_64                            5.1.6-27.el5_5.3                                 base                               153 k
 php-gd                                     x86_64                            5.1.6-27.el5_5.3                                 base                               118 k
 php-mbstring                               x86_64                            5.1.6-27.el5_5.3                                 base                               1.0 M
 php-mcrypt                                 x86_64                            5.1.6-15.el5.centos.1                            extras                              16 k
 php-mysql                                  x86_64                            5.1.6-27.el5_5.3                                 base                                89 k
 php-pdo                                    x86_64                            5.1.6-27.el5_5.3                                 base                                66 k
 pkgconfig                                  x86_64                            1:0.21-2.el5                                     base                                61 k
 postgresql-libs                            x86_64                            8.1.23-1.el5_7.3                                 updates                            197 k

Transaction Summary
========================================================================================================================================================================
Install      21 Package(s)
Upgrade       0 Package(s)

Total download size: 14 M

 Installed:
  phpMyAdmin.noarch 0:2.11.11.3-2.el5

Dependency Installed:
  GeoIP.x86_64 0:1.4.8-1.el5              apr.x86_64 0:1.2.7-11.el5_6.5           apr-util.x86_64 0:1.2.7-11.el5_5.2        gd.x86_64 0:2.0.33-9.4.el5_4.2
  gmp.x86_64 0:4.1.4-10.el5               httpd.x86_64 0:2.2.3-53.el5.centos.3    libXpm.x86_64 0:3.5.5-3                   libmcrypt.x86_64 0:2.5.8-4.el5.centos
  libxslt.x86_64 0:1.1.17-2.el5_2.2       nginx.x86_64 0:0.8.55-1.el5             php.x86_64 0:5.1.6-27.el5_5.3             php-cli.x86_64 0:5.1.6-27.el5_5.3
  php-common.x86_64 0:5.1.6-27.el5_5.3    php-gd.x86_64 0:5.1.6-27.el5_5.3        php-mbstring.x86_64 0:5.1.6-27.el5_5.3    php-mcrypt.x86_64 0:5.1.6-15.el5.centos.1
  php-mysql.x86_64 0:5.1.6-27.el5_5.3     php-pdo.x86_64 0:5.1.6-27.el5_5.3       pkgconfig.x86_64 1:0.21-2.el5             postgresql-libs.x86_64 0:8.1.23-1.el5_7.3

Complete!
[root@localhost ~]#


■httpdを自動起動させる設定を行った
[root@localhost ~]# chkconfig httpd on
[root@localhost ~]# chkconfig --list | grep httpd
httpd           0:off   1:off   2:on    3:on    4:on    5:on    6:off


■httpdの設定ファイルを変更した

先ず、設定ファイル変更の前にバックアップを取った。
[root@localhost ~]# cp /etc/httpd/conf.d/phpMyAdmin.conf /etc/httpd/conf.d/phpMyAdmin.conf.orig

設定ファイルを変更した。
下記のように赤文字列の行(Allow from 192.168.0.0/16)を追加し、
192.168.0.0/16ローカルサブネットからphpMyAdminにブラウザからアクセスできるようにした。

[root@localhost ~]# vim /etc/httpd/conf.d/phpMyAdmin.conf
(・・・省略)

<Directory /usr/share/phpMyAdmin/>
   Order Deny,Allow
   Deny from All
   Allow from 127.0.0.1
   Allow from ::1
   Allow from 192.168.0.0/16
</Directory>

<Directory /usr/share/phpMyAdmin/scripts/>
   Order Deny,Allow
   Deny from All
   Allow from 127.0.0.1
   Allow from ::1
   Allow from 192.168.0.0/16
</Directory>

(省略・・・)


■httpdを(再)起動させる
[root@localhost ~]# service httpd restart
httpd を停止中:                                            [失敗]
httpd を起動中:                                            [  OK  ]


■上で設定したローカルサブネット上のブラウザから、このマシンにHTTPで接続した

<例>192.168.X.YがphpMyAdminをインストールしたマシンだとすると、次のURLを使う。
http://192.168.X.Y/phpMyAdmin/index.php
すると、IDとパスワードの入力が求められたので、MySQLで設定したrootとパスワードを使った。
phpMyAdminのインターフェイスにアクセスすることができた。

2011年11月20日日曜日

【Linux CentOS 5.7】 MySQLをYUMでインストールする

CentOS 5.7 64bit版に、yumを使ってMySQLをインストールする手順メモ

 ■先ずシステムのアップデートを行った。
[root@localhost ~]# yum update
[root@localhost ~]# uname -a
Linux localhost.localdomain 2.6.18-274.3.1.el5 #1 SMP Tue Sep 6 20:13:52 EDT 2011 x86_64 x86_64 x86_64 GNU/Linux


■MySQLサーバーと、そのクライアントツールのインストールを行った。
[root@localhost ~]# yum install mysql-server mysql
========================================================================================================================================================================
 Package                                     Arch                                Version                                        Repository                         Size
========================================================================================================================================================================
Installing:
 mysql                                       i386                                5.0.77-4.el5_6.6                               base                              4.8 M
 mysql                                       x86_64                              5.0.77-4.el5_6.6                               base                              4.8 M
 mysql-server                                x86_64                              5.0.77-4.el5_6.6                               base                              9.8 M
Installing for dependencies:
 perl-DBD-MySQL                              x86_64                              3.0007-2.el5                                   base                              148 k
 perl-DBI                                    x86_64                              1.52-2.el5                                     base                              600 k

Transaction Summary
========================================================================================================================================================================
Install       5 Package(s)
Upgrade       0 Package(s)

Total download size: 20 M

Installed:
  mysql.i386 0:5.0.77-4.el5_6.6                       mysql.x86_64 0:5.0.77-4.el5_6.6                       mysql-server.x86_64 0:5.0.77-4.el5_6.6

Dependency Installed:
  perl-DBD-MySQL.x86_64 0:3.0007-2.el5                                                   perl-DBI.x86_64 0:1.52-2.el5

Complete!


■MySQLサーバーを自動起動させる設定を行う
[root@localhost ~]# chkconfig mysqld on
[root@localhost ~]# chkconfig --list | grep mysqld
mysqld          0:off   1:off   2:on    3:on    4:on    5:on    6:off
[root@localhost ~]#


■MySQLサーバーを起動する
初回では、案内のメッセージが表示された。
[root@localhost ~]# service mysqld start
MySQL データベースを初期化中:  Installing MySQL system tables...
OK
Filling help tables...
OK

To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system

PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:
/usr/bin/mysqladmin -u root password 'new-password'
/usr/bin/mysqladmin -u root -h localhost.localdomain password 'new-password'

Alternatively you can run:
/usr/bin/mysql_secure_installation

which will also give you the option of removing the test
databases and anonymous user created by default.  This is
strongly recommended for production servers.

See the manual for more instructions.

You can start the MySQL daemon with:
cd /usr ; /usr/bin/mysqld_safe &

You can test the MySQL daemon with mysql-test-run.pl
cd mysql-test ; perl mysql-test-run.pl

Please report any problems with the /usr/bin/mysqlbug script!

The latest information about MySQL is available on the web at
http://www.mysql.com
Support MySQL by buying support/licenses at http://shop.mysql.com
                                                           [  OK  ]
MySQL を起動中:                                            [  OK  ]
[root@localhost ~]#


■MySQLサーバーのセットアップを行う
[root@localhost ~]# /usr/bin/mysql_secure_installation

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MySQL
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MySQL to secure it, we'll need the current
password for the root user.  If you've just installed MySQL, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here
.

Enter current password for root (enter for none): ←インストールしたばかりで、MySQLのrootパスワードが未決定なので、そのままエンターを押す
 OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MySQL
root user without the proper authorisation.

Set root password? [Y/n] Y ←MySQLのrootパスワードを設定したいので、Yを入力する。

New password: ←設定したいパスワードを入力する。
Re-enter new password: ←確認のため、再度入力する。
Password updated successfully!
Reloading privilege tables..
 ... Success!

By default, a MySQL installation has an anonymous user, allowing anyone
to log into MySQL without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] Y ←セキュリティーのため匿名ユーザーを許可しない場合は、Yを入力する。
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] ←rootユーザーのリモートログインを認めるなら、nを押す。
 ... skipping.

By default, MySQL comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] n ←テスト用のデータベースを削除したくないなら、nを押す。
... skipping.

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] Y ←ここまでの設定内容を反映する場合は、Yを押す。
 ... Success!

Cleaning up...



All done!  If you've completed all of the above steps, your MySQL
installation should now be secure.

Thanks for using MySQL!


[root@localhost ~]#


■MySQLサーバーにログインできるか試す
[root@localhost ~]# mysql -u root -p  ←rootユーザーでログインを試みる

Enter password: ←上のセットアップで設定したパスワードを入力する

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 13
Server version: 5.0.77 Source distribution

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

mysql>
mysql> exit ←mysqlのコマンドプロンプトを終了する
Bye
[root@localhost ~]#


◎MySQLの管理・操作GUIを提供するphpMyAdminのインストール方法はこちらです。
http://akira-arets.blogspot.com/2011/11/linux-centos-57-phpmyadminyum.html

2011年11月16日水曜日

【Linux CentOS 5.7】 epelリポジトリを追加する

CentOS5.7 64bit版に、epelリポジトリを追加する


rpmファイルは頻繁にアップデートされて名称が変わるので、下記コマンドにおいて、変更後の名称に置換する必要がある。
ブラウザなどでリンクにアクセスし、新しいepel-release・・・ファイルを探せば良い。

[root@localhost ~]# rpm -ivh http://download.fedora.redhat.com/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm
あるいは、
[root@localhost ~]# rpm -ivh http://ftp.riken.jp/Linux/fedora/epel/5/x86_64/epel-release-5-4.noarch.rpm

http://download.fedora.redhat.com/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm を取得中
警告: /var/tmp/rpm-xfer.XXXXX: ヘッダ V3 DSA signature: NOKEY, key ID
準備中...                ########################################### [100%]
   1:epel-release           ########################################### [100%]

[root@localhost ~]#

2011年10月16日日曜日

【ASTERISK 1.6.2.12】【iaxmodem 1.2.0】iax peer名の最大長について

ASTERISK 1.6.2.12で、iaxmodemを接続するためにiax.conf で定義したピア情報について、余りに長いpeer nameを指定すると、次のようなエラーが発生して動作しなくなった。
ERROR[17355]: chan_iax2.c:4712 handle_call_token: Call rejected, CallToken Support required.
If unexpected, resolve by placing address <192.168.yyy.zzz> in the calltokenoptional list
or setting user <USER-NAME> requirecalltoken=no

peer nameに、65文字のものを指定すると、上記のエラーになった。
正確に調べるのは面倒なのでやっていないが、peer nameで58文字に抑えた場合うまく動作した

ただし、iaxmodem側が原因なのか、asterisk側が原因なのかは調べないとわからない。


ちなみに、間違って複数のiaxmodem側でpeer nameを重複させても、このエラーが発生した。

2011年10月15日土曜日

【ASTERISK 1.6.2.12】 #include<ファイル名>に存在しないファイル名を指定したときASTERISKは正常動作しない

ASTERISKでは、”#include<ファイル名>”ステートメントで、各種.confファイルにファイル内容を挿入することができるが、
ここで存在しないファイル名を指定すると、ASTERISKは正常に動作しなくなった。

たとえばextensions.confで、#includeステートメントをつかっていくつかのファイルを挿入しようとしたとする。
このうちいくつかのファイルは存在し成功したものの、いくつかのファイルは存在せずに失敗した場合には、
存在していて挿入できたはずのファイルに書かれていたコンテクストやエクステンションについても、ASTERISKは見つけられずに運用時にエラーとなった。

次のエラーがログに見られた。
(略)
ERROR[20071] config.c: The file 'abc.conf' was listed as a #include but it does not exist.
(略)
NOTICE[20086] chan_sip.c: Call from '123456789' to extension 'test' rejected because extension not found in context 'test-context'.
(略)
上記、エラーで表示されている、
コンテクスト'test-context'もエクステンション'test'も、#includeステートメントによって挿入されたはずの存在していたファイルに書かれていたものである。
これらは存在しない'abc.conf'に含まれていたわけではない。
それなのに、ASTERISKはこれらを見つけることができずにエラーとなった。

存在しないファイルを指定しても、エラーメッセージを吐くだけで、それについては無視されるだろうと考えていたが、その認識は甘かったようだ。
どうやら、存在しないファイルを#includeステートメントで指定した場合には、
同時に指定しているきちんと存在するファイルの内容についても正常に読み込まれないようである
#includeステートメントの数に上限があるのではないかとか、コンテクストやエクステンションの最大値を超えてしまったのではないかとか、考えたがそうではなかったようだ。

存在しないファイルを指定していた#includeステートメントをコメントアウトし取り除いてやれば、
再び正常に動作するようになった

これは、ASTERISK 1.6.2.12 の話である。バージョンアップで改善しているのかもしれない。

2011年10月3日月曜日

【YAMAHA RTAシリーズ】 sip server コマンドのsipアドレスの長さは76文字まで【RTA55i】

YAMAHAルーター RTA55iの、sip serverコマンドで指定するSIPアドレス文字列("sip:"を除いたもの)の最大長は、76文字だった

SIPアドレスは、sip:account@domain という形式で入力する。
account@domainの文字列が76文字を超えると、エラーが発生してコマンドは受け付けられなかった。

account部分が長くなればdomain部分を短くして、76文字以内に収めれば問題ないようだ。


# sip server ?
    入力形式: sip server 登録番号 サーバアドレス サーバ種類 使用プロトコル
               SIPアドレス [ユーザ名 [パスワード]]
     説明: SIPサーバ設定を追加します.


2011年9月22日木曜日

【Linux CentOS 5.7】 HylaFaxで複数のFAXモデムを追加しモデムグループを構成しWinprint HylaFAXから使い分ける

FAXサーバーソフトHylaFaxに複数のiaxmodemモデムを追加し加えてグループ化も行い、クライアントソフトであるWinPrint HylaFaxからそれらを指定してFAXの送出を行う方法について



Hylafaxサーバーに複数のモデムを追加しておき、クライアントソフトウェアから任意のモデムを指定してFAXを送出する。
各々のモデムに関連付けられた設定ファイルにより、そのファックス文書には経由するモデムごとにユニークなヘッダーインフォメーションを付加できる
このようにすると、1台のHylafaxを複数の部署から共有しながら、部署ごとに異なった送信元情報をファックス文書のヘッダーに載せられる。

これらの複数のモデムは、モデムグループに束ねて用いることもできる。
ある部署用の設定をした複数のモデムを一つのグループにまとめ、FAXクライアントソフトウェアでは送信の際にこのグループ名を指定して用いることができる。
そうすると、グループに所属するモデムのうちスタンバイ状態にある一つが自動的に選択される。
そのため、利用可能なモデムデバイス名を個別にクライアントで指定しなくても、同時に複数のFAXを送信することができる。




前提として、以下のソフトウェアが次のような手順で正常にインストールできていること。

<使用したソフトウェアとそのバージョン>

○FAXサーバー側
・Hylafax 6.0.5
・IAXmodem 1.2.0
・CentOS 5.7 (64bit)
⇒インストール方法はこちら

○FAXクライアント側 (動作チェックで使用するだけ)
・WinPrint HylaFax 1.0.0.7
・MS Windows 7 (64bit)
⇒インストール方法はこちら



■Hylafaxサーバー側の設定■

FAXモデムとして、ASTERISKと連携できるIAXmodemを使用した。


◇追加のIAXmodemを設定する

iaxmodemのインストール後には、/etc/iaxmodem/ttyIAXがたった一個だけ存在している。
このttyIAXには、iaxmodemモデムを生成するための情報が含まれている。
これをコピーして増やすだけで、iaxmodemモデムが複数準備できる。


ttyIAXファイルをコピーし、必要なiaxmodem数分、増やす。例として4つ増やすことにする。
コピー後、それぞれ内容を編集する。


各ファイル名は、下記に示す内容のdevice項目(生成させるデバイスファイル)の設定値に対応させると良い。
(注意) このdevice名には"_"アンダーバーを絶対に使わないこと。hylafaxが動作しなかった。
[root@localhost ~]# cp /etc/iaxmodem/ttyIAX /etc/iaxmodem/ttyIAX-first-01
[root@localhost ~]# cp /etc/iaxmodem/ttyIAX /etc/iaxmodem/ttyIAX-second-01
[root@localhost ~]# cp /etc/iaxmodem/ttyIAX /etc/iaxmodem/ttyIAX-first-02
[root@localhost ~]# cp /etc/iaxmodem/ttyIAX /etc/iaxmodem/ttyIAX-second-02

コピーしたttyIAX-firstファイルを編集する
[root@localhost ~]# vim /etc/iaxmodem/ttyIAX-first-01
device          /dev/ttyIAX-first-01  ←生成させるデバイスファイルは、iaxmodemの設定ファイル名と一致させると良い。(前述したとおり、アンダーバーは絶対に使わないこと。)
owner           uucp:uucp
mode            660
port            4570
refresh         300
server          asterisk-server-address
peername        iaxmodem-first-01  ←当然、他のpeernameと重ならないようにする
secret          password
cidname         John Doe
cidnumber       8005551212
codec           slinear

コピーしたttyIAX-secondファイルを編集する
[root@localhost ~]# vim /etc/iaxmodem/ttyIAX-second-01
device          /dev/ttyIAX-second-01
owner           uucp:uucp
mode            660
port            4570
refresh         300
server          asterisk-server-address
peername        iaxmodem-second-01
secret          password
cidname         John Doe
cidnumber       8005551212
codec           slinear

同様にして、コピーしたttyIAX-thirdファイルを編集する
[root@localhost ~]# vim /etc/iaxmodem/ttyIAX-first-02
同様にして、コピーしたttyIAX-fourthファイルを編集する
[root@localhost ~]# vim /etc/iaxmodem/ttyIAX-second-02


合せて、ASTERSISK側のiax.confの設定も行う
[root@asterisk ~]# vim /etc/asterisk/iax.conf
[iaxmodem]
type=friend
username=iaxmodem
secret=password
host=dynamic
disallow=all
allow=ulaw
allow=slinear
requirecalltoken=no
context=fax_outgoing

[iaxmodem-first-01]  ←今回追加したiaxmodemに対応するASTERISKの設定
type=friend
username=iaxmodem-first-01
secret=password
host=dynamic
disallow=all
allow=ulaw
allow=slinear
requirecalltoken=no
context=fax_outgoing

[iaxmodem-second-01] ←今回追加したiaxmodemに対応するASTERISKの設定
type=friend
username=iaxmodem-second-01
secret=password
host=dynamic
disallow=all
allow=ulaw
allow=slinear
requirecalltoken=no
context=fax_outgoing
[iaxmodem-first-02] ←今回追加したiaxmodemに対応するASTERISKの設定
type=friend
username=iaxmodem-first-02
secret=password
host=dynamic
disallow=all
allow=ulaw
allow=slinear
requirecalltoken=no
context=fax_outgoing
[iaxmodem-second-02] ←今回追加したiaxmodemに対応するASTERISKの設定
type=friend
username=iaxmodem-second-02
secret=password
host=dynamic
disallow=all
allow=ulaw
allow=slinear
requirecalltoken=no
context=fax_outgoing

これで、iaxmodem増設の設定は完了した。

service iaxmodem restartコマンドでiaxmodemを再起動させる。
IAXmodemの起動後に、iaxmodemが増設される。
/dev/ディレクトリ以下に次のデバイスファイルが作成されているはず。
ttyIAX-first-01
ttyIAX-first-02
ttyIAX-second-01
ttyIAX-second-02

faxgettyに、今回追加した新モデムを渡すための追加設定を行う
[root@localhost etc]# vim /etc/inittab
(略)
# Run faxgetty in standard runlevels
iah0:2345:respawn:/usr/local/sbin/faxgetty /dev/ttyIAX
iah1:2345:respawn:/usr/local/sbin/faxgetty /dev/ttyIAX-first-01
iah2:2345:respawn:/usr/local/sbin/faxgetty /dev/ttyIAX-first-02
iah3:2345:respawn:/usr/local/sbin/faxgetty /dev/ttyIAX-second-01
iah4:2345:respawn:/usr/local/sbin/faxgetty /dev/ttyIAX-second-02
(略)



◇hylafaxの設定ファイルを追加する

hylafaxには、FAXモデムごとに設定ファイルが存在している。
これは、使用されるモデムのデバイス名に基づいて、ファックス送出の際に使用される設定ファイルである。選択されるモデムごとに、ファックス文書のタグ(ヘッダー)に記載するインフォメーションなどを設定しておける。

hylafaxの設定ファイルが置かれるディレクトリへ移動し、モデムデバイス毎の設定ファイルをコピーする。
この設定ファイル名は、config.モデムデバイス名という形式になっている。
[root@localhost ~]# cd /var/spool/hylafax/etc/
[root@localhost etc]# cp config.ttyIAX config.ttyIAX-first-01
[root@localhost etc]# cp config.ttyIAX config.ttyIAX-second-01
[root@localhost etc]# cp config.ttyIAX config.ttyIAX-first-02
[root@localhost etc]# cp config.ttyIAX config.ttyIAX-second-02


一つ目のモデムの設定ファイルを編集する(例)
[root@localhost etc]# vim config.ttyIAX-first-01
CountryCode:            81
AreaCode:               xx
FAXNumber:              +81.xxx.xxx.xxx
LongDistancePrefix:     0
InternationalPrefix:    xxx
DialStringRules:        etc/dialrules
ServerTracing:          0xFFF
SessionTracing:         0xFFF
RecvFileMode:           0600
LogFileMode:            0600
DeviceMode:             0600
RingsBeforeAnswer:      1
SpeakerVolume:          off
GettyArgs:              "-h %l dx_%s"
LocalIdentifier:        "example Co.Ltd. FIRST BRANCH"  ←ファックス送信元情報
TagLineFont:            etc/lutRS18.pcf
TagLineFormat:          "From %%l %%n   |%c   Page %%P of %%T"  ←ファックスヘッダーのフォーマット(意味は下に記載)
MaxRecvPages:           200
#
(以下省略)

ファックスヘッダーフォーマットで使われている記号の意味
%%l  ・・・LocalIdentifier項目の値
%%n ・・・FAXNumber項目の値
%c ・・・現在の日時
| ・・・ファックス文書のヘッダー領域を左右に均等に区分するもの(上の例では、二分される)

二つ目のモデムの設定ファイルを編集する(例)
[root@localhost etc]# vim config.ttyIAX-second-01
CountryCode:            81
AreaCode:               xx
FAXNumber:              +81.yyy.yyy.yyy
LongDistancePrefix:     0
InternationalPrefix:    xxx
DialStringRules:        etc/dialrules
ServerTracing:          0xFFF
SessionTracing:         0xFFF
RecvFileMode:           0600
LogFileMode:            0600
DeviceMode:             0600
RingsBeforeAnswer:      1
SpeakerVolume:          off
GettyArgs:              "-h %l dx_%s"
LocalIdentifier:        "example Co.Ltd. SECOND BRANCH"  ←ファックス送信元情報
TagLineFont:            etc/lutRS18.pcf
TagLineFormat:          "From %%l %%n   |%c   Page %%P of %%T"  ←ファックスヘッダーのフォーマット
MaxRecvPages:           200
#
(以下省略)

他のモデムについても、送信元情報などについて編集しておく
[root@localhost etc]# vim config.ttyIAX-first-02
[root@localhost etc]# vim config.ttyIAX-second-02


ロケールを英語に切り替える(ファックス文書に印字される日本語の日付が文字化けするため
[root@localhost ~]# date
2011年  9月 26日 月曜日 19:14:05 JST  ←初めはこのように日本語で表記されていた
[root@localhost ~]# cat /etc/sysconfig/i18n
LANG="ja_JP.UTF-8"  ←変数の値は、書き換え前このようになっていた
[root@localhost ~]# vim /etc/sysconfig/i18n
LANG="en_US.UTF-8"
[root@localhost ~]# date
Mon Sep 26 19:18:18 JST 2011  ←再起動後に英語表記に切り替わった(再起動はあとで)


hylafaxサーバー側の設定は、これで完了したので、設定を有効化するためシステムの再起動を行う
[root@localhost etc]# reboot


再起動後、faxstatコマンドを実行し、追加したモデムが有効になっているか確認する。
[root@localhost etc]# faxstat
HylaFAX scheduler on localhost.localdomain: Running
Modem ttyIAX (+81.nnn.nnn.nnn): Running and idle
Modem ttyIAX-first-01 (+81.xxx.xxx.xxx): Running and idle
Modem ttyIAX-first-02 (+81.xxx.xxx.xxx): Running and idle
Modem ttyIAX-second-01 (+81.yyy.yyy.yyy): Running and idle
Modem ttyIAX-second-02 (+81.yyy.yyy.yyy): Running and idle


◇必要なら、次のようにしてモデムをモデムグループに束ねる設定も行う

○configファイル内に、次のようにモデムグループの定義を追加する。
[root@localhost ~]# vim /var/spool/hylafax/etc/config
(例)
ModemGroup:             "first-branch:ttyIAX-first-(01|02)"
ModemGroup:             "second-branch:ttyIAX-second-(01|02)"
次のような書式になっている。
ModemGroup: "モデムグループ名:正規表現によるモデムデバイス名の指定"

上の例では、first-branchという名のモデムグループには、モデムデバイスのttyIAX-first-01ttyIAX-first-02を所属させ、
second-branchという名のモデムグループには、ttyIAX-second-01ttyIAX-second-02を所属させている。

(注意) 正規表現文字列-ttyIAX-first-(01|02)の部分-は、24文字以内に収めないと動作しなかった。


○さらに構成したモデムグループに属す複数のモデムを使って同時送信を行うために、
同時送信許可を設定する。
[root@localhost ~]# vim /var/spool/hylafax/etc/destctrls
.*      MaxConcurrentJobs = unlimited

「.*」は、正規表現。相手先の電話番号を表す。
「.」が全ての1文字を表し「*」は0回以上の繰り返しを意味しているので、これは全ての文字列に該当する表現になっている。
つまり、どの相手先にも同時送信数を無制限に設定している。
この設定を書き込まなければ、同時送信することができない。


○設定の後、hylafaxサービスを再起動させる。
[root@localhost ~]# service hylafax restart
Stopping HylaFAX Servers.
HylaFAX: faxq hfaxd (without SNPP support).


(参考)
Handbook:Advanced Server Configuration:Modem Groups
< http://www.hylafax.org/content/Handbook:Advanced_Server_Configuration:Modem_Groups > 2011/10/21

Re: [hylafax-users] Designating group of modems to specific task
< http://www.hylafax.org/archive/2004-02/msg00069.php > 2011/10/21



■Hylafaxクライアント側の設定■
Hylafaxクライアントとして、Windows7にインストールした「WinPrint Hylafax」を取り上げる。
⇒インストール方法はこちら


WinPrint Hylafax側では、FAX送出で使用するモデムのデバイス名を予め指定できる
この機能を使うことで、任意のFAXモデムを指定してFAXの送出が行える
そうして、関連付けられた設定ファイルに基づきファックス文書のヘッダーに指定した送出元を印字させられる。


◇モデムデバイスあるいはモデムグループを指定する手順

スタートボタンから「デバイスとプリンター」を開く。

インストールしておいた「FAXデバイス」で右クリックメニューを表示させ、「プリンタのプロパティー(P)」を開く。

ポートタブを選び、設定済みの「HFAX:」ポートを選び、「ポートの構成」ボタンをクリックする。

「Printer port settings」ウインドウが開く。

6番目にあるmodem項目を編集する。次の例のように、使用したいモデムデバイス名あるいはモデムグループ名を入力し、「OK」ボタンを押す。

・モデムデバイス名を指定する場合
(例)ttyIAX-second-02
・モデムグループを指定する場合
(例)first-branch

ここで指定したFAXモデムは、hylafaxサーバー側においてFAX送出で使用される。
また、ここで指定したモデムグループは、hylafaxにより解釈され、その所属モデムのうちスタンバイになっているものが使用される。

こうして送出されるファックス文書には、経由するFAXモデムに関連付けられた設定ファイルに基づき、特定の発信元などが印字された。


投げ銭

★当サイトへの投げ銭(PayPal)★

Ad

Ad