syokunin のすべての投稿

起動時 X を起動しない(runlevel の設定)

■/etc/inittab を編集する

下記により ランレベル5で /etc/X11/prefdm が実行されてXが起動する。
x:5:respawn:/etc/X11/prefdm -nodaemon

なので、起動時のランレベルを変更する。

下記により起動時のランレベルが決定している。
id:5:initdefault:

数字部分がランレベル。
※0,1,6は停止,シングルユーザーモード,再起動で予約されている。

SSL 設定

■秘密鍵作成
openssl genrsa -des3 1024 > /usr/share/ssl/private/key.pem
※rand — 鍵生成時に用いるファイルで、ランダム性の十分なファイルを指定するとあるが、適当なログファイルなどでもOK。省略するとディフォルトで/dev/urandom,/dev/randomを使用する。
※des3 — 暗号化の方式で一番強力。ほかにdesやideaなどが指定できる。
※1024 — 生成する鍵のbit数。ディフォルト512。パフォーマンスに関わる。512~1024が妥当。

この後、起動時に利用するパスワード入力あり。

■参照時パスワード入力解除
openssl rsa -in /usr/share/ssl/private/key.pem -out /usr/share/ssl/private/key.pem
※inで指定したファイルをoutで書き出す。この場合上書き。
※これを行わない場合、Apache起動ごとにパスフレーズが要求される。
※これを行った場合、セキュリティーは低下する。

再度パスワード入力必要。

■CSR作成
openssl req -new -key /usr/share/ssl/private/key.pem -out /usr/share/ssl/csr.pem

この後、対話的な入力あり。

Country Name 国(例:JP)
State or Province Name 都道府県(例:Miyagi)
Locality Name 市区町村(例:Sendai)
Organization Name 組織(例:Syokunin Co.,Ltd.)
Organizational Unit Name 部署※
Common Name ドメイン
Email Address メールアドレス
A challenge password パスワード※
An optional company name 会社名※

※はEnterで省略

■証明書作成
openssl x509 -in /usr/share/ssl/csr.pem -out /usr/share/ssl/certs/httpsd.pem -req -signkey /usr/share/ssl/private/key.pem

※自分で作成する場合。

■httpd.conf編集例
<IfDefine HAVE_SSL>
Listen 443
SSLSessionCache shm:/var/cache/ssl_gcache_data(524288)
<VirtualHost _default_:443>
DocumentRoot /var/www/html/
SSLEngine on
SSLCertificateFile /usr/share/ssl/certs/httpsd.pem
SSLCertificateKeyFile /usr/share/ssl/private/key.pem
SSLVerifyClient 0
SSLVerifyDepth 10
<Files ~ “\.(cgi|shtml)$”>
SSLOptions +StdEnvVars
</Files>
<Directory /home/httpd/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
CustomLog /var/log/httpd/ssl_request_log \
“%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \”%r\” %b”
</VirtualHost>
</IfDefine>

■httpd再起動
/etc/rc.d/init.d/httpd restart

postgresql の操作

■データベース作成
createdb [DbName]

■データベース削除
dropdb [DbName]

■DBアクセス
psql [DbName]

■DB一覧
psql -l

■バックスラッシュコマンド
\? — バックスラッシュコマンドヘルプ表示
\h — SQLヘルプ表示
\d [TableName] — テーブル定義表示
\df — 関数一覧表示
\dn — スキーマ一覧表示
\dp — テーブルのアクセス権表示
\dS — システムのテーブル一覧表示
\dt — ユーザーテーブル一覧表示
\dT — 型の一覧表示
\l — データベースの一覧表示
\z — アクセス権付きでデータベースの一覧表示
\! [Command] — システムコマンド実行
\q — psql終了

基本的なSQLクエリ
■テーブル作成
CREATE TABLE [TableName] ([ColumnName] [Type],・・・);

■レコード挿入
INSERT INTO [TableName] VALUES (‘[TextData]’,[IntData],・・・);

■レコードの表示
SELECT * FROM [TableName];

■レコード更新
UPDATE [TableName] SET [ColumnName]='[TextData]’ WHERE ・・・

■レコード削除
DELETE FROM [TableName] WHERE ・・・

■テーブル削除
DROP TABLE [TableName];

postgresql ユーザー作成/削除

■作成
su postgres
create [UserName]

error while loading shared libraries: libreadline.so.5: cannot open shared object file: No such file or directory
といったエラー
libreadline.so.5は、/usr/local/lib配下
export LD_LIBRARY_PATH=”$LD_LIBRARY_PATH”:/usr/local/lib する。

再度実行
create [UserName]
could not change directory to “/home/[UserName]”
Shall the new role be a superuser? (y/n) n
Shall the new role be allowed to create databases? (y/n) y
Shall the new role be allowed to create more new roles? (y/n) n
CREATE ROLE

■削除
dropuser [UserName]

postgresql インストールと設定のログ

【インストール】

■インストールディレクトリ作成
mkdir /usr/local/pgsql

■ユーザー作成しておく
useradd postgres
passwd postgres

以降、su postgresで作業

■postgresqlをダウンロード
ftp://ftp.ring.gr.jp/pub/misc/db/postgresql より postgresql-8.1.1.tar.gz を /usr/local/src/ にダウンロード。

■展開
tar zxvf postgresql-8.1.1.tar.gz

■configure
cd postgresql-8.1.1
./configure

configure: error: readline library not found
If you have readline already installed, see config.log for details on the
failure. It is possible the compiler isn’t looking in the proper directory.
Use –without-readline to disable readline support.

readline library がないとのこと
–without-readline するか
readline?をインストール

■readline ?をインストール
ftp://ftp.gnu.org/gnu/ よりダウンロード
tar zxvf readline-5.1.tar.gz
cd readline-5.1
./configure
make
make install

■再度 configure
configure: error: zlib library not found
If you have zlib already installed, see config.log for details on the
failure. It is possible the compiler isn’t looking in the proper directory.
Use –without-zlib to disable zlib support.

zlib がない。
–without-zlib するか
前段同様zlibをインストール

zlibは
http://www.zlib.net/

■再度 configure
./configure

configure: error:
*** Could not execute a simple test program. This may be a problem
*** related to locating shared libraries. Check the file ‘config.log’
*** for the exact reason.

※またエラー
config.logをconftestで検索すると
./conftest: error while loading shared libraries: libreadline.so.5: cannot open shared object file: No such file or directory
といったエラーが2ヶ所。

ぐぐると、/usr/local/lib/ を LD_LIBRARY_PATH(ライブラリを検索するときの環境変数)に追加するといいかも?といった記事発見。

export LD_LIBRARY_PATH=”$LD_LIBRARY_PATH”:/usr/local/lib

———————————————————
追記
後で知ったが、
/usr/local以下のライブラリを認識してないのだから、
/etc/ld.so.conf に /usr/local/lib を追記して
ldconfig実行
するでもいいかも
———————————————————

■再度 configure
./configure
※今度は通った様子

■コンパイル&インストール
make
make install

以上でインストール終了。

【設定】

■環境変数追加
/home/postgres/.bashrcに追記
PATH=”$PATH”:/usr/local/pgsql/bin
export POSTGRES_HOME=/usr/local/pgsql
export PGLIB=$POSTGRES_HOME/lib
export PGDATA=$POSTGRES_HOME/data
export MANPATH=”$MANPATH”:$POSTGRES_HOME/man
export LD_LIBRARY_PATH=”$LD_LIBRARY_PATH”:”$PGLIB”:/usr/local/lib
export PATH=”$PATH”:/usr/local/pgsql/bin

■DB初期化
※ユーザー postgresで実行
/usr/local/pgsql/bin/initdb –no-locale –encoding=EUC_JP
※ロケールデータベースはバグがある?との記事があり、利用しないオプション
※文字コードはEUCを指定

■設定ファイル
vi /usr/local/pgsql/data/postgresql.conf

silent_mode = on
※デーモンとして動かすオプション

■起動
※ユーザー postgresで実行
pg_ctl -w start

※停止は
pg_ctl -w stop

■稼動チェック
※regression testというツールが付属してる

cd /usr/local/src/postgresql-8.1.1/
make check

※しばらく時間がかかる・・
最終的に下記のような表示がでればOK

======================
All 93 tests passed.
======================

■自動起動
rootで実行

cp /usr/local/src/postgresql-8.1.1/contrib/start-scripts/linux /etc/rc.d/init.d/postgresql
chmod 755 /etc/rc.d/init.d/postgresql
chkconfig –add postgresql

以上で設定完了。
あとはユーザーとDB作成して利用する。

BIND9 インストール 設定

=============== インストール ===============
BINDのインストール状況確認

rpm -qa | grep bind

以下、インストールしたパッケージ
bind-utils-9.2.4-0vl1
bind-devel-9.2.4-0vl1
bind-9.2.4-0vl1

インストールされていなければ、
apt-get install named
又は、rpmを直接とってきて
rpm -ivh [パッケージ名]
で、インストール。

===============   設定   ===============
設定ファイル
/etc/named.conf
各ゾーンファイル
/var/named 配下に置く

以下設定

■/etc/named.conf
ディフォルトで/etc/named.confは存在しないので、作成しつつ記述。
vi /etc/named.conf

options {
// zone ファイルの格納場所
directory “/var/named”;
// BIND の利用を許す範囲を指定
allow-query {
127.0.0.1;
192.168.0.0/24;
};
// ゾーン転送の許可。LAN内用なので必要ないが一応記載。
allow-transfer {
127.0.0.1;
192.168.0.0/24;
};
// 名前解決できないとき、外部DNSへ問い合わせ
forwarders {
***.***.***.***;
***.***.***.***;
};
};

// ルート DNS
zone “.” {
type hint;
file “named.ca”;
};

// localhost の正引き
zone “localhost” {
type master;
file “localhost.zone”;
};

// localhost の逆引き
zone “0.0.127.in-addr.arpa” {
type master;
file “0.0.127.in-addr.arpa”;
};

// 運用ドメイン の正引き
zone “hoge.com” {
type master;
file “hoge.com”;
};

// 192.168.0.* の逆引き
zone “0.168.192.in-addr.arpa” {
type master;
file “0.168.192.in-addr.arpa”;
};

各ゾーンファイル
■ルートDNS
/var/named/named.ca
ftp://ftp.nic.ad.jp/internet/rs.internic.net/domain/named.root
で取得。

■localhost正引き
localhost.zone

vi /var/named/localhost.zone

$TTL 86400 ;
@ IN SOA root.hoge.com. hoge.com. (
1; Serial
10800; Refresh
3600; Retry
604800; Expire
86400 ); Minimum TTL
IN NS hoge.com.;
localhost. IN A 127.0.0.1;

■localhost逆引き
0.0.127.in-addr.arpa

vi /var/named/0.0.127.in-addr.arpa

$TTL 86400 ;
@ IN SOA root.hoge.com. hoge.com. (
1; Serial
10800; Refresh
3600; Retry
604800; Expire
86400 ); Minimum TTL
IN NS hoge.com.
1 IN PTR localhost.;

■運用ドメイン正引き
hoge.com

vi /var/named/hoge.com

$TTL 86400 ;
@ IN SOA root.hoge.com. hoge.com. (
1; Serial
10800; Refresh
3600; Retry
604800; Expire
86400 ); Minimum TTL
IN NS hoge.com.
IN MX 10 hoge.com.
@ IN A 192.168.0.100
www IN A 192.168.0.100
root IN A 192.168.0.100
rooter IN A 192.168.0.1

■LAN逆引き
0.168.192.in-addr.arpa

vi /var/named/0.168.192.in-addr.arpa

$TTL 86400 ;
@ IN SOA root.hoge.com. hoge.com. (
1; Serial
10800; Refresh
3600; Retry
604800; Expire
86400 ); Minimum TTL
IN NS hoge.com.;
IN PTR hoge.com.;
IN A 255.255.255.0;
100 IN PTR hoge.com.;
1 IN PTR rooter.hoge.com.;

■所有者変更
chown named.named /etc/named.conf
chown 644 /etc/named.conf
chown named.named /var/named/*
chown 644 /var/named/*

■/etc/resolv.conf
vi /etc/resolv.conf

nameserver 127.0.0.1

■起動設定
chkconfig named on

■起動
/etc/rc.d/init.d/named start

■デバッグ
エラーなどがあれば、/var/log/messages に出力される。

■うまく起動できたっぽい時のログ
Dec 8 00:13:32 Hoge named: named起動 succeeded
Dec 8 00:13:32 Hoge named[29685]: loading configuration from ‘/etc/named.conf’
Dec 8 00:13:32 Hoge named[29685]: no IPv6 interfaces found
Dec 8 00:13:32 Hoge named[29685]: listening on IPv4 interface lo, 127.0.0.1#53
Dec 8 00:13:32 Hoge named[29685]: listening on IPv4 interface eth0, 192.168.0.100#53
Dec 8 00:13:32 Hoge named[29685]: command channel listening on 127.0.0.1#953
Dec 8 00:13:32 Hoge named[29685]: zone 0.0.127.in-addr.arpa/IN: loaded serial 1
Dec 8 00:13:32 Hoge named[29685]: zone 0.168.192.in-addr.arpa/IN: loaded serial 1
Dec 8 00:13:32 Hoge named[29685]: zone hoge.com/IN: loaded serial 1
Dec 8 00:13:32 Hoge named[29685]: running
Dec 8 00:13:32 Hoge named[29685]: zone 0.0.127.in-addr.arpa/IN: sending notifies (serial 1)
Dec 8 00:13:32 Hoge named[29685]: zone localhost/IN: sending notifies (serial 1)
Dec 8 00:13:32 Hoge named[29685]: zone 0.168.192.in-addr.arpa/IN: sending notifies (serial 1)
Dec 8 00:13:32 Hoge named[29685]: zone hoge.com/IN: sending notifies (serial 1)
Dec 8 00:13:32 Hoge named[29685]: received notify for zone ‘0.0.127.in-addr.arpa’
Dec 8 00:13:33 Hoge named[29685]: received notify for zone ‘localhost’
Dec 8 00:13:33 Hoge named[29685]: received notify for zone ‘0.168.192.in-addr.arpa’
Dec 8 00:13:33 Hoge named[29685]: received notify for zone ‘hoge.com’

■確認
nslookup か dig で確認。

ntpサーバの設定

/etc/ntp.conf を編集する。

以下設定項目の説明
=========================================================================

# 外部参照先NTPサーバを指定する
# 複数指定が望ましい
server ***.***.***.***

# ローカル・クロック時刻をほかのNTPサーバやクライアントにも提供できるようにする
server 127.1.1.0
fudge 127.1.1.0 stratum 10

# ドリフトファイルのパス(時間誤差値を保存して置くファイル)
driftfile /var/lib/ntp/drift
broadcastdelay 0.008

# 認証キーのパス(デフォルト設定のままとする)
keys /etc/ntp/keys

=========================================================================

同期する上位サーバは事前に問い合わせしとく。
ntpq -p ***.***.***.***

回答のサーバ名の前に以下のような記号が付記される。

 ’ ‘(reject) 距離が遠くて捨てられたサーバー
 ’x'(falsetick) falseticker検査で捨てられたサーバー
 ’.'(excess) 参照サーバーが多くて捨てられたサーバー
 ’-‘(outlyer) クラスタリング検査で捨てられたサーバー
 ’+'(candidat) 接続テストに合格し、いつでも参照可能なサーバー
 ’#'(selected) 同期距離が遠いが参照可能なサーバー
 ’*'(sys.peer) 同期中であると宣言されたサーバー
 ’o'(pps.peer) 同期中であると宣言されたサーバー(同期はPPS信号から間接的に行なう。)

=========================================================================

以下実際の設定

server ***.***.***.***
server ***.***.***.***
server ***.***.***.***
server 127.127.1.0
fudge 127.127.1.0 stratum 10
driftfile /etc/ntp/drift
他はコメントアウト

=========================================================================

ntpサーバ起動
service ntpd [start | stop | restart]

chkconfig ntpd on も忘れずに。

時刻確認
ntpq -p で表示されるサーバの前に*が表示されればOK。
(設定後、10分程度経過で反映)

phpMyAdmin

MySQL 4.1系だと
Call to undefined function: pma_reloadnavigation
などとエラーになる場合あり。
その場合、

lang/japanese-utf-8.inc.php の
UTF-8 を utf-8 に変更することで動くっぽい。

また、ユーザー又はパスワードが正しくないと表示される場合がある。

mysql> SET PASSWORD FOR [UserName]@localhost = OLD_PASSWORD(“PassWord”);

とすることで回避できる。

CPAN

Perlモジュール簡単インストールツール

起動
perl -MCPAN -e shell

初回起動時、対話的に各種設定を求められる
Enterをたたくと、ディフォルト値が設定される。
ほとんどEnterでOKだが、一部設定が必要。

Where is your xxxx program? [/usr/bin/xxx] と、各種必要コマンドの所在を自動的に検出して聞いてくる。
ここで、検出できないとき、[]内が空で表示される。
gzip, tar, make, lynx などはないとまずいかも。
なければ、インストールしてコマンドのPathを手打ちする。

Parameters for the ‘make install’ command? [] ときたら
Parameters for the ‘make install’ command? [] UNINST=1
とする。
(競合が起きたとき古いのを消す設定)

Your no_proxy? の後、地域など聞かれる。リストが表示されるので、該当番号を入力。
で、その後、
CPAN サーバの選択がある。
URIがリスト表示されるので、任意のサーバを選ぶ。
一度アクセスして、ちゃんと接続できるか確認してから選ぶべきかも。
また、随時更新してないサーバもあるので注意。
最後に、
Enter another URL or RETURN to quit: []
で終了。

使用例)
cpan起動後
install Jcode
など
=====================================================
CPANサーバの変更方法

現在の設定確認
cpan> o conf urllist
削除
cpan> o conf urllist pop [url]
追加
cpan> o conf urllist push [url]

mysqlインストール

MysqlAB
http://www.mysql.com/

事前にグループとユーザーを作成
groupadd mysql
adduser -g mysql -s /bin/nologin mysql
passwd mysql

/usr/local/src にアーカイブをダウンロード後展開

cd /usr/local/src
tar xvfz mysql-x.xx.xx.tar.gz
cd mysql-x.xx.xx

./configure –with-charset=ujis -with-extra-charsets=all –with-mysqld-user=mysql –prefix=/usr/local/mysql

make
make install

初期化
/usr/local/mysql/bin/mysql_install_db –user=mysql
所有者変更
chown -R mysql /usr/local/mysql/var
chgrp -R mysql /usr/local/mysql/var

起動
/usr/local/mysql/bin/mysqld_safe –user=mysql &

※参考
停止: /usr/local/mysql/bin/mysqladmin shutdown -u root -p

実行ファイルのリンク作成
ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql

実行
mysqlで
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2 to server version: x.x.xx

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

mysql>

と表示されればOK

自動起動
/etc/rc.d/rc.local に追記
/usr/local/mysql/bin/mysqld_safe –user=mysql &

rootパスワード設定
/usr/local/mysql/bin/mysqladmin -u root password ‘[PassWord]’