ページの先頭です。

Hodakaの居場所Hodakaの居場所 - XOOPS実験室

Sourceforgeは現在cronサービスを受け付けていない。

そこで、nightlyアーカイブなどプロジェクトページを毎日更新するには、リモートホストで更新するなりして、これをsourceforgeへアップロードする方法がよい。

第一の方法は、rsyncでeオプションを使いリモートshellのsshを利用することだ。これなら既に公開鍵を登録してあればパスワード認証を回避できる。

具体的には、リモートのcronジョブに次のように登録する。

rsync -avP -e "ssh -i /home/foo/.ssh/[sf.netに登録した秘密鍵]" [archive file] [account],[project]@frs.sourceforge.net:/home/groups/f/fo/fooproject/htdocs

第2の方法はscpでiオプションを使う。

scp -i 鍵ファイル ファイル [account],[project]@web.sourceforge.net:htdocs

それにしても、sf.netのシステムがころころ変わるのがつらいところ。プロジェクトのwebスペースがいつのまにか

/home/groups/f/fo/fooproject/htdocs

から

/home/project-web/fooproject/htdocs

になってしまっている。

  • コメント (0)
  • トラックバック (0)
  • 閲覧 (219)

Mailmanのインストール

yum -y install mailman

Mailmanの設定

vi /etc/mailman/mm_cfg.py
下記の行だけ活かして残りはコメントアウト
from Defaults import *
最後に以下を追加
MTA = 'Postfix'
DEFAULT_SERVER_LANGUAGE = 'ja'
DEFAULT_URL_PATTERN = 'https://%s/mailman/'
DEFAULT_LIST_ADVERTISED = No
OWNERS_CAN_DELETE_THEIR_OWN_LISTS = Yes
DEFAULT_SUBJECT_PREFIX = "[%(real_name)s: %%d] "
# reply-to
DEFAULT_REPLY_GOES_TO_LIST = 1
DEFAULT_NEW_MEMBER_OPTIONS = 256
DEFAULT_GENERIC_NONMEMBER_ACTION = 2
DEFAULT_REQUIRE_EXPLICIT_DESTINATION = No
DEFAULT_MSG_FOOTER = ''
# don't send a monthly reminder
DEFAULT_SEND_REMINDERS = No
# don't send a welcom message to a newcomer
DEFAULT_SEND_WELCOME_MSG = No
# no limit of text body size
DEFAULT_MAX_MESSAGE_SIZE = 0
# don't send a duplicated mail to subscribers
DontReceiveDuplicates = 0
# keep arichives private?
DEFAULT_ARCHIVE_PRIVATE = 1
# don't keep attached files
DEFAULT_SCRUB_NONDIGEST = False
# virtual host
# SSLで動かすのでwebはdefaultドメインを使う
DEFAULT_URL_HOST   = 'www.deafult-domain.com'
POSTFIX_STYLE_VIRTUAL_DOMAINS = ['default-domain.com','virtual-domain1.com','virtual-domain2.net','virtual-domain3.jp']
add_virtualhost(DEFAULT_URL_HOST,'default-domain.com')
add_virtualhost(DEFAULT_URL_HOST,'virtual-domain1.com')
add_virtualhost(DEFAULT_URL_HOST,'virtual-domain2.net')
add_virtualhost(DEFAULT_URL_HOST,'virtual-domain3.jp')

管理パスワード作成

/usr/lib/mailman/bin/mmsitepass password # サイト管理パスワード
/usr/lib/mailman/bin/mmsitepass -c # メーリングリスト作成パスワードpassword

クロン登録

cp /usr/lib/mailman/cron/crontab.in /etc/cron.d/mailman

aliases設定

/usr/lib/mailman/bin/genaliases

mailman リスト作成

/usr/lib/mailman/bin/newlist mailman@www.deafult-domain.com

Apache設定

/etc/httpd/conf.d/mailman.confの内容確認

リスト作成

/usr/lib/mailman/bin/newlist --urlhost=www.default-domain.com --emailhost=virtual-domain1.com listname@virtual-domain1.com email password

添付ファイルを保管しない

クライアントの文字コードをEUC-JPに変更しておく。

/usr/lib/mailman/bin/withlist -l listname
listname のリストを読み込中 (ロック完了)
変数 `m' が listname の MailList インスタンスです
>>> m.scrub_nondigest=0
>>> m.Save()
>>> ^D
リストをロック解除 (保存はしてません): listname
最終処理中

保管日数を指定する

/usr/lib/mailman/bin/withlist -l listname
listname のリストを読み込中 (ロック完了)
変数 `m' が listname の MailList インスタンスです
>>> m.max_days_to_hold=n
>>> m.Save()
>>> ^D
リストをロック解除 (保存はしてません): listname
最終処理中

通し番号を設定する

/usr/lib/mailman/bin/withlist -l listname
listname のリストを読み込中 (ロック完了)
変数 `m' が listname の MailList インスタンスです
>>> m.post_id=n
>>> m.Save()
>>> ^D
リストをロック解除 (保存はしてません): listname
最終処理中

リスト削除

削除はコマンドで行う。

/usr/lib/mailman/bin/rmlist -a listname
  • コメント (0)
  • トラックバック (0)
  • 閲覧 (545)

テキストマップを用いてユーザーホームページに誘導する方法

例:
user1.kuri3.net -> http://user1-host
user2.kuri3.net -> http://user2-host
.
.

まずマップテキストを準備する。

/path/map.a2e-user
abe http://abe-host
/path/map.f2j-user
fujii http://fujii-host
/path/map.k2o-user
katoh http://katoh-host

httpd.conf設定は:


ServerName *.kuri3.net
RewriteEngine on
RewriteMap      a2e-user        txt:/www/ondagawa/map.a2e-user
RewriteMap      f2j-user        txt:/www/ondagawa/map.f2j-user
RewriteMap      k2o-user        txt:/www/ondagawa/map.k2o-user
RewriteMap      p2t-user        txt:/www/ondagawa/map.p2t-user
RewriteMap      u2z-user        txt:/www/ondagawa/map.u2z-user
RewriteMap      129-user        txt:/www/ondagawa/map.129-user
RewriteCond %{HTTP_HOST}        ^[a-e][^.]+\.kuri3.net\.net$
RewriteRule   ^(.+)                        %{HTTP_HOST}$1          [C]
RewriteRule ^([^.]+)\.kuri3\.net(.*) ${a2e-user:$1|default-host} [R,L]
RewriteCond %{HTTP_HOST}        ^[f-j][^.]+\.kuri3\.net$
RewriteRule   ^(.+)                        %{HTTP_HOST}$1          [C]
RewriteRule ^([^.]+)\.kuri3\.net(.*) ${f2j-user:$1|default-host} [R,L]
RewriteCond %{HTTP_HOST}        ^[k-o][^.]+\.kuri3.net\.net$
RewriteRule   ^(.+)                        %{HTTP_HOST}$1          [C]
RewriteRule ^([^.]+)\.kuri3\.net(.*) ${k2o-user:$1|default-host} [R,L]
RewriteCond %{HTTP_HOST}        ^[p-t][^.]+\.kuri3.net\.net$
RewriteRule   ^(.+)                        %{HTTP_HOST}$1          [C]
RewriteRule ^([^.]+)\.kuri3\.net(.*) ${p2t-user:$1|default-host} [R,L]
RewriteCond %{HTTP_HOST}        ^[u-z][^.]+\.kuri3.net\.net$
RewriteRule   ^(.+)                        %{HTTP_HOST}$1          [C]
RewriteRule ^([^.]+)\.kuri3\.net(.*) ${u2z-user:$1|default-host} [R,L]
RewriteCond %{HTTP_HOST}        ^[1-9][^.]+\.kuri3.net\.net$
RewriteRule   ^(.+)                        %{HTTP_HOST}$1          [C]
RewriteRule ^([^.]+)\.kuri3\.net(.*) ${129-user:$1|default-host} [R,L]
  • コメント (0)
  • トラックバック (0)
  • 閲覧 (317)

CentOSのインストール後、まず次のことをやっておく。

内部文字コードはデフォルトのUTF8 ( Unicode ) のままで問題ないが、SSHクライアントがどうしてもEUC-JPでなくてはいけないような場合、

cp /etc/sysconfig/i18n /etc/sysconfig/i18n.original
vi /etc/sysconfig/i18n
# LANG="en_US.UTF-8" を変更
LANG="ja_JP.UTF-8"

wheelユーザー作成

useradd hodaka
passwd hodaka
usermod -G wheel hodaka
vi /etc/pam.d/su
#auth            required        pam_wheel.so use_uid
auth            required        pam_wheel.so use_uid
reboot

hodakaでログイン

ユーザーhodakaの公開鍵セット
mkdir .ssh
chmod 700 .ssh
touch .ssh/authorized_keys
chmod 600 .ssh/authorized_keys
vi .ssh/authorized_keys
# hodakaの公開鍵入力

ssh設定

vi /etc/ssh/sshd_config
PermitRootLogin no
# または
PermitRootLogin forced-commands-only
PasswordAuthentication no
service sshd restart

GPGキーをインストール

rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5

xinetdをインストール

yum install xinetd

tcpラッパー

vi /etc/hosts.allow
All : 127.0.0.1
sshd : 192.168.0.0/255.255.255.0
service xinetd start chkconfig xinetd on

ログローテーションをデイリーかつ古いログは圧縮

vi /etc/logrotate.conf
#weekly
daily
#rotate 4
rotate 30
#compress
compress

NTPサーバーとタイム同期(正確な時刻はメールサーバーの命)

yum install ntp
vi /etc/ntp.conf
#server 0.pool.ntp.org
#server 1.pool.ntp.org
#server 2.pool.ntp.org
server タイムサーバーのホスト名またはIPアドレス
# 時刻合わせ
ntpdate -s -b タイムサーバーのホスト名またはIPアドレス
# BIOSにシステム時刻を書き込み
clock -w
# 確認
clock;date
# cron登録
crontab -e
0 0 * * * /usr/bin/ntpdate タイムサーバーの名前またはIPアドレス 2>&1 /dev/null
1 0 * * * /sbin/clock -w

ファイアウォールのポート

TCP 20  : ftp-data
TCP 21  : ftp
TCP 53  : dns
TCP 80  : 80
TCP 110 : pop3
TCP 143 : imap
TCP 443 : https
TCP 465 : smtps
TCP 993 : imaps
TCP 995 : pop3s
UDP 53  : dns
UDP 123 : ntp
UDP 161 : snmp
vi /etc/sysconfig/iptables
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 53 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 110 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 143 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 465 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 993 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 995 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 53 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m udp -s 192.168.0.0/24 -p udp --dport 123 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 161 -j ACCEPT

不要サービスをカット

chkconfig apmd off
chkconfig bluetooth off
chkconfig cpuspeed off
chkconfig cups off
chkconfig httpd on
chkconfig isdn off
chkconfig mysqld on
chkconfig netfs off
chkconfig nfslock off
chkconfig ntpd on
chkconfig pcmcia off
chkconfig portmap off
chkconfig rpcgssd off
chkconfig rpcidmapd off
chkconfig saslauthd off
chkconfig sendmail off
# 次の二つはFedoraのみ, CentOSは不要
chkconfig mDNSResponder off
chkconfig nifd off

fastestmirrorプラグインインストール

# 最適ミラーサイトを自動選択する

yum install centos-yum yum-plugin-fastestmirror
vi /etc/yum.conf
plugins=1

SELinuxの無効化

vi /etc/sysconfig/selinux
SELINUX=disabled

ソフトウェアRAIDスペアディスク追加

RAID確認
cat /proc/mdstat
追加ディスク確認
cat /var/log/dmesg | grep hdc
パーティション
fdisk /dev/hdc
RAID追加
mdadm --manage /dev/md0 --add /dev/hdc1
mdadm --manage /dev/md1 --add /dev/hdc2
mdadm --manage /dev/md2 --add /dev/hdc3
/etc/mdadm.conf作成
echo "DEVICE partitions" > /etc/mdadm.conf
echo "MAILADDR root" >> /etc/mdadm.conf
mdadm -D --scan >> /etc/mdadm.conf
cat /etc/mdadm.conf
GRUBインストール
cat /boot/grub/grub.conf
# 現在のgrubインストール先確認
default=0
timeout=5
splashimage=(hd1,2)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.32-71.el6.x86_64)
        root (hd1,2)
        kernel /vmlinuz-2.6.32-71.el6.x86_64 ro root=UUID=4f23a92d-e526-4439-9412-33dac2289549 rd_MD_UUID=adab7102:610619d6:64bc8ff0:48305e72 rd_MD_UUID=deaa02ff:d106b0ff:410b67d7:b4fb230f rd_NO_LUKS rd_NO_LVM rd_NO_DM LANG=ja_JP.UTF-8 KEYBOARDTYPE=pc KEYTABLE=jp106 crashkernel=auto rhgb quiet
        initrd /initramfs-2.6.32-71.el6.x86_64.img
grub
grub> root (hd0,2)
grub> setup (hd0)
grub> root (hd1,2)
grub> setup (hd1)

開発ツールのインストール

yum groupinstall 'Development Tools'
yum groupinstall 'Development Libraries'

ライブラリーのインストール

yum install httpd mysql-server php php-devel php-mysql php-mbstring php-pear php-pear-db php-gd php-common php-cli php-pdo php-imap gcc mysql-devel openssl-devel zlib-devel pcre-devel expect gamin-devel

すべてのRPMSを更新

TIP : Opteronのような64ビットマシンでは非64ビットライブラリとの競合を避けるため /etc/yum.conf に行を追加
vi /etc/yum.conf
# 64ビットマシンの場合
exclude=*.i386 *.i586 *.i686

アップデート

yum update

クロンで自動更新

crontab -e
# 万一に備えて勤務時間中にしておこう。:-)
#
# カーネルの自動更新はしない 
# mysqlの自走更新もしない
#
# カーネルやmysqlの更新はあくまでマニュアルで
50 10 * * 1-5 /usr/bin/yum --exclude=kernel* --exclude=hal --exclude=mysql*  -y update

カーネル更新を反映するためリブート

shutdown -r now
  • コメント (0)
  • トラックバック (0)
  • 閲覧 (755)

ページ先頭に戻りますページ先頭に戻る