Archive for the ‘ネットツール’ Category

仮想環境の構築 ( VMware + CentOS 5.3 )

土曜日, 5 月 23rd, 2009

今週、Windows XP をクリーンインストールした際に、
仮想開発環境として利用している VMware Server も
新規に構築し直したので、メモを残しておきたいと思います。

- VMware Server をインストール
- CentOS 5.3 を最小構成でインストール
- ホスト名、ネットワーク等の設定を行う
- 不必要な OS boot 時起動サービスの回避
- 各種パッケージのインストール
- NTP のインストール
- cron の設定
- ユーザーの作成と Sudo 権限の付与
- SSH の設定
- Apache, Postfix, PHP, MySQL, Samba のインストール
- Apache の NameVirtualHost の設定

環境構築は結構好きなので、それ自体を目的によくやってましたが、
今回も新しいつまずきと、新しいテクニックを覚えられたので楽しかったです。

VMware Server をインストール ( 割愛 ~ )

CentOS 5.3 のディスクイメージをダウンロード
http://ftp.riken.jp/Linux/centos/5/isos/i386/CentOS-5.3-i386-bin-DVD.iso

VMware Server にマウントして CentOS を最小構成でインストール
参考 : http://labs.unoh.net/2006/11/vmwarecentos.html

初回起動時の setup 画面で、ホスト名、ネットワーク等の設定を行う。
→ しかし各種設定ファイルにちゃんと反映されず。。

ドメイン名の解決

# cat /etc/resolv.conf
nameserver 192.168.73.2
domain foo.jp

※ .73. の部分は環境によって変わります

ホスト名の決定

# cat /etc/hosts
127.0.0.1 localhost.localdomain localhost
192.168.73.10 vm.foo.jp vm

# cat /etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=vm.foo.jp

ネットワーク設定範囲の HWADDR をコメントアウト
ディスクイメージをコピーして使うときに問題になるかもしれないので。

# cat /etc/sysconfig/network-scripts/ifcfg-eth0

#HWADDR=00:0c:29:f0:a2:b9

不必要な OS boot 時起動サービスの回避。

# chkconfig –list | grep 3:on | wc -l
40

→ 40 サービス起動されている。

適当にサービス OFF.

# for SERVICE in acpid apmd atd bluetooth cpuspeed cups firstboot gpm haldaemon hidd ip6tables irqbalance isdn kudzu lvm2-monitor mcstrans mdmonitor microcode_ctl netfs nfslock pcscd portmap readahead_early restorecond rpcgssd rpcidmapd sendmail smartd xfs yum-updatesd; do /sbin/chkconfig ${SERVICE} off; done

# chkconfig –list | grep 3:on | wc -l
10

10 サービスに。

ここで一度再起動。

# restart
-bash: restart: command not found

な、なんだってー

# shutdown -r now

プラグイン関連。

最も近くのミラーサーバを設定してくれるプラグイン

# yum -y install yum-fastestmirror

Package yum-fastestmirror-1.1.16-13.el5.centos.noarch already installed and latest version
Nothing to do

なんとー。5.3 から組み込まれたんだ、これ。

プラグインが有効になっていることを確認。

# cat /etc/yum.conf | grep plugins
plugins=1

O.K.

# yum update

Transaction Summary
=============================
Install 1 Package(s)
Update 29 Package(s)
Remove 0 Package(s)

Total download size: 45 M
Is this ok [y/N]: y

IIJ さんちからのダウンロード。とっても早かった。

ここまでで、VM をシャットダウン。
実ファイルをコピーしておき、基本イメージとしてバックアップした。

=-=-=

次にサーバの時刻を調整してくれる ntp(d) をインストール

# yum -y install ntp

続いて、デーモン ( ntpd ) を起動する前に、最初に手動で時刻を調整する

# ntpdate ntp.nc.u-tokyo.ac.jp
22 May 17:38:20 ntpdate[1772]: step time server 130.69.251.23 offset 897.045643 sec

# date
2009年 5月 22日 金曜日 17:38:38 JST

ここで、分は合っているけれど、時が合っていない場合は、
最後に ” EST ” と表示されていないかチェック。
もしそうである場合は JST に変更する。

変更のツールは、設定ファイルを直接いじることもできみたいだけれど、
CUI 上でも設定画面を表示してくれる、system-config-date というツールがあるようなので、必要な場合にはインストール。

# yum list | grep system-config-date
system-config-date.noarch 1.8.12-3.el5.centos.2 base

# yum install system-config-date

しかし、上のコマンドを打ったら、
数十の依存パッケージを同時にインストールすることになると表示された。
利用する場合は十分注意してインストールを。

インストール後に、さっそく起動。

# system-config-date

” Asia/Tokyo ” を選択。
「System clock uses UTC」にはチェックはいれない。
これで日本標準の時刻になるはず。

最後に、再起動時に自動的に ntpd が起動するようにしておく。

# chkconfig ntpd on

ただ、VM は、かなりの速度で時刻が遅れていくので、
ntpd を利用せずに、crond などで定期的に ntpdate を叩く
という手段も有用ではないかと思う。

というわけで、むちゃくちゃながら
ntpdate を cron で 2 分毎に叩くことにした。

# crontab -e
MAILTO=”
*/2 * * * * /usr/sbin/ntpdate ntp.tut.ac.jp > /dev/null 2>&1

# /etc/init.d/ntpd stop
ntpd を停止中: [失敗]

# chkconfig –list ntpd
ntpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off

ユーザーの作成

# useradd yosketch
# passwd yosketch

sudo 権限の付与

# visudo

## Allow root to run any commands anywhere
root ALL=(ALL) ALL
yosketch ALL=(ALL) ALL

ssh での root アクセス禁止

# vi /etc/ssh/sshd_config

#PermitRootLogin yes
PermitRootLogin no

# /etc/init.d/sshd reload
sshd を再読み込み中: [ OK ]

Apache のインストール

# yum install httpd httpd-devel
# chkconfig httpd on
# /etc/init.d/httpd start
httpd を起動中: [ OK ]

パッケージ依存関係のため、一緒にいろいろなパッケージがインストールされた。

Postfix インストール

# yum -y install system-switch-mail postfix

# system-switch-mail
–> postfix を選択

# /etc/init.d/sendmail status
sendmail は停止しています

# /etc/init.d/postfix status
master (pid 2380) を実行中…

# chkconfig postfix on
# chkconfig sendmail off

PHP 関連のインストール

# yum install flex zlib-devel libjpeg-devel libpng-devel freetype-devel

# yum install php
Running Transaction
Installing : php-common [1/4]
Installing : gmp [2/4]
Installing : php-cli [3/4]
Installing : php [4/4]

# yum install php-mbstring
Running Transaction
Installing : php-mbstring [1/1]

# yum install php-{dba,gd,imap,mbstring,mcrypt,mhash,mysql,odbc,pdo, \
pear,pgsql,readline,soap,tidy,xml,xmlrpc}
※ 実際は 1 行

Transaction Summary
===========================
Install 23 Package(s)
Update 0 Package(s)
Remove 0 Package(s)

# yum install php-pear-{Auth-SASL,DB,Date,File,HTTP-Request,Log,MDB2,MDB2-Driver-mysql,Mail,Mail-Mime,Net-SMTP,Net-Sieve,Net-Socket,Net-URL}

Transaction Summary
===========================
Install 14 Package(s)
Update 0 Package(s)
Remove 0 Package(s)

# cp -pr /etc/php.ini /etc/php.ini.org
# vi /etc/php.ini
magic_quotes_gpc=off
default_charset=”UTF-8″
mbstring.language = “Japanese”
mbstring.internal_encoding = “UTF-8″
mbstring.http_input = pass
mbstring.http_output = pass
mbstring.substitute_character = none
mbstring.func_overload = 0

# vi /etc/httpd/conf/httpd.conf
AddType application/x-httpd-php .php
# /etc/init.d/httpd restart

# pear upgrade –force PEAR
# pear channel-update pear.php.net
Update of Channel “pear.php.net” succeeded

MySQL のインストール

# yum install mysql mysql-server mysql-devel

Transaction Summary
===========================
Install 9 Package(s)
Update 0 Package(s)
Remove 0 Package(s)

Complete!

# /etc/init.d/mysqld start
MySQL データベースを初期化中: Installing MySQL system tables

# chkconfig –list mysqld
mysqld 0:off 1:off 2:off 3:off 4:off 5:off 6:off
# chkconfig mysqld on

# mysqladmin -u root password ‘*********’

# mysql -p
Enter password:

mysql> GRANT ALL PRIVILEGES ON *.* TO ‘yosketch’@'localhost’ IDENTIFIED BY ‘*********’;
Query OK, 0 rows affected (0.00 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

Apache の運用設定

C:\WINDOWS\system32\drivers\etc\hosts を編集。

127.0.0.1 localhost
192.168.73.10 www.hoge.com

以下を /etc/httpd/conf/httpd.conf に追記

<VirtualHost *:80>
ServerName www.hoge.com
DocumentRoot /var/www/domains/www.hoge.com/html
DirectoryIndex index.php index.html
</VirtualHost>

その前の

NameVirtualHost *:80

のコメントアウトをはずしておく。

# /etc/init.d/httpd configtest
Syntax OK

と言われたら、

# /etc/init.d/httpd restart

# vi /var/www/domains/www.hoge.com/html/info.php
<?php phpinfo(); ?>

ブラウザを新規に立ち上げ、www.hoge.com/info.php にアクセス。
PHP 情報が表示されたらバンザーイ。

# rm /var/www/domains/www.hoge.com/html/info.php

Samba のインストール

# yum -y install samba samba-swat

–> 依存性の関係で xinetd も同時にインストールされる。

# chkconfig –list xinetd
xinetd 0:off 1:off 2:off 3:on 4:on 5:on 6:off

# chkconfig –list smb
smb 0:off 1:off 2:off 3:off 4:off 5:off 6:off
# chkconfig smb on

# vi /etc/xinetd.d/swat
[変更]

[前] only_from = 127.0.0.1
[後] only_from = 127.0.0.1 192.168.73.0/24

[前] disable = yes
[後] disable = no

※ 192.168.73.0 は、その環境により変動。

# /etc/init.d/xinetd start
xinetd を起動中: [ OK ]

# pdbedit -a root
password:
Retype password:

# /etc/init.d/smb start
SMB サービスを起動中: [ OK ]
NMB サービスを起動中: [ OK ]

→ ブラウザから http://IP_ADDRESS:901/ にアクセス。root の認証。

SHARES をクリック
表示モードの変更: 「詳細表示」
ファイル共有の作成 : vm
path : /
valid users : root
admin users : root
read only : No
create mask : 0644
–>「変更を反映」

[ Windows 側 ]
マイネットワーク > ネットワークプレースの追加
接続先 : \\IP_ADDRESS\vm
認証を求められるので root とパスを入力。

ネットワーク名を設定して、通常のフォルダのように表示されれば OK !

下のように認証で引っかかる場合は ( 下のログは /var/log/messages のもの )

[日時] [ホスト名] vm xinetd[3136]: START: swat pid=3158 from=192.168.73.1
[日時] [ホスト名] vm swat[3157]: [日時, 0] printing/print_cups.c:cups_connect(69)
[日時] [ホスト名] vm xinetd[3136]: START: swat pid=3159 from=192.168.73.1
[日時] [ホスト名] vm swat[3157]: Unable to connect to CUPS server localhost:631 - Connection refused

/etc/samba/smb.conf 内で接続先の設定値が available = No となっていないかチェック。
これを Yes にして、サービスを restart したらうまくいく。( はず )

おしまい。

以上は LAN ( PC 内 VM ) 用設定なので、
root でどフリー設定になっていますが、外部からアクセスできるようなサーバの場合には危険ですので、慎重に設定値を決めましょう。

Samba のインストール on CentOS 5.3

水曜日, 5 月 13th, 2009

こんにちは。
なんやかんやで Win + Samba + Linux が便利だと思う今日この頃、いかがお過ごしでしょうか。

CentOS の version 5.3 がリリースされたとのことで、
今日こそアップデートするぞと力んだところ、
# yum update
で完了してしまい、脱力しました。笑

ということで、今日は久々に Samba のインストールをしました。
メモがあれば簡単なのですが、最初はなかなか手間取りました。
一部コマンドが変更になったので、メモを載せたいと思います。

===

※ ハイフン x 2 本が、「-」と表示されていますのでご注意を
  これは WordPress 側の文字列処理のためです…

# yum -y install samba samba-swat
–> 依存性の関係で xinetd も同時にインストールされる。

# chkconfig –list xinetd
xinetd          0:off   1:off   2:off   3:on    4:on    5:on    6:off

# chkconfig –list smb
smb             0:off   1:off   2:off   3:off   4:off   5:off   6:off
–> 自動起動しないみたい。

# chkconfig –level 35 smb on
–> 自動起動させるよう設定する。

# vi /etc/xinetd.d/swat
[変更]

[前] only_from    = 127.0.0.1
[後] only_from    = 127.0.0.1 192.168.239.0/24

[前] disable      = yes
[後] disable      = no

※ 192.168.239.0 は、その環境により変動。
今回は VMware Server を利用しています。

# /etc/init.d/xinetd start
xinetd を起動中:                                           [  OK  ]

# pdbedit -a root
password:
Retype password:

pdbedit コマンドについては、こちらの記事をご参照のこと。

# mkdir /virtual
–> Samba でアクセスするディレクトリを作成。

# /etc/init.d/smb start
SMB サービスを起動中:                                      [  OK  ]
NMB サービスを起動中:                                      [  OK  ]

—> ブラウザから http://IP_ADDRESS:901/ にアクセス。root の認証。

SHARES をクリック
表示モードの変更: 「詳細表示」
ファイル共有の作成 : virtual
path : /virtual
valid users : root
admin users : root
read only : No
create mask : 0644
–>「変更を反映」

[ Windows 側 ]
マイネットワーク > ネットワークプレースの追加
接続先 : \\IP_ADDRESS\virtual
認証を求められるので root とパスを入力。

ネットワーク名を設定して、通常のフォルダのように表示されれば OK !

おしまい。

以上は LAN ( PC 内 VM ) 用設定なので、
root でどフリー設定になっていますが、外部からアクセスできるようなサーバの場合には危険ですので、慎重に設定値を決めましょう。

WordPress 2.7.1 へのアップデートで勝手にずっこけまくる。

月曜日, 4 月 20th, 2009

こんにちは。
突然ですが、このブログは WordPress を利用しています。

昨日のエントリを書くにあたって、
管理画面に新バージョンがリリースされたと表示されていたので、
アップデートしてみようとしました。

WordPress 2.7.1 が利用可能です!

バージョン 2.7 からは「自動アップデート機能」が利用できるのですが、
利用しているサーバが FTP を許可していないため利用できません。
( FTPS は利用できるそうです。FTPS ≠ SFTP )

自動インストール機能

以下はそのだめだめ試行錯誤記録です。(最終的にへとへとゴールイン)
よい子は真似しないでくださいね。

1. WordPress の管理画面から ZIP ファイルを Windows のデスクトップにダウンロード ( 最新版のダウンロードがリンクではなく、Form Button だったため )

2. PuTTY で ssh ログインして、一瞬 root でログイン可能にする。( うわあ … )

$ sudo vi /etc/ssh/sshd_config

PermitRootLogin yes
#PermitRootLogin no

$ sudo vi /etc/ssh/sshd_config
$ sudo /etc/init.d/sshd reload

3. WinSCP3 で root としてログイン、
WordPress が存在する 1 つ上のディレクトリに、最新版の ZIP ファイルを置く

4. 用が済んだので、ssh の設定を元に戻して root ログインを不可能にする。

$ sudo vi /etc/ssh/sshd_config

#PermitRootLogin yes
PermitRootLogin no

$ sudo vi /etc/ssh/sshd_config
$ sudo /etc/init.d/sshd reload

5. ZIP ファイルのディレクトリに移動し、解凍します。

$ su -
# cd /PATH/TO/SOMEWHERE ( ZIP ファイルのあるディレクトリ )
# unzip wordpress-2.7.1-ja.zip

6. wordpress というディレクトリができるので、
既存の設定ファイルをコピーして新しい設定ファイルを作成する
なお、ここでは既存の WordPress 用ディレクトリ名を ” html ” であるとする。

# cp html/wp-config.php wordpress/wp-config.php

7. 既存のディレクトリ名を適当に変更し、
新しいディレクトリ名を既存のディレクトリ名に変更する。( すりかえる )
必要であれば、所有権の変更も行う。

# mv html html_old
# mv wordpress html
# chown -R yosketch:apache html/

それで、http://blog.yosketch.jp/ を表示させたら、
画面が真っ白! 頭も真っ白!!白銀の世界へようこそ!

DB のほうはバックアップとってないし、もしかしてプギャー??

その一方で、WordPress の裏っかわ、管理画面は問題なし。

そこで、テストエントリを書いて見る。投稿処理は問題ないように見える。

「投稿を表示する」のリンクを押したところ、404 Not Found … orz
しかし、これは!と思ってチェックしたら、
最新版 WordPress のディレクトリには .htaccess がない!

8. htaccess ファイルをコピー ( 本当は $ cp -p で所有権そのままにコピーできます )

# cp html_old/.htaccess html/.htaccess
# chown apache:apache html_old/.htaccess html/.htaccess

これでうまく行っただろうと思ったら、
今度はテストエントリページまで驚きの白さに。あわわわ。

html/index.php に

error_reporting(E_ALL ^ E_NOTICE);

を仕込んだけど、再度読みこみをしても無言。。
HTML ソースもなんか典型的な真っ白のページ作成コードで、
Apache の log を tailf して眺めていても、error_log には何も吐かれない。

裏 ( 管理 ) 画面は OK で、表画面が NG なのはなぜだ。

そっか、テーマスキンとか画像がないからだ!!( ピキーン )

9. ということで。テーマフォルダをコピー

# cp -pr html_old/wp-content/themes/* html/wp-content/themes/
cp: overwrite `html/wp-content/themes/classic/style.css’? y
… ( 略 ) …

10. プラグインも忘れてた。

# cp -pr html_old/wp-content/plugins/* html/wp-content/plugins/

11. あと過去にアップロードした画像ファイルの移動も忘れてた。笑

# mkdir html/wp-content/uploads
# cp -pr html_old/wp-content/uploads/* html/wp-content/uploads/
# chown -R yosketch:apache html/wp-content/uploads/
# chmod 777 -R html/wp-content/uploads/

# ll html/wp-content/uploads/2009/01/
feed-icon-legacy_blue.gif  image-150×21.gif  …

これでどうだ!!

やった。
画像も OK.
コメントも OK.
プラグインも動いているみたい。

あー、面倒かった。。

ちなみに今回のバージョン 2.7.1 では
こんなにたくさんの不具合が修正されているようです。

いつもお世話になっております。

そもそも自前サーバなので、
FTP サーバくらい立てれば「自動アップデート」で話は済んでいたのに。
まま、痛い目見れて良かったです。

FTP は Jail 環境で作らねば、と思っていたので、
近々 vsftpd で構築したいと思います。

いやー巨大システムこわい (?)

GMail や Hotmail アドレスの表示用アイコンを作ってくれる E-Mail Icon Generator.

金曜日, 1 月 2nd, 2009

Gmail をはじめとする、様々なオンラインメールサービスのアドレスをページに表示するための、かわいいアイコンを作ってくれるサービスです。

このブログの About ページで使わせていただいています。

こんな感じです。
image 

対応サイトは、

AOL, ATT, BellSouth, Bigfoot, Blueyonder, Comcast, Cox, Earthlink, GMail, Hotmail, Live, Lycos, MSN, Mac, Netscape, QQ, RocketMail, Rogers, SBCGlobal, Sina, Spymac, Sympatico, Vip.Sina, Verizon, Yahoo で、

Hotmail や Yahoo は co.jp ドメインにも対応しています。
Example@Hotmail.com

E-Mail Icon Generator.
http://services.nexodyne.com/email/