WordPress 3.2.1 インストール手順

  • author: Tadashi
  • 2011/09/20 23:42

WordPressをインストールしました。今日は本体のみで後日スマートフォン対応しようと思います。

WordPress 3.2.1 インストール手順

WordPress日本語ページから最新版のファイルをダウンロードします。今日現在は「3.2.1」です。

EC-CUBEと同様、今回の構成は次のとおり
CentOS 5.5
PHP 5.2.11
MySQL 5.0.77

ダウンロードした圧縮ファイルを解凍し、中の「wp-config-sample.php」を開き、データベースの接続情報 (データベース名、ユーザー名、パスワード) を変更し、このファイルの名前を「wp-config.php」に変更して保存します。

そして、すべてのファイルをサーバーにアップロードします。

ここで先にデータベースを作成しておきます。(一部伏字にしています)
---
# mysql -u root
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 127
Server version: 5.0.77 Source distribution

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

mysql> CREATE DATABASE wp_lists;
Query OK, 1 row affected (0.00 sec)

mysql> GRANT ALL PRIVILEGES ON wp_lists.* to *****@localhost identified by '*****';
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> exit
---

ブラウザから「wp-admin/install.php」にアクセスします。

WordPress 3.2.1 インストール手順

「サイトのタイトル」と「メールアドレス」を入力し、パスワードは空白にして自動生成させます。

WordPress 3.2.1 インストール手順

次に進むと、「ユーザー名」と「パスワード」が表示されますので、忘れずにメモします。

WordPress 3.2.1 インストール手順

管理ログイン画面が表示されました。

WordPress 3.2.1 インストール手順

ログインすると、問題なくインストールされたようです。

WordPress 3.2.1 インストール手順

サイトのサンプルページも問題ありません。

ここまで来たら、データベースが初期化されないようにinstall.phpは削除しておきます。


EC-CUBE 郵便番号DB登録エラー

  • author: Tadashi
  • 2011/09/18 19:03

EC-CUBE 2.11.2をインストールしてみたが、管理画面の郵便番号DB登録がエラーになった。

EC-CUBE 郵便番号DB登録

システムエラーが発生しました。

EC-CUBE 郵便番号DB登録

どういうふうにエラーを調べようかとネット検索していると、「システム設定」-「パラメーター設定」にある「DEBUG_MODE」を「true」に変更して、画面上にデバッグを表示するようだ。

EC-CUBE 郵便番号DB登録

「data/downloads/KEN_ALL_utf-8.CSV」がないと言っているが、そもそもそんなファイルはない。

コピーして文字エンコードを変更して作ればいいのだろうと、ついでに最新版の辞書をダウンロードしてアップロードした。
郵便番号データダウンロード

EC-CUBE 郵便番号DB登録

画面が出てきたので、自動登録でインストール。

EC-CUBE 郵便番号DB登録

時間がかかりそうだ・・・

EC-CUBE 郵便番号DB登録

10分ほどかかって100%になった途端に画面が真っ白になった。戻らないのか?

EC-CUBE 郵便番号DB登録

再度、メニューから郵便番号DB登録を選択すると、12万行入ったようだ。

これで「自動住所入力」ができるようなったのだけど、なぜか自宅の「929-0335」は登録がないと言われる・・・・データベースにはあるのにね、なぜ?


EC-CUBE 2.11インストール手順

  • author: Tadashi
  • 2011/09/18 10:23

「EC-CUBE」というのは日本企業が開発されているオンラインショップ構築のオープンソースです。

EC-CUBE (株式会社ロックオン)

「2.11」バージョンでスマートフォン対応もしたということで、インストールしてみました。2.4のインストール手順はたくさんありますが、2.11になってまだ日が浅いためか、詳細なインストール手順がなかったので、とりあえず手探りで入れてみました。

今回の構成は次のとおり
CentOS 5.5
PHP 5.2.11
MySQL 5.0.77

まずはホームページから最新版をダウンロードして解凍し、中の「data」フォルダと「html」フォルダをアップロードします。

ECサイトのルートはhtmlフォルダとなります。ここからはブラウザでアクセスしながら、一方でコマンドを実行していきます。

EC-CUBE 2.11.2インストール

最初からエラーメッセージが表示されました。

/home/fsadmin/jsampo/public/eccube/html/../data/cache/ にユーザ書込み権限(777等)を付与して下さい。

2.4バージョンでも書込み権限の必要なフォルダはありましたが、変更されている可能性もありますので、順番に行きます。

data/cacheフォルダに書込み権限を付与します。
---
# cd /home/fsadmin/jsampo/public/eccube/data
# chmod 777 -R cache
---

ブラウザをリロード

EC-CUBE 2.11.2インストール

またエラーメッセージが表示されました。
---
Warning: mkdir() [function.mkdir]: 許可がありません in /home/fsadmin/jsampo/public/eccube/data/class/SC_Initial.php on line 249

Warning: mkdir() [function.mkdir]: 許可がありません in /home/fsadmin/jsampo/public/eccube/data/class/SC_Initial.php on line 253

Warning: mkdir() [function.mkdir]: 許可がありません in /home/fsadmin/jsampo/public/eccube/data/class/SC_Initial.php on line 257

Warning: mkdir() [function.mkdir]: 許可がありません in /home/fsadmin/jsampo/public/eccube/data/class/SC_Initial.php on line 261

/home/fsadmin/jsampo/public/eccube/html/install/tempにユーザ書込み権限(777, 707等)を付与して下さい。
---

簡単なほうから、html/tempフォルダに書込み権限を付与します。
---
# cd /home/fsadmin/jsampo/public/eccube/html/install
# chmod 707 -R temp
---
上のエラーはフォルダ作成権限がないというものですが、data/Smarty/templates_cに書き込み権限がないということなので付与する。
---
# cd /home/fsadmin/jsampo/public/eccube/data/Smarty
# chmod 777 -R templates_c
---

EC-CUBE 2.11.2インストール

ようやくインストールの開始画面が表示されました。

EC-CUBE 2.11.2インストール

チェック結果が表示されました。さらに権限エラーがたくさん出ています。

フォルダには書込み、実行権限を、中のファイルには書込み権限を付与します。

中のファイルまですべて表示されているので長いですが、要約すると次のフォルダが対象です。
html
html/user_data 以下
html/upload 以下
data/class 以下
data/Smarty/templates 以下
data/downloads 以下
data/upload/csv
data/cache 以下

コマンドにすると次のようになります。
---
# cd /home/fsadmin/jsampo/public/eccube/html/user_data
# chmod 606 __default.php
# chmod 707 css
# chmod 606 css/common.css
# chmod 707 -R include
# chmod 707 -R packages
# chmod 606 packages/admin/css/*.css
# chmod 606 packages/admin/img/basis/*.gif
# chmod 606 packages/admin/img/button/*
# chmod 606 packages/admin/img/common/*
# chmod 606 packages/admin/img/contents/*
# chmod 606 packages/admin/img/header/*
# chmod 606 packages/admin/jquery.multiselect2side/js/jquery.multiselect2side.js
# chmod 606 packages/admin/jquery.multiselect2side/jmultiselect2side.html
# chmod 606 packages/admin/jquery.multiselect2side/jmultiselect2side.html
# chmod 606 packages/admin/js/*
# chmod 606 packages/default/css/*
# chmod 606 packages/default/img/ajax/*
# chmod 606 packages/default/img/background/*
# chmod 606 packages/default/img/banner/*
# chmod 606 packages/default/img/button/*
# chmod 606 packages/default/img/common/*
# chmod 606 packages/default/img/icon/*
# chmod 606 packages/default/img/picture/*
# chmod 606 packages/default/img/title/*
# chmod 606 packages/default/sql/*
# chmod 606 packages/mobile/img/header/*
# chmod 606 packages/sphone/css/*.css
# chmod 606 packages/sphone/css/images/*
# chmod 606 packages/sphone/img/button/*
# chmod 606 packages/sphone/img/common/*
# chmod 606 packages/sphone/img/header/*
# chmod 606 packages/sphone/img/icon/*
# chmod 606 packages/sphone/js/*.js
# chmod 606 packages/sphone/js/images/*
# chmod 606 packages/sphone/js/jquery.facebox/*
# chmod 707 -R plugins
# chmod 606 plugins/*.xml
# chmod 606 plugins/google_analytics/*.php
# chmod 606 plugins/google_analytics/admin/*
# chmod 606 plugins/google_analytics/classes/pages/*
# chmod 606 plugins/google_analytics/sql/*
# chmod 606 plugins/google_analytics/tpl/*.tpl
# chmod 606 plugins/google_analytics/tpl/admin/*.tpl
# chmod 606 plugins/recommend/*.php
# chmod 606 plugins/recommend/admin/*
# chmod 606 plugins/recommend/classes/*
# chmod 606 plugins/recommend/img/*
# chmod 606 plugins/recommend/sql/*
# chmod 606 plugins/recommend/tpl/*.tpl
# chmod 606 plugins/recommend/tpl/admin/*.tpl
# chmod 707 -R templates
# cd ..
# chmod 707 -R upload
# chmod 606 upload/save_image/*
# cd ../data
# chmod 707 -R class
# chmod 606 class/*.php
# chmod 606 class/batch/*
# chmod 606 class/db/*.php
# chmod 606 class/db/dbfactory/*
# chmod 606 class/graph/*
# chmod 606 class/helper/*
# chmod 606 class/module/*
# chmod 606 class/pages/*.php
# chmod 606 class/pages/forgot/*
# chmod 606 class/pages/admin/*.php
# chmod 606 class/pages/admin/basis/*
# chmod 606 class/pages/admin/contents/*
# chmod 606 class/pages/admin/customer/*
# chmod 606 class/pages/admin/design/*
# chmod 606 class/pages/admin/mail/*
# chmod 606 class/pages/admin/order/*
# chmod 606 class/pages/admin/ownersstore/*
# chmod 606 class/pages/admin/plugin/*
# chmod 606 class/pages/admin/products/*
# chmod 606 class/pages/admin/system/*
# chmod 606 class/pages/admin/total/*
# chmod 606 class/pages/cart/*
# chmod 606 class/pages/contact/*
# chmod 606 class/pages/entry/*
# chmod 606 class/pages/error/*
# chmod 606 class/pages/forgot/*
# chmod 606 class/pages/frontparts/*.php
# chmod 606 class/pages/frontparts/bloc/*
# chmod 606 class/pages/guide/*
# chmod 606 class/pages/mypage/*
# chmod 606 class/pages/order/*
# chmod 606 class/pages/preview/*
# chmod 606 class/pages/products/*
# chmod 606 class/pages/regist/*
# chmod 606 class/pages/rss/*
# chmod 606 class/pages/shopping/*
# chmod 606 class/pages/unsupported/*
# chmod 606 class/pages/upgrade/*.php
# chmod 606 class/pages/upgrade/helper/*
# cd Smarty
# chmod 707 -R config templates
# chmod 606 templates/admin/*.tpl
# chmod 606 templates/admin/adminparts/*
# chmod 606 templates/admin/basis/*
# chmod 606 templates/admin/contents/*
# chmod 606 templates/admin/css/*
# chmod 606 templates/admin/customer/*
# chmod 606 templates/admin/design/*
# chmod 606 templates/admin/mail/*
# chmod 606 templates/admin/order/*
# chmod 606 templates/admin/ownersstore/*
# chmod 606 templates/admin/pdf/*
# chmod 606 templates/admin/plugin/*
# chmod 606 templates/admin/products/*
# chmod 606 templates/admin/system/*
# chmod 606 templates/admin/total/*
# chmod 606 templates/default/*.tpl
# chmod 606 templates/default/abouts/*
# chmod 606 templates/default/cart/*
# chmod 606 templates/default/contact/*
# chmod 606 templates/default/entry/*
# chmod 606 templates/default/forgot/*
# chmod 606 templates/default/frontparts/*.tpl
# chmod 606 templates/default/frontparts/bloc/*
# chmod 606 templates/default/guide/*
# chmod 606 templates/default/mail_templates/*
# chmod 606 templates/default/mypage/*
# chmod 606 templates/default/order/*
# chmod 606 templates/default/products/*
# chmod 606 templates/default/regist/*
# chmod 606 templates/default/rss/*
# chmod 606 templates/default/shopping/*
# chmod 606 templates/mobile/*.tpl
# chmod 606 templates/mobile/cart/*
# chmod 606 templates/mobile/contact/*
# chmod 606 templates/mobile/entry/*
# chmod 606 templates/mobile/forgot/*
# chmod 606 templates/mobile/frontparts/bloc/*
# chmod 606 templates/mobile/guide/*
# chmod 606 templates/mobile/mail_templates/*
# chmod 606 templates/mobile/mypage/*
# chmod 606 templates/mobile/order/*
# chmod 606 templates/mobile/products/*
# chmod 606 templates/mobile/regist/*
# chmod 606 templates/mobile/shopping/*
# chmod 606 templates/mobile/unsupported/*
# chmod 606 templates/sphone/*.tpl
# chmod 606 templates/sphone/abouts/*
# chmod 606 templates/sphone/cart/*
# chmod 606 templates/sphone/contact/*
# chmod 606 templates/sphone/entry/*
# chmod 606 templates/sphone/forgot/*
# chmod 606 templates/sphone/frontparts/*.tpl
# chmod 606 templates/sphone/frontparts/bloc/*
# chmod 606 templates/sphone/guide/*
# chmod 606 templates/sphone/mypage/*
# chmod 606 templates/sphone/order/*
# chmod 606 templates/sphone/products/*
# chmod 606 templates/sphone/regist/*
# chmod 606 templates/sphone/shopping/*
# cd ../downloads
# chmod 707 backup module tmp update
# chmod 606 KEN_ALL.CSV
# cd ../..
# chmod 707 data/upload/csv
# chmod 707 html
# chmod 606 data/cache/*
---
ここまで長いとすべて707でも良かったかな。

EC-CUBE 2.11.2インストール

やっと正常だって言われました・・・
---
>> ○:アクセス権限は正常です。
---

EC-CUBE 2.11.2インストール

画像がコピーされました。

EC-CUBE 2.11.2インストール

ECサイトの設定を入力します。

EC-CUBE 2.11.2インストール

データベースの設定を入力します。

データベースは「PostgreSQL」と「MySQL」から選択できます。次に進む前にデータベースを作成します。DBユーザはテーブルを作成する権限が必要です。
---
# mysql -u root
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 127
Server version: 5.0.77 Source distribution

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

mysql> CREATE DATABASE jsampo_eccube_db;
Query OK, 1 row affected (0.00 sec)

mysql> GRANT ALL PRIVILEGES ON jsampo_eccube_db.* to *****@localhost identified by '*****';
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> exit
---

EC-CUBE 2.11.2インストール

ログインに成功すると、データベースの初期化画面が表示されます。

EC-CUBE 2.11.2インストール

テーブルや初期データを作成します。

EC-CUBE 2.11.2インストール

サイト情報が表示されましたが、上にエラーがまた出ました。
---
Warning: fopen(/home/fsadmin/jsampo/public/eccube/data/class/../config/config.php) [function.fopen]: failed to open stream: 許可がありません in /home/fsadmin/jsampo/public/eccube/html/install/index.php on line 989
---

今まで入力していた設定情報のファイルを作成できないようです。
data/configに書込み権限を付与します。
---
# chmod 707 /home/fsadmin/jsampo/public/eccube/data/config
---

EC-CUBE 2.11.2インストール

前に戻って、正常に表示されました。
※前に戻ったときは「データベースの初期化処理を行わない」にチェックします。

EC-CUBE 2.11.2インストール

ここまで3時間手探りでやってきたインストールもようやく終わりです。

EC-CUBE 2.11.2インストール

と管理画面を表示すると・・・
---
>> /install/index.php は、インストール完了後にファイルを削除してください。
---

まだ最後の作業が残っていましたね。
html/install/index.phpを削除します。
---
# rm -f /home/fsadmin/jsampo/public/eccube/html/install/index.php
---

インストール設定はdata/config/config.phpになりますので、すべての設定が終わった後でURLを変更する場合は、直接変更できます。


phpBB3のインストール手順

  • author: Tadashi
  • 2010/10/30 23:56

社内でメッセージを共有し、かつメール送信する人を選べるアプリはないか?ということで探していたところ、「phpBB」に行き当たったのでとりあえずインストールしてみた。よって、その手順を残しておく。

phpBBとしては「PHPBB.HELP J」が日本語サイトしては有名なようだが、バージョン2で情報が古い。しかし参考になる部分もあるので一通り確認した。

PHPBB.HELP J
http://all.netgamers.jp/index.html

「公式サイト」はもちろん英語。しかし、ダウンロードはここから探す。
http://www.phpbb.com/

1.「Downloads」から以下の4ファイルをダウンロードする。
「Full Packeage」から本体をダウンロード。今日現在の最新版は「3.0.7-PL1」
http://www.phpbb.com/downloads/olympus.php
「日本語」表示用として「LANGUAGE」「SUBSILVER2」「PROSILVER」をダウンロード。後者2つは掲示板の表示スタイル。
http://www.phpbb.com/languages/

2.ダウンロードしたファイルを解凍する。
「phpBB-3.0.7-PL1.zip」を解凍して、「phpBB3」フォルダができる。
「lang_ja.zip」を解凍して、先の「phpBB3\language」フォルダに入れる。
「prosilver_ja.zip」を解凍して、先の「phpBB3\styles」フォルダに入れる。
「subsilver2_ja.zip」を解凍して、先の「phpBB3\styles」フォルダに入れる。

3.FTPアプリで「「phpBB3」フォルダ」をサーバーにアップロードする。

4.アップロードしたファイル・フォルダの所有者を変更する。
# chown apache. /(install folder)/phpBB3/config.php
# chown -R apache. /(install folder)/phpBB3/images/avatars/upload/
# chown -R apache. /(install folder)/phpBB3/cache/
# chown -R apache. /(install folder)/phpBB3/files/
# chown -R apache. /(install folder)/phpBB3/store/

5.ここからはブラウザで続きの作業を。URLは自分のに変更して実行する。
実行ファイルはphpBB2のときと変更されているので注意!
http://(yourURL)/install/index.php

6.はじめに
phpBB3のインストール手順

最初から日本語で表示された。

7.「インストール」タブを選択する。
phpBB3のインストール手順

phpBB3 がサポートするデータベースは
・MySQL 3.23 以上 ( MySQLi も可)
・PostgreSQL 7.3+
・SQLite 2.8.2+
・Firebird 2.1+
・MS SQL Server 2000 以上 (直接または ODBC 経由)
・Oracle

8.インストールの診断
phpBB3のインストール手順

「データベースのサポート」以外はOKになるようにします。

9.データベース設定
phpBB3のインストール手順

データベースをコマンドで作成してから、その情報をここに入力します。
必要な情報は
・ホスト名
・データベース名
・ユーザー名
・パスワード

10.データベースへの接続
phpBB3のインストール手順

成功したら次に進みます。

11.管理人設定
phpBB3のインストール手順

管理者情報を入力します。必要な情報は、
・ユーザー名
・パスワード
・メールアドレス

12.管理人設定のチェック
phpBB3のインストール手順

成功したら次に進みます。

13.コンフィグファイル
phpBB3のインストール手順

成功したら次に進みます。

14.詳細な環境設定
phpBB3のインストール手順

「メール設定」と「サーバ設定」を変更できるが、管理画面であとでも変更できるのでそのまま進みます。

15.データベーステーブルの作成エラー
phpBB3のインストール手順

「データベーステーブルの作成」ステップでエラーが出ると、このように表示されます。この場合はデータベースへのCREATE TABLE権限がなかったため。

一時的に全権をデータベースユーザーに与えて、インストール後に元(SELECT、INSERT、UPDATE、DELETEのみ)に戻します。

16.データベーステーブルの作成
phpBB3のインストール手順

成功したら次に進みます。

17.最終ステージ
phpBB3のインストール手順

すべて終わったら、「ログイン」ボタンでログインしてみます。

18.インストールからログイン
phpBB3のインストール手順

管理画面へログインします。

19.掲示板トップ
phpBB3のインストール手順

管理画面の右上の「掲示板トップ」リンクでこの画面が表示される。

ここからどうやって管理画面へ戻るのか迷ったが、管理者で掲示板にログイン後に、Copyright下の「Administration Control Panel」リンクからもう一度ログインする。

20.掲示板の環境
phpBB3のインストール手順

管理画面でとりあえず修正が必要なのは、「掲示板の環境」である。

・サイト名
・サイトの説明
・掲示板のタイムゾーン
この3つは修正しておこう。

phpBB3のインストール手順

タイムゾーンは「[UTC + 9]日本標準時、韓国標準時、チタ標準時」を選択する。

21.ユーザー登録設定
phpBB3のインストール手順

掲示板への自由参加を許さないのであれば、「アカウントの有効化」を「Admin」に変更し、「一見さん卒業までの投稿数」を「0」に変更する。

以上である。どう使うかはおいおい紹介する。


バックアップはFTPで!

  • author: Tadashi
  • 2010/09/28 14:28

データファイルのバックアップをどうしようか?と考えていました。

主な要望は以下
・homeディレクトリ毎すべてのファイルをバックアップしたい
・バックアップ先はLinkStation(バッファロー製)
・使えるプロトコルは「FTP」

LinuxサーバーからLinuxサーバーへのバックアップであれば「rsync」を使用できるが、相手がFTPしか使えないのでどうするか?

FTPコマンドでは1ファイルずつ操作するので、増えていくファイルに対応するのは至難の業ですね。

そこで、何かないかとさがしていたところ、見つけたのは「lftp」です。rsyncが流行するまで使用されたことがあるようですが、幸いCentOSには標準で入っている(追加のモジュールが必要です)ようです。

以下、設定手順

必要なモジュールをアップデートする
# yum install lftp
lftp
perl-String-CRC32

rootフォルダにシェルスクリプトを作成する
# vi daily_backup.sh
---
#!/bin/sh

# FTP SYNC
lftp -u ユーザ名,パスワード -e "mirror --reverse --only-newer /home /disk1/backup" ホスト名 << END
quit
END
---

基本的なコマンドは
lftp -u ユーザ名,パスワード ホスト名
となる。ホスト名はIPアドレスでよい。

「mirror コピー元,コピー先」でフォルダの同期が行えるが標準はダウンロードになる。今回はバックアップのLinkStationにアップロードしたいので、「--reverse」スイッチを使用する。またバックアップ節減のため新規ファイルのみ対象とするため、さらに「--only-newer」スイッチを付加する。

lftpコマンドは自身で終了しないので、最後に「quit」を入力する。

シェルの権限変更
# chmod 700 daily_backup.sh

毎日2時に実行する
# vi /etc/crontab
---
0 2 * * * root /root/daily_backup.sh
---
# service crond restart

これでFTPで同期処理できるようになった。

参考サイト: lftpで行う手軽なバックアップ


Virtual Server 2005 R2上のDovecotが落ちる・・・

  • author: Tadashi
  • 2010/08/25 22:35

Virtual Server 2005 R2上にCentOS5.5をインストールして、PostfixとDovecotでメールサーバーを組みました。

が・・・・・Dovecotが頻繁に落ちるのです。

dovecot: pop3-login: Time just moved backwards by 5 seconds. I'll sleep now until we're back in present. http://wiki.dovecot.org/TimeMovedBackwards
dovecot: auth(default): Time just moved backwards by 4 seconds. I'll sleep now until we're back in present. http://wiki.dovecot.org/TimeMovedBackwards
dovecot: Time just moved backwards by 6 seconds. This might cause a lot of problems, so I'll just kill myself now. http://wiki.dovecot.org/TimeMovedBackwards

こんなエラーメッセージが続きます。

意味は「時間が○秒戻ったので私(Dovecot)は停止します」って、勝手に死ぬなよー

Virtual Server上に入れたCentOSはクロックの割り込みがうまく行かず、時間がすぐに大幅に狂ってしまいます。

そこでNTPサービスをインストールしましたが、時間が狂いすぎるのか同期できず、仕方なしにバッチで強制的に合わせていました。

# vi /etc/crontab
---
*/10 * * * * root ntpdate 219.164.211.137 > /dev/null 2>&1
---

しかし、エラーメッセージにある「http://wiki.dovecot.org/TimeMovedBackwards」を見てみると、このntpdateコマンドがいけないようですね。

急な同期がダメなのは次のホームページが参考になります。
http://www.ys-network.info/?p=996

このページに死んだDovecotを監視するバッチがあったのでセットします。

# vi /root/dovecot_check_restart.sh
---
#!/bin/sh

HOST='localhost'
#PORT=110
PORT=143
#HP=@$HOST:$PORT
HP=:$PORT
echo 'Checking to see if Dovecot is up...'
if ( lsof -Pni $HP -s TCP:LISTEN 2>&1 >/dev/null ); then
echo 'Dovecot is up';
else
echo 'Dovecot is down, restarting...';
/etc/init.d/dovecot restart
logger -p mail.info dovecot_check_restart.sh restarting Dovecot
fi
---
# chmod 700 dovecot_check_restart.sh
# vi /etc/crontab
---
* * * * * root /root/dovecot_check_restart.sh 2>&1 > /dev/null
---
# service crond restart

これで自動復帰するようになったDovecotですが、実際に接続して使用するとやはり途中で切断されることがしばしば・・・・

さらに調べていると「Virtual Machine Additions For Linux 2.0」で親ホストと同期するのがいいみたい

ということで

参考サイト
http://tnt-blog.at.webry.info/200801/article_3.html
http://www.microsoft.com/downloadS/details.aspx?FamilyID=bf12642f-77dc-4d45-ae4e-e1b05e0a2674&displaylang=en

まずはダウンロードした「VMAdditionsForLinux_32Bit.msi」を親ホスト(Windows Server 2003 R2)にインストールします。

インストールしたフォルダ内のISOファイル(C:\Program Files\Microsoft Virtual Server\Virtual MachineAdditions\VMAdditionsForLinux.iso)をCentOS5.5のCD-ROMにマウントします。

ここからは内部コマンドです。
# mount /dev/cdrom
mount: /etc/fstab や /etc/mtab 内に /dev/hdc を見つけられません

このコマンドだとエラーになりました。

# mkdir /mnt/cdrom
# mount /dev/cdrom /mnt/cdrom/
mount: ブロックデバイス /dev/cdrom は書き込み禁止です、読込み専用でマウントします

CDROM領域を作成してマウントすると読込み専用でマウントされました。

# cd /mnt/cdrom/
[root@fsmail cdrom]# ls
install.sh vmadd-kernel-module-RHEL-2.0-1.i386.rpm
vmadd-full-2.0-1.i386.rpm vmadd-scsi-2.0-1.i386.rpm
vmadd-full-RHEL-2.0-1.i386.rpm vmadd-shutdown-2.0-1.i386.rpm
vmadd-heartbeat-2.0-1.i386.rpm vmadd-timesync-2.0-1.i386.rpm
vmadd-kernel-module-2.0-1.i386.rpm vmadd-x11-2.0-1.i386.rpm

多くのRPMパッケージが入っていますね。

[root@fsmail cdrom]# ./install.sh

シェルがあったので実行してみましたが・・・・何も起きませんでした。

そこで1つずつインストール。依存関係のあったkernel-devel をUPDATE

# yum install kernel-devel
kernel-devel i686 2.6.18-194.11.1.el5 updates 5.4 M

次の順で4つのRPMパッケージをインストールしました。

# rpm -ivh vmadd-kernel-module-RHEL-2.0-1.i386.rpm
# rpm -ivh vmadd-heartbeat-2.0-1.i386.rpm
# rpm -ivh vmadd-shutdown-2.0-1.i386.rpm
# rpm -ivh vmadd-timesync-2.0-1.i386.rpm

残念.....CentOS5.5には入らないようです。

これが入ればそのまま使用と思いましたが、諦めます・・・


Cronでサービスの死活監視

  • author: Tadashi
  • 2010/08/23 14:44

最近仕事でVPSにWeb、メール(Postfix、Dovecot)、Webメール、メーリングリスト(Mailman)とインストールしたのだが・・・

本番が始まると突然のサービス停止に時々見舞われて、極めて不安定な状態です。

どうもメーリングリストの設定なのか相性なのか、ここが起因になって他のサービスが停止するようです。

ということで、死活監視を行うことになったのですが、今回はCronのみで死活監視を行うことに挑戦しました。

cronの編集は「# vi /etc/crontab」を前提としています。

Webの死活監視
0 * * * * root wget -O - (URL) > /dev/null 2>&1 || echo `date +\%Y/\%m/\%d_\%H:\%M:\%S` > /dev/null | tee -a /var/log/service_watch.log | service httpd restart > /dev/null | tee -a /var/log/service_watch.log

毎時0分に起動します。Wgetコマンドにより(URL)に指定したコンテンツを取得、取得できなかった場合は、ログファイル(/var/log/service_watch.log)に時刻とサービス再起動状態を記録します。「tee」コマンドの「-a」はファイルに追記するオプションです。

smtpの死活監視
1,11,21,31,41,51 * * * * root (sleep 2;echo "quit") | `telnet 127.0.0.1 25 >& smtp_status`;if [ `grep -c '220' smtp_status` != 1 ]; then service postfix restart; logger -t smtp "crond check - smtp service restart"; fi; > /dev/null 2>&1

1分から10分おきに実行します。quit入力を2秒後にセットし、ローカルの25番ポートに接続します。正常に接続できれば、エコーの中に「220」が入るので、それがない場合は接続できなかったと判断して、Postfixの再起動をします。ログは標準のmessageログに指定したメッセージ(crond check - smtp service restart)で書き込まれます。

pop3の死活監視
2,12,22,32,42,52 * * * * root (sleep 2;echo "quit") | `telnet 127.0.0.1 110 >& pop3_status`;if [ `grep -c 'Welcome' pop3_status` != 1 ]; then service dovecot restart; logger -t pop3 "crond check - dovecot service restart"; fi; > /dev/null 2>&1

2分から10分おきに実行します。quit入力を2行後にセットし、ローカルの110番ポートに接続します。正常に接続できれば、エコーの中に「Welcome」(独自のバナーメッセージ)が入るので、それがない場合に接続できなかったと判断して、Dovecotの再起動をします。ログは標準のmessageログに指定したメッセージ(crond check - dovecot service restart)で書き込まれます。

メーリングリストはサービスが起動していても、キューが詰まる現象があったので、1時間ごとに強制的に再起動させるようにしました。

10 * * * * root service mailman restart > /dev/null 2>&1


Apache アクセスログを目的別に分けて出力する方法

  • author: Tadashi
  • 2010/07/15 13:58

携帯サイトで、「Flash待ち受け」「画像待ち受け」「デコメテンプレート」の3種類のダウンロード回数をカウントするサイトを作成したときの話。

それぞれのダウンロード回数をアクセスログの行数(つまり画面に表示した時点でダウンロード)で判断することになった。

その適用方法を紹介します。

# vi /etc/httpd/conf/httpd.conf



#
# For a single logfile with access, agent, and referer information
# (Combined Logfile Format), use the following directive:
#
SetEnvIf Request_URI "decome\.dmt" decome
SetEnvIf Request_URI "decome\.hmt" decome
SetEnvIf Request_URI "decome\.khm" decome
SetEnvIf Request_URI "flash0\.swf" flash
SetEnvIf Request_URI "waiting0\.gif" waiting
CustomLog logs/decome1_log combined env=decome
CustomLog logs/flash_log combined env=flash
CustomLog logs/waiting_log combined env=waiting
CustomLog logs/access_log combined             

→mod_setenvif を使用して該当のファイル名がアクセスログに記録されるタイミングに、各個別ファイルと「access_log」に記録されるようにします。一番後ろにつけた名前(env)によって振分をおこないます。


・・・
CustomLog "| /usr/sbin/rotatelogs /home/fs/www/accesslog/access_log.%Y%m%d 86400 540" combined
CustomLog "| /usr/sbin/rotatelogs /home/fs/www/accesslog/decome0_log.%Y%m%d 86400 540" combined env=decome
CustomLog "| /usr/sbin/rotatelogs /home/fs/www/accesslog/flash_log.%Y%m%d 86400 540" combined env=flash
CustomLog "| /usr/sbin/rotatelogs /home/fs/www/accesslog/waiting_log.%Y%m%d 86400 540" combined env=waiting

→バーチャルホストを使用している場合は、ここにも「CustomLog 」を追加します。最後に「env」を忘れると、うまく振分られないことがありますので、忘れずにつけましょう。


後はできたファイルの行数を数えれば各ダウンロード回数となります。
(注)Basic認証をかけた場合は1回のアクセスで2行追加される場合があります。


NTPサーバの設定

  • author: Tadashi
  • 2010/07/13 00:14

RTX1100の設定不足でNTP同期できなかった問題が解決したところで、NTPサーバの設定をまとめておきます。

OS:CentOS 5.5 最小インストール
NTPサーバ:ビジネスぷらら
プライマリ:ntp2.plala.or.jp
セカンダリ:ntp1.plala.or.jp

NTPをインストールします。
# yum install ntp

今日現在インストールされるバージョンは「4.2.2p1-9.el5.centos.2.1」となります。

設定ファイルを編集します。
# vi /etc/ntp.conf

既存のIPv4、IPv6用の問い合わせをコメントアウトし、すべての外部からの問い合わせの拒否を追加します。
# Permit time synchronization with our time source, but do not
# permit the source to query or modify the service on this system.
#restrict default kod nomodify notrap nopeer noquery
#restrict -6 default kod nomodify notrap nopeer noquery
restrict default ignore

IPv6用のループバックアクセスをコメントアウトします。
# Permit all access over the loopback interface. This could
# be tightened as well, but to do so would effect some of
# the administrative functions.
restrict 127.0.0.1
#restrict -6 ::1

今回使用するビジネスぷららのNTPサーバを追加します。
# Hosts on local network are less restricted.
#restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
restrict 219.164.211.137 mask 255.255.255.255 nomodify notrap noquery
restrict 219.164.211.129 mask 255.255.255.255 nomodify notrap noquery

既存のNTPサーバをコメントアウトし、ビジネスぷららのNTPサーバを追加します。
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
#server 0.centos.pool.ntp.org
#server 1.centos.pool.ntp.org
#server 2.centos.pool.ntp.org
server ntp2.plala.or.jp
server ntp1.plala.or.jp

最後にローカルで同期するのを停止します。
# Undisciplined Local Clock. This is a fake driver intended for backup
# and when no outside source of synchronized time is available.
#server 127.127.1.0 # local clock
#fudge 127.127.1.0 stratum 10

自動起動するようにデーモンを設定します。
# chkconfig --level 3 ntpd on

デーモンを起動する
# service ntpd start

10分後ぐらいに同期を確認します。
# ntpq -p
remote refid st t when poll reach delay offset jitter
=============================================================
+ntp2.plala.or.j 202.234.233.109 4 u 30 64 377 14.117 23.350 7.381
*ntp1.plala.or.j 202.234.233.109 4 u 33 64 377 13.983 29.240 3.461

先頭に「*」が付いたNTPが現在の同期サーバーとして、「+」が付いたNTPが予備サーバーとして正常に同期したことを示しています。

現在の時刻を確認して終了です。
# date


SSHは便利だけど・・・

  • author: Tadashi
  • 2009/12/21 23:24

直接入力するのも大変ですので、SSHを入れましょう。

Tera Termでログインすれば、貼り付けなどで作業効率もグッと上がります。

CentOS5.3にはSSHサーバーは最初からインストールされていますので、早速設定を始めましょう。

# vi /etc/ssh/sshd_config

標準ポートは22番ですが、限られた人が使う場合はセキュリティの観点から変更しましょう。
#Port 22
Port 10022

ログインしたときのバナーを作成します。威嚇程度にしかなりませんが・・・
#Banner /some/path
Banner /etc/ssh/banner.txt

SSHはバナーは設定ファイル内ではなく、別ファイルに記述します。

設定ファイルの最後にログインできるユーザーを記述しましょう。IPアドレスを固定できるのであれば、rootもアリですね。
AllowUsers root

設定ファイルを保存して、ログイン時に表示するバナーを作成します。
# touch /etc/ssh/banner.txt
# vi /etc/ssh/banner.txt
Welcome! SSH Service. This login is recorded in the log.

設定後にデーモンの再起動します。
# service sshd restart

ポートを変更した場合は再接続します、

それではTCPWrappersを次に設定します。CentOSには最初からインストールされています。この機能ではデーモン毎に利用する環境を制限したり、付属してアクションを指定することができます。
http://www.redhat.com/docs/manuals/enterprise/RHEL-4-Manual/ja/security-guide/ch-server.html

注意するのは再起動は不要ということ!

保存と同時に設定が適用されるので、注意して最後の保存はボタンを押してくださいね。

許可ファイルにIPアドレスと許可された場合にログに記録するアクションを記述します。
# vi /etc/hosts.allow
sshd : 127.0.0.1 192.168.0. : banners /etc/banners/

記述は、(デーモン名):許可するIPアドレス:許可された場合のアクション、という順となります。

ネットワーク範囲でIPアドレスを指定する場合は、
192.168.0. (最後に「.」を忘れずに!)
または、
192.168.0.0/255.255.255.0
と記述します。

よくある 192.168.0.0/24 はエラーになるので使えません。

拒否ファイルにIPアドレスと拒否された場合にログに記録するアクションを記述します。
# vi /etc/hosts.deny
sshd : ALL : spawn /bin/echo `LANG=C /bin/date` from %h>> /var/log/sshd_reject.log

記述は、(デーモン名):拒否するIPアドレス:拒否された場合のアクション、という順となります。

上記の例では拒否されたIPアドレスをログに記録しています。

あ!そうそう接続ポートを変更する場合は、SSHの設定前にファイアウォールを停止させてくださいね。
# service iptables stop

外部から接続している場合は何もできなくなってしまいますよ!


SELinuxは・・・・どうする?

  • author: Tadashi
  • 2009/12/20 23:40

SELinuxはどうしていますか?

これって設定難しくないですか?まともに設定しているサイト見たことありません。

ということで、他でセキュリティ対策を考えることにして、今回は「無効」にします。

とりあえず、起動中のSELinuxを無効するコマンドです。
# setenforce 0

それでは、状態を確認してみましょう。
# getenforce
Permissive

これだけだと、再起動したときに復活してしまいますので、再起動時のデフォルト状態を変更しておきましょう。
# vi /etc/selinux/config

デフォルトの有効状態は以下に記載されています。
SELINUX=enforcing

今後設定が必要になったときのための情報を採取する人はこちら。エラーログは出力してくれます。
SELINUX=permissive

全く無効としてしまう人はこちら。
SELINUX=disable

ちなみに、SELinuxの「enforcing(permissive)」←→「disable」の切り替えはホストの再起動が必要です。


CentOSをインストールしよう

  • author: Tadashi
  • 2009/12/20 23:15

最近ずっとLinuxサーバーを構築していました。以前からメールサーバーはLinuxを使用していたけど、Webサーバーやら、DNSサーバーやら、果ては最近のセキュリティ対策も追加してみたりと悪戦苦闘の日々でした。

ちょっと自信作になったので、今後のためにも備忘録!

まずはOSインストールから始めましょう。

使用したのは、「CentOS5.3」。Redhat社の有償版「Red Hat Enterprise Linux 5」から有償ライセンスを外したフリー版です。皆さんもご存知ですよね。

http://www.centos.org/

サイトからダウンロードします。構築している間に「CentOS5.4」がリリースされてしまいました。

インストールの前に、今回のインストール方針は以下の2つ。

1.パッケージインストール(yum)を基本とする。Linuxは依存関係の管理が非常に面倒なので、ソースインストールすると後の管理や更新が難しくなります。

2.無駄なサービスは起動しない。

セキュリティ対策としてはよく言われていることですが、未だに標準インストールで進める人が多いですから、これでは踏み台になるサーバーは減りませんね。

インストールは方針2により、最小インストールです。

カスタマイズによりほとんどのチェックを外してしまいましょう。最後に残るは「言語」-「日本語のサポート」のみです。本当にこれだけです!それでも1Gくらいはインストールされますね。

インストール手順の中で注意する点は1点。

「タイムゾーンの選択」で「システムクロックで UTC を使用」のチェックを必ず外すようにします。そのまま進んでしまうと時計がやけに狂うのです。

もしそのまま進んでしまったのなら、以下のコマンドで修正しましょう。

# vi /etc/sysconfig/clock
---
ZONE="Asia/Tokyo"
UTC=false       →ここを「true」から「false」に変更
ARC=false
---