Linuxサーバにおけるパフォーマンス高速化のための設定
CentOS5、Ubuntu、Debianで実行してみたもの。効果あった気がする。

■ディスクチューニング
参考URL
http://www.itmedia.co.jp/enterprise/articles/0707/19/news012.html
http://www.avant-tokyo.com/linux/hdparm.html

hda表示=IDE
sda表示=SCSIorSATA

sdaの場合には以下のいくつかのパラメータは無効

# hdparm -Tt /dev/hda 読み出しテスト
# hdparm -v /dev/hda パラメータ確認
# hdparm -c3 /dev/hda 32bitモード処理
# hdparm -u1 /dev/hda 割り込み処理対応
# hdparm -d1 /dev/hda DMA有効化
# hdparm -i /dev/hda HDが同時に読み込めるセクタ数
# hdparm -m16 /dev/hda 同時読み込みを16に設定
# hdparm -a1024 /dev/hda readaheadを1024に設定する
 -a128、-a256、-a512、-a1024、-a2048 測定結果のよいものを使う
# hdparm -k1 /dev/hda 設定を書き込み

■ディスク書き込みの削減
Linuxではファイルを読んだ時にもatimeを更新するため更新しない設定をすることで、書き込み量を減らす。
この設定はディスクにSSDを採用している際に特に有効。

/etc/fstabのマウントオプションとして「noatime」を指定する
# vi /etc/fstab
LABEL=/ / ext3 defaults,noatime 1 1 ←noatimeを追記

再マウントする
# mount -o remount /

mountコマンドでnoatimeが有効になっていることを確認
# mount
/dev/hda1 on / type ext3 (rw,noatime)

■I/Oスケジューラの変更
CentOS等では標準でcfqが採用されているが、データベース運用等をしている場合にはdeadlineが望ましい。

# echo deadline > /sys/block/hda/queue/scheduler
/sys/block/以下は使用しているディスクに合わせて変更

#cat /sys/block/hda/queue/scheduler
noop anticipatory [deadline] cfq ←となっていればOK。

/etc/rc.d/rc.local に以下を追記して再起動時にも適用されるようにする
echo deadline > /sys/block/hda/queue/scheduler

■プロセススワップの抑制
スワップが発生するとレスポンスが落ちるので、ファイルシステムキャッシュのためにプロセスがスワップしないよう設定を追加する。

/etc/sysctl.confに以下を追記する
vm.swappiness = 0

■/proc/sys/以下のパラメータ変更
カーネルのパラメータを修正してパフォーマンスを上げる。()内は参考値
マシン環境で最適値は異なるので試行錯誤する必要あり。

同時に開けるファイル数を増やす
/proc/sys/fs/file-max(131072)

同時スレッド数を増やす
/proc/sys/kernel/threads-max(131072)

ネットワークの送受信可能速度を上げる
/proc/sys/net/core/wmem_default(65536)
/proc/sys/net/core/wmem_max(1048576)
/proc/sys/net/core/rmem_default(65536)
/proc/sys/net/core/rmem_max(1048576)

プロセッサが一度に処理するパケット量を増やす
/proc/sys/net/core/netdev_max_backlog(4096)

tcpのtime_waitを保持できる上限を上げる
/proc/sys/net/ipv4/tcp_max_tw_buckets(131072)

利用可能な内部通信socketを増やす
/proc/sys/net/ipv4/ip_local_port_range(16384 65535)

設定を起動時に自動設定するためには以下に記述する
/etc/sysctl.conf

, , ,
とりあえず付けておく無駄ではなかったなまぁまぁ読めたちょっと役に立ったかなかなり良かったかも (まだ評価されていません)
Loading...

slimstatのインストールと設定

■簡易アクセス解析ツールslimstatのインストール

slimstatのダウンロード

  1. # cd ~/download
  2. # wget http://slimstat.net/file/slimstat-2.1.zip
  3. # unzip slimstat-2.1.zip

配置は解析したいサイトの直下へ

  1. # mv slimstat /var/www/html/
  2. # cd /var/www/html/slimstat/

slimstatのデータベースを作成

  1. # mysql -u root -p
  2. mysql> grant all privileges on slimstat.* to slimstat@localhost identified by 'slimstatpassword' WITH GRANT OPTION;
  3. mysql> CREATE DATABASE `slimstat` DEFAULT CHARACTER SET utf8 ;
  4. mysql> quit

設定ファイルを修正

  1. # vi _lib/config.php
  2.  
  3.         /** Database connection */ ←データベース設定
  4.         var $db_server = 'localhost'; // Leave as localhost unless you know otherwise
  5.         var $db_username = 'slimstat'; // The username used to access your database
  6.         var $db_password = 'slimstatpassword'; // The password used to access your database
  7.         var $db_database = 'slimstat'; // The database containing SlimStat’s tables
  8.  
  9.         /** The full name of your site */ ←サイト名設定
  10.         var $sitename = 'Sitename';
  11.  
  12.         /** Username/password required to login to SlimStat */ ←アクセス制限
  13.         var $slimstat_use_auth = true;
  14.         var $slimstat_username = 'slimstatadmin';
  15.         var $slimstat_password = 'adminpassword';
  16.  
  17.         /** Timezone */ ←タイムゾーン設定
  18.         var $timezone = 'Asia/Tokyo';

管理画面にアクセスして画面の指示に従う
http://hostname/slimstat/

セットアップファイルを削除して完了
# rm -f page/setup.php

あとは以下のいずれかを計測したいコンテンツに貼る。
Javascript用

  1. <script type="text/javascript" src="/slimstat/?js"></script>

php用

  1. <?php
  2. @include_once( $_SERVER&#91;'DOCUMENT_ROOT'&#93;.'/slimstat/stats_include.php' );
  3. ?>

同じページに両方貼らないこと。ダブルカウントになる。
javascriptの方が取得できる項目は多い。携帯サイトなどではphp用の方が有利かも?

,
とりあえず付けておく無駄ではなかったなまぁまぁ読めたちょっと役に立ったかなかなり良かったかも (まだ評価されていません)
Loading...

IceWarp Serverのインストール設定

CommuniGate Proの競合に当るIceWarp Server 10.0.6をインストールした記録。
IceWarp-Japan(韓国のIceWarp代理店の日本支社らしい)から必要なものをダウンロード。
http://icewarp-japan.com/

linux用は以下のドキュメントをダウンロードして読む。
依存ライブラリが多いので、必ず目を通す。
http://www.icewarp.co.kr/downloads/documentation/linuxquick-doc.zip

以下作業。

  1. # cd download/
  2. # wget http://www.icewarp.com/download/linux/rh5/IceWarpServer-10.0.6_RHEL5.4.tar.gz

root以外で動作させる場合にはユーザを作成

  1. # adduser icewarp

依存ライブラリの存在チェック

  1. # updatedb
  2. # locate libc.so.6
  3. # locate libpthread.so.0
  4. # locate libpcre.so

などなど…
ドキュメントに含まれる依存ライブラリリストを確認して必要なものを追加する。

  1. # yum install openldap openldap-devel libcap libcap-devel db4

libiconvの追加

  1. # yum install gcc make(必要に応じて)
  2. # wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.1.tar.gz
  3. # tar zxvf libiconv-1.13.1.tar.gz
  4. # cd libiconv-1.13.1
  5. # ./configure
  6. # make
  7. # make install

IceWarp Serverのインストール

  1. # tar zxvf IceWarpServer-10.0.6_RHEL5.4.tar.gz
  2. # cd IceWarpServer-10.0.6_RHEL5.4
  3. # ./install.sh

EULAが出てくるので、ウィザードに従って設定する

  1. **  You must accept this license agreement if you want to continue.
  2. **  Press ENTER to accept license or CTRL+C to quit ←エンターキー
  3.  
  4. **  Please make sure the IceWarp Mail Server is not running before installing.
  5. **  Press ENTER to continue, CTRL+C to quit ←エンターキー
  6.  
  7. **  Installation/Upgrade mode entered
  8. ** 
  9. **  Installation prefix [/opt/icewarp]:
  10. ** Performing new install
  11. **  Run services as user [root]:  ←root以外にするなら作成したユーザで
  12. **  Run services as group [root]:
  13. ** 
  14. **  Please check entered informations before continuing:
  15. ** 
  16. **  Installation prefix:        /opt/icewarp (directory will be created)
  17. **  Services will run as user:  root
  18. **  Services will run as group: root
  19. ** 
  20. **  Press ENTER to continue, CTRL+C to quit ←エンターキー
  21.  
  22. **  Creating /opt/icewarp directory
  23. **  Extracting distribution
  24. **  Please wait...
  25. **  Checking for previous 'merak' service installation ...
  26. **  Checking if IceWarp Server is added as system service ...
  27. **  Note: System service can be reinstalled
  28. **        by removing already installed service.
  29. ** 
  30. **  Do you want to add IceWarp Server as a system service? [Y/n]: y ←サービスとして起動するか
  31. **  Adding IceWarp Server as system service
  32. **  Do you want IceWarp Server to start automatically on reboot? [Y/n]: y ←起動時に自動でスタートさせるか
  33. **  Making service as autostart
  34. **  Changing permissions
  35. ** 
  36. **  Do you want to run IceWarp Server Wizard now? [Y/n]: y ←初期設定を行うか(やった方がいい。後からやるなら/opt/icewarp/wizard.sh)
  37. **  Starting IceWarp Server
  38.  
  39.  
  40. ** 
  41. **  IceWarp Server
  42. **  (c) 1999 - 2009 IceWarp Ltd.
  43. ** 
  44. **  Wizard configuration assistant
  45. ** 
  46. **  Logging is redirected to the following file for future reference:
  47. **  Commands: /opt/icewarp/logs/wizard/icewarpserver-wizard-cmd.log
  48. ** 
  49. **  Press [ENTER] to continue, CTRL-C to quit. ←エンターキー
  50.  
  51.  
  52. ** 
  53. **  Root menu
  54. **  ---------
  55. ** 
  56. **  You have the following options:
  57. ** 
  58. **  [1] Accounts and Domains management
  59. **  [2] License operations
  60. **  [3] Storage setup
  61. ** 
  62. **  [0] Return
  63. **  [Q] Exit
  64. ** 
  65. **  Enter your choice: 1 ←最初にアカウントとドメインを設定する
  66.  
  67. ** 
  68. **  Accounts and Domains management
  69. **  -------------------------------
  70. ** 
  71. **  You have the following options:
  72. ** 
  73. **  [1] Add new domain
  74. **  [2] Delete domain
  75. **  [3] Add new user
  76. **  [4] Delete user
  77. ** 
  78. **  [0] Return
  79. **  [Q] Exit
  80. ** 
  81. **  Enter your choice: 1 ←ドメインを設定
  82. ** 
  83. ** 
  84. **  Create new domain:
  85. ** 
  86. **  Domain name: test.example.com ←新規ドメインを設定
  87. **  Domain description: icewarp test server ←ドメインの説明
  88. **  Administrator email address: admin@test.example.com ←ドメイン管理者アドレスを設定
  89. ** 
  90. **  OK? [Y/n]: y
  91. **  Domain created
  92. **  Add another domain? [Y/n]: n
  93. ** 
  94. **  Accounts and Domains management
  95. **  -------------------------------
  96. ** 
  97. **  You have the following options:
  98. ** 
  99. **  [1] Add new domain
  100. **  [2] Delete domain
  101. **  [3] Add new user
  102. **  [4] Delete user
  103. ** 
  104. **  [0] Return
  105. **  [Q] Exit
  106. ** 
  107. **  Enter your choice:3 ←ドメインのユーザを設定
  108. ** 
  109. ** 
  110. **  Create new account:
  111. ** 
  112. **  Email address: admin@test.example.com ←先ほどの管理者アドレスを設定
  113. **  Password: **    ←パスワードを設定
  114. **  Once again to confirm: **   ←再入力
  115. **  Full name: testadmin ←アカウント名を設定
  116. **  Account is system administrator? [Y/n]: y
  117. ** 
  118. **  OK? [Y/n]: y
  119. **  Account created
  120. **  Add another user? [Y/n]: n
  121. ** 
  122. **  Accounts and Domains management
  123. **  -------------------------------
  124. ** 
  125. **  You have the following options:
  126. ** 
  127. **  [1] Add new domain
  128. **  [2] Delete domain
  129. **  [3] Add new user
  130. **  [4] Delete user
  131. ** 
  132. **  [0] Return
  133. **  [Q] Exit
  134. ** 
  135. **  Enter your choice: q ←設定終了
  136. ** 
  137. **  IceWarp Server was successfully installed or upgraded.
  138. ** 
  139. **  Installer log is available in /root/icewarp-install.log
  140. **  Installer error log is available in /root/icewarp-install-error.log

IceWarpサーバの起動と停止

  1. # service icewarp start
  2. # service icewarp stop

以下のURLに管理者のアドレスとパスでアクセスしてWebで設定を行う。
http://hostname:32000/admin

残念ながら管理画面では日本語の選択ができず、ログイン語も日本語設定がどうしたら可能なのかわからなかった。インストール自体は難しいわけではないが、依存ライブラリが多いことと、それが管理画面のどこに影響するのかがわかりにくいことで、どの機能が有効でどれが有効でないのか判断がしにくい。設定しても動作しないものがちらほら散見され、ログの解析などをきっちりやらないとまともに動作させることができない印象を受けた。

使いやすければCommuniGate Proとの入れ替えもありか?と思っていたが、依存ライブラリの多さやSPAMやSIP設定の煩雑さを考えると、Linuxのアップデートで思わぬところが動作しなくなるとか、運用面の負荷が大きくなりそうで、正直選択はできないと思った…。むしろLinuxでなくWindowsで動かす場合にはアリかもしれないが、SIPが必要ならCommuniGate Proが、SIPが必須でなければKerio Connect7の方がスパム&ウイルス対策がビルトインされたメールサーバとしては圧倒的に使いやすいので、IceWarpの位置づけは結構微妙な感じ。

うーん、ちょっと残念。

,
とりあえず付けておく無駄ではなかったなまぁまぁ読めたちょっと役に立ったかなかなり良かったかも (まだ評価されていません)
Loading...

DebianでCommuniGate Pro + ClamAV + cgpavを利用する

DebianでCommuniGate Pro + ClamAV + cgpavを利用するまでの手順。CentOSとはパッケージ名やパスが異なるので一応書いておく。

■clamdのインストール
Debianでは通常用意されているパッケージで最新化されている。clamdはclamav-daemonというパッケージになる。

  1. # apt-get install clamav clamav-daemon

インストール完了後定義ファイルの更新。

  1. # freshclam

clamd.confの編集

  1. # vi /etc/clamav/clamd.conf
  2. User clamav
  3. User root (CGServerと同じユーザで動作させる)
  4. 大きなファイルを扱う場合(CGPのファイルサイズ制限と合わせる)
  5. StreamMaxLength 100M

編集したらデーモンを再起動

  1. # /etc/init.d/clamav-daemon restart

■cgpavのインストールと設定

  1. # cd ~/download/
  2. # wget http://program.farit.ru/antivir/cgpav-1.4.tar.gz
  3. # tar zxvf cgpav-1.4.tar.gz
  4. # cd cgpav-1.4
  5. # ./configure --with-antivirus=clamav --with-spamassassin=no (ClamAV指定、スパム対策無し)
  6. # make
  7. # make install
  8.  
  9. # vi /var/CommuniGate/Settings/cgpav.conf
  10. clamd_socket = /tmp/clmad
  11. clamd_socket = /var/run/clamav/clamd.ctl
  12.  
  13. infected_action = discard
  14. infected_action = addheader(標準では有無を言わさずウイルスメール自体を消去するので注意)
  15.  
  16. add_not_infected_header = false
  17. add_not_infected_header = true(チェックして問題なかったことがわかる)
  18.  
  19. recipients_notification = false(受信先にウイルスメールが来たことを通知する場合trueにする)

動作試験こちらもパス。なぜうまく動作しないのかわからない。

■その他
CommuniGate Pro上の設定はCentOSと同じ。

ログのチェック

  1. # cat /var/log/syslog | grep cgpav
, , ,
とりあえず付けておく無駄ではなかったなまぁまぁ読めたちょっと役に立ったかなかなり良かったかも (まだ評価されていません)
Loading...

CentOSで CommuniGate Pro + ClamAV + cgpav1.4 設定

CommuniGate Proでメールのウイルスチェックを行うにはいくつか方法があるが、ここでは無料のClamAVを利用する設定を行う。

■ClamAVの設定
clamavとは言ってもサーバ動作させるためclamdというデーモンを必要とする。
CentOSの場合、epelリポジトリにclamav-serverパッケージがあり、これがclamdを含むがバージョンが2010/03/11現在0.95.1で最新の0.95.3より2つ古い。ClamAVは最新バージョンを利用しないとログにアラートが大量に出ることから、最新バージョンになっているRPMForgeリポジトリのパッケージを利用することとする。

RPMForgeの準備

  1. # rpm --import http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt
  2. # wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.1-1.el5.rf.i386.rpm
  3. # rpm -ivh rpmforge-release-0.5.1-1.el5.rf.i386.rpm

clamdパッケージのインストール

  1. # yum install clamd

clamdの設定

  1. # vi /etc/clamd.conf
  2. #Example
  3. 消す
  4.  
  5. User clamav
  6. User root (CGServerと同じユーザで動作させる)
  7.  
  8. 大きなファイルを扱う場合(CGPのファイルサイズ制限と合わせる)
  9. StreamMaxLength 100M

定義ファイル更新設定

  1. # vi /etc/freshclam.conf
  2. #Example
  3. 消す
  4.  
  5. #DatabaseMirror db.XY.clamav.net
  6. DatabaseMirror db.jp.clamav.net

clamdを起動する

  1. # service clamd start

定義ファイルを更新する

  1. # freshclam

更新したら正しく動作しているか確認するためウイルステストファイルをダウンロードしてチェックする。以下のようにSCAN SUMMARYが出ればOK。

  1. # wget http://www.eicar.org/download/eicar.com
  2. # clamscan --infected --remove --recursive
  3. /root/download/cgpav-1.4/eicar.com: Eicar-Test-Signature FOUND
  4. /root/download/cgpav-1.4/eicar.com: Removed.
  5.  
  6. ----------- SCAN SUMMARY -----------
  7. Known viruses: 726575
  8. Engine version: 0.95.3
  9. Scanned directories: 14
  10. Scanned files: 88
  11. Infected files: 1
  12. Data scanned: 1.79 MB
  13. Data read: 0.95 MB (ratio 1.89:1)
  14. Time: 1.911 sec (0 m 1 s)

■cgpav-1.4を設定する
clamdの動作確認ができたら次はcgpavを設定する。cgpavはmakeが必要になるので、gccやmakeが入っていないサーバ環境の場合はインストールしておく。

  1. # yum install gcc make automake

cgpav-1.4をダウンロードしてmakeする

  1. # cd download/
  2. # wget http://program.farit.ru/antivir/cgpav-1.4.tar.gz
  3. # tar xvf cgpav-1.4.tar.gz
  4. # cd cgpav-1.4
  5. # ./configure

./configureの途中で設定を確認されるのでここではClamAVのみ設定し、SpamAssassinは使わない設定を行う。

  1. ***********************************************
  2. Choose Anti-Virus daemon
  3. Enter 1, 2, 3, 4, 5, 6
  4. 1 Clamav (free)
  5. 2 Sophos sophie
  6. 3 Kaspersky (KAV)
  7. 4 Trend Micro trophie
  8. 5 Dr.Web
  9. 6 Without Anti-Virus support
  10. 1
  11. Will use Clamav Anti-Virus daemon clamd
  12.  
  13. ***********************************************
  14. Enable SpamAssassin support
  15. Enter 1 or 2
  16. 1 Enable  SpamAssassin support
  17. 2 Disable SpamAssassin support
  18. 2
  19. Will not use SpamAssassin

./configureが終了したらmakeしてinstallする。

  1. # make
  2. # make install

CommuniGate Proのデフォルトパスにcgpavが存在するか確認する。

  1. # ls /var/CommuniGate/

cgpavの設定を行う

  1. # vi /var/CommuniGate/Settings/cgpav.conf
  2. clamd_socket = /tmp/clmad
  3. clamd_socket = /var/run/clamav/clamd.sock
  4.  
  5. infected_action = discard
  6. infected_action = addheader(標準では有無を言わさずウイルスメール自体を消去するので注意)
  7.  
  8. add_not_infected_header = false
  9. add_not_infected_header = true(チェックして問題なかったことがわかる)
  10.  
  11. recipients_notification = false(受信先にウイルスメールが来たことを通知する場合trueにする)

ここで、本来ならcgpavの動作確認をするため、以下の手順がドキュメントには記載されているが、なぜかCentOSでもDebianでもうまく動作せず…。CGP経由の動作には問題なかったのでパス。

  1. # cd /var/CoomuniGate/
  2. # wget http://www.eicar.org/download/eicar.com
  3. # ./cgpav

■CommuniGate Proの設定をする
CommuniGate Proでウイルスチェックにメールを渡す設定を行うため、管理画面にアクセスする。

  1. http://hostname:8010/

「設定」→「全般」→「ヘルパー」を開き、外部コンテンツフィルターに以下のパラメータを入力して更新する。
 

  1. オン antivirus
  2.  プログラムパス:cgpav
  3.  タイムアウトと自動再起動は「しない」

「設定」→「メール」→「ルール」に以下の設定追加する。
「viruscheck」と入力して「ルール追加」ボタンを押す
「viruscheck」ルールの編集リンクをクリックする

 ここでウイルスチェックをしたいルール条件を設定する。とりあえずテスト用にpostmaster宛てをチェックする設定を以下のように追加する。
 

  1. Toアドレス 等しい postmaster@localhost
  2.  外部フィルター antivirus

これで設定は完了。

■ウイルスチェック試験を行う
ウイルスチェックの動作確認をするため、WebMailにアクセスしてpostmasterでログインする。

  1. http://hostname:8100/

送信先にpostmaster@localhostと入力して適当なメールを作成し送信してみる。
自分宛てにメールが届き、メールのヘッダに「X-Virus-Scanned: by cgpav」が付加されていれば動作成功。

先ほど試験用にダウンロードしたテストウイルスeicar.comを添付ファイルとしてメールに付けてpostmaster@localhostに送り、届いたメールのヘッダに「X-Virus-Flag: Yes」と付いていれば完璧。

ウイルスチェックの結果は以下でも確認可能。

  1. # cat /var/log/message | grep cgpav

後はウイルスが発見された場合のヘッダをベースに振り分けルール等を書いて個別に対応する。

■cgpav設定変更の注意
設定の変更はcgpav.confの編集で行うのだが、一度CommuniGate Proから稼働させた場合、設定を変更を反映するためには、該当cgpavプロセスをkillしたりkill -HUPしたりしてもダメで、OSごと再起動しないとなぜかうまく反映されなかったので注意。この辺りもっと検証が必要。

, , ,
とりあえず付けておく無駄ではなかったなまぁまぁ読めたちょっと役に立ったかなかなり良かったかも (まだ評価されていません)
Loading...

phpmotionで動画サービスを立てる

CentOS5環境でMyNETSが動いているところからの差分…なハズ。

2009/6/25に作業した記録なので日付付きファイルのURLは適宜最新に読み替えていただければと思います。

参考URL
http://d.hatena.ne.jp/con_mame/20080926
http://menta.orz.hm/phpmotion.sh.txt

# 必要なパッケージをインストールします。

  1. yum -y install subversion
  2. yum -y install automake
  3. yum -y install gcc
  4. yum -y install gcc-c++
  5. yum -y install libtool
  6. yum -y install php-devel

# x264を入手するために必要なgitをインストールするためのリポジトリを追加します。

  1. echo "[dag]" >> /etc/yum.repos.d/CentOS-Base.repo
  2. echo "name=Dag RPM Repository for Redhat EL5" >> /etc/yum.repos.d/CentOS-Base.repo
  3. echo 'baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag' >> /etc/yum.repos.d/CentOS-Base.repo
  4. echo "gpgcheck=1" >> /etc/yum.repos.d/CentOS-Base.repo
  5. echo "enabled=0" >> /etc/yum.repos.d/CentOS-Base.repo
  6. echo "gpgkey=http://dag.wieers.com/packages/RPM-GPG-KEY.dag.txt" >> /etc/yum.repos.d/CentOS-Base.repo

# gitをインストール

  1. yum -y --enablerepo=dag install yasm git

# 作業用ディレクトリを作成します。

  1. mkdir /tmp/install/
  2. cd /tmp/install/

# mplayerのためのコーデックをコピーします。

  1. wget http://www3.mplayerhq.hu/MPlayer/releases/codecs/essential-20071007.tar.bz2
  2. tar jxvf essential-20071007.tar.bz2
  3. mkdir /usr/local/lib/codecs
  4. mv /tmp/install/essential-20071007/* /usr/local/lib/codecs/
  5. chmod -R 755 /usr/local/lib/codecs/

# x264のインストール

  1. wget http://download.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-20090625-2245.tar.bz2
  2. cd x264-snapshot-20090625
  3. ./configure --enable-shared
  4. make && make install
  5. cd /tmp/install/

# xvidのインストール

  1. wget http://downloads.xvid.org/downloads/xvidcore-1.2.1.tar.gz
  2. tar zxvf xvidcore-1.2.1.tar.gz
  3. cd xvidcore/build/generic
  4. ./configure --prefix=/usr
  5. make && make install
  6. cd /tmp/install/
  7.  
  8. wget wget http://jaist.dl.sourceforge.net/sourceforge/lame/lame-3.97.tar.gz
  9. tar zxvf lame-3.97.tar.gz
  10. cd lame-3.97
  11. ./configure --prefix=/usr
  12. make && make install
  13. cd /tmp/install

# liboggのインストール

  1. wget http://downloads.xiph.org/releases/ogg/libogg-1.1.3.tar.gz
  2. tar zxvf libogg-1.1.3.tar.gz
  3. cd libogg-1.1.3
  4. ./configure --prefix=/usr
  5. make && make install
  6. cd /tmp/install/

# faadのインストール

  1. wget http://jaist.dl.sourceforge.net/sourceforge/faac/faad2-2.6.1.tar.gz
  2. tar zxvf faad2-2.6.1.tar.gz
  3. cd faad2
  4. sh bootstrap
  5. ./configure --prefix=/usr
  6. make && make install
  7. cd /tmp/install/

# flvtoolのインストール

  1. wget http://rubyforge.org/frs/download.php/17497/flvtool2-1.0.6.tgz
  2. tar zxvf flvtool2-1.0.6.tgz
  3. cd flvtool2-1.0.6
  4. ruby setup.rb config
  5. ruby setup.rb setup
  6. ruby setup.rb install
  7. cd /tmp/install/

# rpmforgeを追加

  1. wget http://apt.sw.be/redhat/el5/en/i386/RPMS.dag/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
  2. rpm -Uvh rpmforge-release-0.3.6-1.el5.rf.i386.rpm
  3. rm -f rpmforge-release-0.3.6-1.el5.rf.i386.rpm

# デフォルトでは有効にしないように

  1. sed -i "s/enabled = 1/enabled = 0/g" /etc/yum.repos.d/rpmforge.repo

# 残りのコーデックをインストール

  1. yum -y --enablerepo=rpmforge install a52dec-devel faac-devel

# コーデックを有効にする

  1. echo "/usr/local/lib" >> /etc/ld.so.conf.d/lib.conf
  2. ldconfig

# mplayerのインストール

  1. wget http://www.mplayerhq.hu/MPlayer/releases/mplayer-export-snapshot.tar.bz2
  2. cd mplayer-export-2009-06-25
  3. ./configure --prefix=/usr
  4. make && make install
  5. cd /tmp/install/

# ffmpegのインストール

  1. wget http://ffmpeg.org/releases/ffmpeg-export-snapshot.tar.bz2
  2. cd ffmpeg-export-2009-06-25
  3. ./configure --enable-libmp3lame --enable-libx264 --enable-libxvid --enable-libfaac --enable-libfaad --enable-pthreads --enable-gpl --enable-shared --enable-nonfree --prefix=/usr
  4. make && make install
  5. cd /tmp/install/

# ffmpeg-phpのインストール

  1. wget http://voxel.dl.sourceforge.net/sourceforge/ffmpeg-php/ffmpeg-php-0.6.0.tbz2
  2. tar jxvf ffmpeg-php-0.6.0.tbz2
  3. cd ffmpeg-php-0.6.0
  4. vi ffmpeg_frame.c (→RGBA32をRGBAに全て書き換え)
  5. phpize
  6. ./configure --prefix=/usr
  7. make && make install
  8. cd /tmp/install/

# ffmpeg-phpの有効化

  1. echo "extension=ffmpeg.so" >> /etc/php.ini

# 設定を有効化するためにapacheの再起動(reloadでもおk)

  1. /etc/init.d/httpd restart

# phpmotionのインストール

  1. wget http://downloads.phpmotion.com/V3.0/php5/phpmotion.zip
  2. unzip phpmotion.zip
  3. mv phpmotion /var/www/html/video
  4. cd /var/www/html/
  5. chown -R apache:apache video
  6. chmod -R 0755 video/cgi-bin

# http://example.com/video/でアクセスするためのパス設定を以下に追加

  1. vi cgi-bin/uu_default_config.pm
  2. vi cgi-bin/audio/uu_default_config.pm
  3. vi audio_uploader_conlib.php
  4. vi uploader_conlib.php
  5. vi .htaccess

# mysqlにデータベースとユーザを追加

  1. mysql -u root -p
  2. mysql> CREATE DATABASE `video` DEFAULT CHARACTER SET utf8 ;
  3. mysql> grant all privileges on video.* to user@localhost identified by 'passwd';
  4. mysql> quit;

# 管理画面にアクセス

  1. http://example.com/video/setup/

# 設定後

  1. mv /var/www/html/video/setup /var/www/html/video/setup.bk

※たしか一部不正確な記述があったような気がするけど…思い出せない。
再検証する気力はないのでそのまま転記。

とりあえず付けておく無駄ではなかったなまぁまぁ読めたちょっと役に立ったかなかなり良かったかも (まだ評価されていません)
Loading...

 □パフォーマンスチューニングのテクニック

  ・まずは状況把握
   原因の推測のための情報収集
   各種ツールの利用
   ボトルネックをひとつづつ潰す

  ・パフォーマンス指標
   スループット
   レスポンスタイム
   スケーラビリティ
   上記の組み合わせ

  ・スロークエリログの分析
   5.1からは0.x秒単位でログ指定が可能
   頻繁に記録されるslowログから対応する
   mysqldumpslowで統計処理して見極め
   クエリアナライザの利用(高機能版mysqldumpslow)
    MySQL Enterprise Monitor + MySQL Proxy
    Proxyでクエリと統計を収集、Monitorで記録分析表示

  ・EXPLAINで解析
   遅いクエリをチェックしていく
   EXPLAIN typeでALL、index、index_subqueryが出たら注意
   key_lenが大きすぎるとNG
   indexを使っていない場合にはつけてみる
    (テーブルにindex多すぎるとかえって遅くなるので注意)
   INサブクエリは遅いので、JOINで書き直す
   EXPLAIN Extraで以下の値が出たら注意
    Using temporary:indexを使う
    Using filesort:頻発よくない複合indexを検討
    Full scan on NULL key:値によってパーテショニング検討
    Using join buffer:index使ってないところにつける

  ・show profileで解析
   処理の順番を測定し処理毎の時間を出せる
   テスト環境など別のタスクのない状況で行う
   使い方

  1.     mysql> SET profiling=1;
  2.     mysql> 解析したいクエリ実行
  3.     mysql> SHOW PROFILE;

   履歴表示

  1.     mysql> SHOW PROFILES;
  2.     mysql> SHOW PROFILE FOR 1; 何番目かの履歴
  3.     mysql> SET profiling_history_size=100; 履歴保存数設定

   表示オプション

  1.     mysql> SHOW PROFILES ALL; 全表示
  2.     CPU CPU使用率
  3.     SWAP スワップしたかしないか など

  ・show statusで統計情報表示
   show session status 現在セッションの情報表示
   show global status サーバ全体の状況
   以下のように利用する

  1.     mysql> FLASH STATUS;
  2.     mysql> SET profiling=1;
  3.     mysql> 解析したいクエリ実行
  4.     mysql> SHOW PROFILE;
  5.     mysql> SHOW SESSION STATUS;
  6.     mysql> SHOW GLOBAL STATUS;

   注意すべきパラメータ
    Create_tmp*;テンポラリ作成が多いとNG
    Handler_*;indexを使わない行アクセスが多いとNG
    Key_*:キャッシュミス率が高いときはNG
    Qcache_*:クエリキャッシュのヒット率が悪い時は無効に
    Select_*;遅いSELECTがわかる、FULL JOINが出ていたら無くす

  ・show innodb statusで分析
   CREATE TABLE innodb_monitor(a int) ENGINE INNODB; で有効
   再起動すると消える
   mysql> SHOW INNODB STATUS\G; とすると見やすい
   注意すべきパラメータ
    SEMAPHORE:ロック状況がわかる OS waitが多いとNG
    LOG:消費量がわかる
    BUFFER POOL AND MEMORY:ヒット率でサイズ調整必要
  ・クエリを書き換える
   検索条件がOR:index MergeがNG時はUNION DISTINCTで解決
   適合indexがない:マルチカラムの場合、左から順に指定必須
    1,2,3 の時 1,2と1,2,3は有効、1,3と2,3は無効
   JOINではLIMIT効かないので注意
   INサブクエリはJOINで書き直す

  ・テーブルデフラグ
   OPTIMIZE TABLEで解決
   連続データはパーテショニングしやすい(ログとか日付で連続する)
   パーテショニングしたデータはフラグメントしない、削除が高速

  ・パラメータチューニング
   innodb_buffer_pool_size;空きメモリの7割くらい割当する
    index以外もキャッシュされる
   innodb_log_file_size/innodb_log_file_in_group:INSERTが高速になる
    が128M程度でOK
   key_buffer_size:空きメモリの3割程度
    (MyISAMはindexしかキャッシュしない)
   セッションパラメータは256kbで十分 
    大きくても2Mくらいで(メモリ使いすぎる)
   
 □システム全体でパフォーマンス対策

  ・MySQLのバージョン
   5.0以上を利用する 5.0と5.1は8コアまでスケール可能(innoDB)

  ・ハードウェア
   64bitマシンを導入する(メモリ空間重要)
   ライトキャッシュ付きハードRAID推奨(キャッシュあればRAID5もOK)
   IOPSの高い構成を(SSDもあり!)

  ・OS
   64bit推奨になる
   LinuxではI/Oスケジューラに注意 noop deadline推奨
   noopはinnoDBで利用するのに適している
   I/Oキューの数値を上げる デフォルト128、10000?

  ・データベースエンジン
   innoDBはinsert bufferがあるのでログ等にも向く
   MyISAMはHDD性能に依存する 限界性能低い
    でもSSDならinnoDBより速くなる
   innoはHDDでもSSDでも限界性能があまり変化しない

  ・データベースパーテショニングを利用する
   アクセスする全てのインデックスがメモリ上にあれば高速に動作
   インデックスを細かくするためパーテショニングを使う(5.1以降必須)
   innoDBでもMyISAMでも効果がある

,
とりあえず付けておく無駄ではなかったなまぁまぁ読めたちょっと役に立ったかなかなり良かったかも (1 投票, 平均値/最大値: 1.00 / 5)
Loading...

CommuniGate Proから外部プログラムへメールを渡す

CommuniGate Proから稼動OS上の任意の外部プログラムにメールをパスするための設定
以下はphpを使ったSNSプログラムMyNETSにメールを処理させる設定

SNS管理者アドレスを admin@example.com としてpostmasterで受信し
メール日記投稿などを 任意の投稿コード@example.com で受信するものとする
MyNETSは /var/www/Usagi のパスに設置されたものとする

PIPEモジュールにphpのパスを設定
 設定→メール→PIPE で phpのあるパスを記述
 CentOSの場合/usr/bin/php なので

 /usr/bin と記述

メールのハンドルのためルータに設定を追加
 設定→ルータに 以下を追記(フルバウンス)

 

  1. <admin@example.com> = postmaster
  2.  <*@example.com> = "php /var/www/Usagi/bin/mail.php"@pipe

これでadmin以外のexample.comへのメールはCommuniGate Proで受信された後MyNETSで処理される。
この場合バウンスメール含めて全部MyNETSに渡るので注意。

ちゃんと書くなら

  1. <get@example.com> = "php /var/www/Usagi/bin/mail.php"@pipe

とか、MyNETSで指定されている必要なアカウントを並べていく

,
とりあえず付けておく無駄ではなかったなまぁまぁ読めたちょっと役に立ったかなかなり良かったかも (まだ評価されていません)
Loading...

Backlogはnulab社の提供する素晴らしいサービスです。
http://www.backlog.jp/

参考URL
https://www.backlog.jp/package/doc/professional/install-guide/install-guide.html

指定のURLから評価版をダウンロードする ~/download/ に配置しておく

# cd ~/download

SunからJavaSE6をダウンロードしてインストールする(割愛)

javaのフォント設定

# yum install fonts-japanese で最新のフォントが導入されていることを確認

# mkdir /usr/java/default/jre/lib/fonts/fallback
# ln -s /usr/share/fonts/ja/TrueType/kochi-*.ttf /usr/java/default/jre/lib/fonts/fallback/

javaのデータベース設定準備(mysql)

# wget http://ftp.jaist.ac.jp/pub/mysql/Downloads/Connector-J/mysql-connector-java-5.1.8.tar.gz
# tar zxvf mysql-connector-java-5.1.8.tar.gz

mysql設定準備

# yum install perl-DBD-MySQL

mysqlにデータベース作成

# mysql -u root -p
mysql> grant all privileges on backlog.* to backlog@localhost identified by ‘backlog’ WITH GRANT OPTION;
mysql> CREATE DATABASE `backlog` DEFAULT CHARACTER SET utf8 ;
mysql> quit

Backlogインストール

# rpm -ivh backlog-app-1.3.0-01.el5.noarch.rpm backlog-www-1.3.0-01.el5.i386.rpm

mysqlドライバを配置

# cp mysql-connector-java-5.1.8/mysql-connector-java-5.1.8-bin.jar /opt/backlog/

backlogディレクトリに移動

# cd /opt/backlog/

設定コマンドを起動

[root@xc backlog]# /opt/backlog/bin/init.sh

  1. ======================================================================
  2.    Backlog Professional Configurater
  3.    ____             _    _
  4.    |  _ \           | |  | |
  5.    | |_) | __ _  ___| | _| | ___   __ _
  6.    |  _ < / _` |/ __| |/ / |/ _ \ / _` |
  7.    | |_) | (_| | (__|   <| | (_) | (_| |
  8.    |____/ \__,_|\___|_|\_\_|\___/ \__, |
  9.                                    __/ |
  10.                                   |___/  
  11.  
  12.                                          [http://www.backlog.jp]
  13. ======================================================================
  14.  
  15. Backlog Professionalの環境設定を開始します。
  16.  
  17. BacklogにアクセスするURLを設定してください [http://www.example.com:8969]
  18. (設定したURLに /backlog がコンテキストパスとして追加されます)
  19.    
  20. http://www.example.com:8969 を設定しました。
  21.  
  22. SMTPサーバのホスト名を指定してください [localhost]
  23.  
  24. localhost を設定しました。
  25.  
  26. 御使用のデータベースを選択してください
  27. ( m<MySQL> / p<PostgreSQL> ) m
  28. MySQL を選択しました。
  29.  
  30. データベースサーバのホスト名を指定してください [localhost]
  31.  
  32. localhost を設定しました。
  33.  
  34. データベースサーバのポート番号を指定してください [3306]
  35.  
  36. 3306 を設定しました。
  37.  
  38. データベースサーバのユーザを指定してください [backlog]
  39.  
  40. backlog を設定しました。
  41.  
  42. データベースユーザのパスワードを入力してください [backlog]
  43.  
  44. backlog を設定しました。
  45.  
  46.  
  47. 次の設定内容で環境設定を行います。
  48.  
  49. Backlog URL     [http://www.example.com:8969]
  50. SMTPサーバホスト  [localhost]
  51. データベース      [MySQL]
  52.   サーバホスト        [localhost]
  53.   ポート番号       [3306]
  54.   ユーザ     [backlog]
  55.   パスワード       [backlog]
  56.  
  57. よろしいですか?
  58. ( y<続ける> / r<やり直し> ) y
  59.  
  60. 使用するJDBCドライバを選択してください。
  61.  1:mysql-connector-java-5.1.8-bin.jar
  62. 1
  63.  
  64.  1:mysql-connector-java-5.1.8-bin.jar が選択されました。
  65.  
  66. テーブルの新規作成を開始します。
  67. CREATE TABLE space
  68. CREATE TABLE project
  69. CREATE TABLE users
  70. CREATE TABLE autologin_user
  71. CREATE TABLE component
  72. CREATE TABLE information
  73. CREATE TABLE status
  74. CREATE TABLE version
  75. CREATE TABLE default_issue_type
  76. CREATE TABLE issue_type
  77. CREATE TABLE issue
  78. CREATE TABLE issue_component
  79. CREATE TABLE issue_affectedversion
  80. CREATE TABLE issue_fixedversion
  81. CREATE TABLE attachment
  82. CREATE TABLE comment
  83. CREATE TABLE licence_type
  84. CREATE TABLE licence
  85. CREATE TABLE licence_changelog
  86. CREATE TABLE mail
  87. CREATE TABLE dashboard
  88. CREATE TABLE page
  89. CREATE TABLE page_attachment
  90. CREATE TABLE page_tag
  91. CREATE TABLE page_tag_link
  92. CREATE TABLE party
  93. CREATE TABLE party_user
  94. CREATE TABLE project_user
  95. CREATE TABLE project_mail
  96. CREATE TABLE reminder
  97. CREATE TABLE remote_address
  98. CREATE TABLE space_contact
  99. CREATE TABLE space_contact_changelog
  100. CREATE TABLE space_order
  101. CREATE TABLE space_remarks
  102. CREATE TABLE disk_usage
  103. CREATE TABLE shared_file
  104. CREATE TABLE subversion
  105. CREATE TABLE issue_shared_file_link
  106. CREATE TABLE page_shared_file_link
  107. CREATE TABLE work_item
  108. CREATE TABLE step
  109. CREATE TABLE space_field
  110. テーブルの新規作成が終了しました。
  111.  
  112. コピー
  113.  終了
  114. 設定が完了しました。
  115.  
  116. Backlogの起動を確認後、引き続き http://www.example.com:8969/backlog/Setup.action に接続してユーザ情報を登録してください。
  117. backlog-app を起動中: Using CATALINA_BASE:   /opt/backlog/tomcat
  118. Using CATALINA_HOME:   /opt/backlog/tomcat
  119. Using CATALINA_TMPDIR: /opt/backlog/tomcat/temp
  120. Using JRE_HOME:       /usr/java/default
  121.                                                            [  OK  ]
  122. backlog-www を起動中:                                      [  OK  ]

サービスにアクセスできるようiptableを修正

# vi /etc/sysconfig/iptables
-A RH-Firewall-1-INPUT -p tcp -m state –state NEW -m tcp –dport 8969 -j ACCEPT

iptables再起動
# service iptables restart

http://www.example.com:8969/backlog/Setup.action へアクセス

とりあえず付けておく無駄ではなかったなまぁまぁ読めたちょっと役に立ったかなかなり良かったかも (まだ評価されていません)
Loading...

mod_rewriteによるhttp→https強制変更

設定したいディレクトリを指定して、apacheのconfに以下を記述。

  1. RewriteEngine on
  2. RewriteCond %{HTTPS} off
  3. RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
とりあえず付けておく無駄ではなかったなまぁまぁ読めたちょっと役に立ったかなかなり良かったかも (まだ評価されていません)
Loading...