●  windowsPC で総てのファイルを事前にダウンロードして  ●
●   CentOS 6.5 32bit のインストールと自宅サーバの構築   ●
アクセス数 昨日 19 今日 4
  累計 51,450   

     インストールに便利な yum をあえて使用しないで、webサーバを構築してみました。
          ( "コピペ" で簡単にサーバ機構築が出来るよう心掛けた作りにしています。)
============================================================================================================
	目	次
   [表示する]をクリックすると、その項目の内容が目次の下に表示します。再度クリックで非表示になります。
------------------------------------------------------------------------------------------------------------
      0. インストールした PC のスペック等 [表示する] [非表示にする]
      1. 32 bit CentOS 6.5, 6.6 のインストール(自宅サーバ構築) [表示する] [非表示にする]
      2. CentOS 6.5, 6.6 再起動後のコンソールからの各種設定 [表示する] [非表示にする]
      3. 事前にダウンロードするファイル一覧と探し方 [表示する] [非表示にする]
      4. セキュリティ対策のため停止したサービス [表示する] [非表示にする]
      5. ファイアウォールの設定 [表示する] [非表示にする]
      6 Tera Termでproftpd( FTPサーバ )を転送しインストール [表示する] [非表示にする]
      7. ファイルの転送プログラムの作成 [表示する] [非表示にする]
      8. サーバ機の時刻を日本標準時に同期させる [表示する] [非表示にする]
      9. yumを使用しないで、RPMforgeリポジトリを導入する [表示する] [非表示にする]
      10. apache2( httpd-2.4.7, 2.4.9, 2.4.10, 2.4.12 )のインストール [表示する] [非表示にする]
      11. fswebcom-20140113.tar.gz のインストールと定点カメラの設定 [表示する] [非表示にする]
      12. clamd( アンチウィルスソフト )のインストール [表示する] [非表示にする]
      13. chkrootkitの導入 [表示する] [非表示にする]
      14. sendmail のインストール [表示する] [非表示にする]
      15. Logwatch のインストールと毎日のメールを簡単にチェックする方法 [表示する] [非表示にする]
      16. ftp のインストール [表示する] [非表示にする]
      17. 漢字コード変換用にJcodeのインストール [表示する] [非表示にする]
      18. 自宅サーバの管理・運用監視・アクセスログ文字化け対策等 [表示する] [非表示にする]
      19. motion ( 動画 )のインストールからホームページでの表示までの設定 [表示する] [非表示にする]
      20. motion ( 静止画 )のインストールからホームページでの表示までの設定 [表示する] [非表示にする]
------------------------------------------------------------------------------------------------------------
============================================================================================================
  0.  インストールした PC のスペック等
============================================================================================================

必要なパッケージは、○○○.i686.rpm と ○○○.tar.gz だけとし、すべてのファイルを事前に windows PC でダウン
ロード しておきます。  ファイル転送プログラム  proftpdTera Term の転送機能を使用して windows PC 側 か
ら直接転送し、インストールします。
proftpd インストール後ダウンロードしたファイルをサーバ機に ffftpで書き込む方法と windows PC ( Tera Term を
使用 )からの遠隔操作で web サーバを構築していきます。

               ( ダウロードコマンド wget も、一切使用しないサーバ構築方法です。 )

コマンドの入力は、このページのコマンドをコピーして、Tera Term の入力画面に張付けて実行します。
つまり、設定するコマンド等は、すべてテキストファイルでストリー的に事前に作り、すべてそこからのコピペだけで
サーバシステムの構築をしています。
               コピペの見本は、ここをクリックでジャンプしたページで紹介しています。

              ( コマンドの ; \ は、連続してコマンドを実行させる指示です。 )
              ( コマンドの \ は、長いコマンドを2行した時の継続させる指示です。 )
-----------------------------------------------------------------------------------------------------------
   H25年11月30日付で CentOS 6.5 がリリース、H26年10月24日付で CentOS 6.6 がリリースされました。
     CentOS 6.6 をテストした結果、インストール・サーバ構築方法は、CentOS 6.5 とほぼ同じでOKでした。
     ただし、定点カメラ用のアプリ fswebcam, motion は、実行時エラーが発生し使用不可です。

              ※※  CentOS 6シリーズのサポート終了は、2020年 11月 30日  ※※

              現在、私の自宅サーバ機は、CentOS 7.0-x86_64 64bit で運用しています。
              さらに CPU と SSD の温度の状況と CPU の利用率のデータ取得しています。

              私のサーバ機の仕様では、32bit OS の時、CPU 利用率が 11% から 13% でした。
                                      64bit OS の時、CPU 利用率は、平均 8 % 位でした。

                  現在のサーバ機の CPU 利用率 8.18 % CPU 温度 +43 です。

              -------------------------------------------------------------------------
               テストに使用したサーバ機のスペック
                       型    式 : ONKYO DP315   CPU : Intel Atom N455 @ 1.66GHz,(1コア/2スレッド)
                       消費電力 : 10W      メ モ リ : 1GB     HDD : 250GB
                       インターネット回線 : STNet 光回線(ギガビット対応)
                       USBカメラ : Logicool UVC対応 C270sCW 120万画素(固定焦点)
                       LANカメラ : PCi CS-W05N 30万画素
              --------------------------------------------------------------------------
             また、 apache は、httpd-2.4.10 のバージョンを使用しています。
             ライブカメラは、fswebcam  というアプリの 20140113 のバージョンを使用しています。
       ※ 参考情報 ※  
                       BUFFALO の USB カメラは、フォーマットエラーになり使用できません。
                   ELECOM  の USB カメラは、白とび・景色撮影等画質に難点があります。
                       Logicool  のUSB カメラは、輝度・コントラストを調整して使用できます。
-----------------------------------------------------------------------------------------------------------
※ お断り ※
以下は、まだまだビギナーである私が、独学と偏見(とりあえず動けば、良い)で勉強したことや苦労したことをまとめ
たもので、最善の方法とは限りません。 
私の目標としてサーバの再構築を理屈抜きでいかに簡単に出来るかを考えて記述・まとめています。    
何度もサーバ構築を繰り返すとサーバ構築の理屈等も何となく分かってきます。   
理屈等は、後から研究してみてください。   また、日々研究し、良い結果が出た時に更新をしています。
-----------------------------------------------------------------------------------------------------------
ディレクトリ等の名前は、私のサーバ機の環境での名前を使用していますので、利用するときには、あなたの環境に合
わせて変更してください。
   ( /var/www/html/www.smiyasaka.com は、httpd.conf での、DocumentRoot のパスです。
                                                   /home/miyasakaは、ホームディレクトリです。 )

各種ファイルのダウンロードは、「3. 事前にダウンロードするファイル一覧と探し方」で、ファイル名をクリックした
らダウンロード先へリンクするようにしています。
===========================================================================================================
  1. 32 bit CentOS 6.5,6.6 のインストール(自宅サーバ構築)
===========================================================================================================
CentOS 6.5, 6.6 32bit のインストールは、DVD1.isoのみで行います。
なお、DVD2.iso は、不要で、iso ファイルは、DVD に書込み使用します。
今年(2015年)になってから、reken.jp 等のミラーサイトから、旧バージョンの CentOS の iso ファイルは、ダウンロ
ードできなくなっています。 
CentOS-6.5-i386-bin-DVD1.iso のダウンロードは、[32bit CentOS 6.5 は、ここをクリック]してください。
CentOS-6.6-i386-bin-DVD1.iso のダウンロードは、[32bit CentOS 6.6 は、ここをクリック]してください。

ファイルのダウンロードには、かなりの時間がかかりますので、覚悟して行ってください。
インストールの方法は、下記に示します。なお、固定IPアドレスの手動設定・起動時の自動起動設定とrootのパスワー
ド・ホスト名の記録は、忘れないでください。

サーバ構築に必要なソフトウェアの選択でのカスタマイズの項目は、次の通りで、この指定で、最低限のディスクトッ
プの操作( GNOME )もできます。
私のサーバ機の環境では、X Window Systemは使えなかったので、汎用ディスクトップ(GNOME)だけの設定にしています。

 Minimal を選ぶと、言語 ---  日本語サポート以外、すべてのチェックが外れます。

 サーバー         ---  システム管理ツール
 システム管理     ---  システム管理

 システム管理ツールとシステム管理の選択は不要です。

 デスクトップ     ---  汎用ディスクトップ( GNOME )
 ベースシステム   ---  Perlのサポート    <--- これを入れないとSSI,cgi の実行が出来ません。
                       ベース            <--- これを忘れないで入れてください。
 言語             ---  日本語サポート
 開発             ---  その他の開発      <--- これを忘れないで入れてください。
                                              このパッケージは、httpd で圧縮をしない時、fswebcam を使用しな
                                              い時には、不要です。 パッケージ数は、129個程なので選択してイ
                                              ンストールすることを勧めます。
                       開発ツール        <--- これを入れないとconfigure, make 等の実行が出来ません。

         下記は、私の環境でのインストール手順のメモです。参考にしてください。
         必要パッケージの選択は、サーバ機構築の最低の項目にしています。
H26.04.22 追加
32bit CentOS6.5 minimal.iso でサーバ機を構築する手順( インストール・不足するパッケージのインストール )
を下記に紹介します。
minimal.iso でのインストールは、パッケージ数が 204個なので短時間でインストールできますが不足するパッケージ
が沢山あるのでインストールの必要があります。
CentOS には、パッケージをまとめてインストールできる yum の機能( yum groupinstall )があり、これを使用して
開発ツール・日本語のサポートパッケージ郡をインストールします。
また、不要なサービスを導入することなく目的とするシステムが構築できるので、不要のサービスの停止項目も少なく
なりました。
===========================================================================================================
  2. CentOS 6.5, 6.6 再起動後のコンソールからの各種設定
===========================================================================================================
ここの設定だけは、サーバ機のコンソールから、GNOME(テキスト入力モード)で行ってください。

 ○ ログインは、[ root ]と[ root のパスワード ]で行います。

    ○○○○○ login: root           <--- ○○○○○は、ホスト名
    Password: ( root のパスワード )

 @ ユーザーの登録  ( Tera Term, ffftp でのログインの時に必要になります。)
    adduser ○○○○○                    <--- ○○○○○は、ユーザー名

 A ユーザーパスワードの登録  ( Tera Term, ffftp でのログインの時に必要になります。)
    passwd ○○○○○                     <--- ○○○○○は、ユーザー名
    パスワードを2回入力する。

 B Tera Termの文字化け対策( Windows側も、EUC コードを使用します。)
    ここを変更して再起動後は、サーバ機のディスプレイの漢字は、文字化けします。注意!!

    vi /etc/sysconfig/i18n

    LANG="ja-JP.UTF-8"  ----> LANG="ja-JP.eucJP" に変更する。

 C SELinux を無効にする設定。( これを忘れると、再起動後うまく動作しません。)

    vi /etc/sysconfig/selinux

    SELINUX=enforcing  ----> SELINUX=disabled に変更する。

 D Windows側から、Tera Termでアクセスするポート番号を設定する。

    vi /etc/ssh/sshd_config

    #Port 22 の前の行に、Port 2222 を追加する。

 E sshdの再起動
    下記の再起動コマンドを入力して OK と表示したらポート設定完了です。

    /etc/rc.d/init.d/sshd restart

  ※ sshdが利用するポートで、標準では「22」に設定されていますが、22番ポートへのアタックは、非常に多いため、
     任意のポート( 2222等)に変更するのが一般的であるとweb上に記載されています。

 F ファイアーウォールを無効にする設定。

    system-config-firewall-tui

    [*]Enabled  ----> [ ]Enabled に変更する。(space) ---> (Tab) ---> (Enter)キーを2回押す。


 G システムのアップデートをする。

    曜日と時間帯によっては、ミラーサイトが混雑していてアップデートに時間がかかる時があります。
    その時には、後でしましょう。 ( 初回の update は、数が多いので少しの時間がかかります。 )
    yum -y update

 H システムの再起動をする。
    reboot または、 shutdown -rf now

 I 再起動後、ネットワークに接続できない時は、ネットワークの設定で「起動時の自動起動設定」を忘れているので、
    サーバ機のキーボードから、直接下記コマンドで、ネットワークの設定を編集してから、一度再起動( reboot )し
    てください。

    vi /etc/sysconfig/network-scripts/ifcfg-eth0

    ONBOOT=no  ----> ONBOOT=yes に変更する。

Tera Term の文字化けを防ぐため、漢字コードをサーバ機側と同じ漢字コード EUC に必ず設定し、「設定の保存」を
してください。    接続すTCPポートは、2222 にすること。

再起動後は、設定は、windows 側から、Tera Term を使用して各種設定を行います。
Tera Term の漢字-送受信コードは、EUC を指定して使用してください。

Tera Term の設定・使い方の参考になるサイト   Tera Term のセットアップ方法
Tera Term は、窓の杜ライブラリでダウンロードできます。
===========================================================================================================
  3. 事前にダウンロードするファイル一覧と探し方
===========================================================================================================
サーバ構築に必要なファイルの探し方は、
      Google等の検索で、「 パッケージ名 + download 」のキーワード検索でほとんどの場合、ヒットします。
下記のパッケージ名をクリックするとダウロード出来るサイトへジャンプします。
 ( パッケージは、○○○.i686.rpm と○○○.tar.gz だけです。)
IEで上手く、ダウンロード出来ない時には、Google chrome・FireFox でしてみてください。

(リンク切れでダウンロードできない時には、「パッケージ名 + download」で検索してダウンロードしてください。)
---------------------------------------------------------------
ftp
 proftpd-1.3.5.tar.gz
 ftp-0.17-53.el6.i686.rpm
---------------------------------------------------------------
RPMforgeリポジトリ
 yum-plugin-priorities-1.1.30-14.el6.noarch.rpm
 rpmforge-release-0.5.2-2.el6.rf.i686.rpm
---------------------------------------------------------------
httpd
 httpd-2.4.3-deps.tar.gz
 pcre-devel-7.8-6.el6.i686.rpm
 httpd-2.4.10.tar.gz
 apr-1.5.1.tar.gz  
 apr-util-1.5.3.tar.gz
---------------------------------------------------------------
fswebcam
 fswebcam-20100622.tar.gz 
 fswebcam-20140113.tar.gz 
 libXpm-3.5.10-2.el6.i686.rpm
 libjpeg-turbo-devel-1.2.1-3.el6_5.i686.rpm
 libXpm-devel-3.5.10-2.el6.i686.rpm
 gd-devel-2.0.35-11.el6.i686.rpm
---------------------------------------------------------------
sendmail
 hesiod-3.1.0-19.el6.i686.rpm
 procmail-3.22-25.1.el6.i686.rpm
 sendmail-8.14.4-8.el6.i686.rpm
---------------------------------------------------------------
logwatch
 perl-Date-Manip-6.24-1.el6.noarch.rpm
 perl-YAML-Syck-1.07-4.el6.i686.rpm
 logwatch-7.3.6-49.el6.noarch.rpm
---------------------------------------------------------------
clamd
 clamav-db-0.98-2.el6.rf.i686.rpm
 clamav-0.98-2.el6.rf.i686.rpm
 clamd-0.98-2.el6.rf.i686.rpm
---------------------------------------------------------------
chkrootkit
 chkrootkit-0.49-1.el6.rf.i686.rpm
---------------------------------------------------------------
sensors
 lm_sensors-libs-3.1.1-10.el6.i686.rpm
 lm_sensors-3.1.1-10.el6.i686.rpm
---------------------------------------------------------------
その他のパッケージ
 Jcode-2.07.tar.gz
 lsof-4.82-4.el6.i686.rpm
 webmin-1.560-1.noarch.rpm
---------------------------------------------------------------
motion
 motion-3.2.12.tar.gz

===========================================================================================================
  4. セキュリティ対策のため停止したサービス
===========================================================================================================
停止したサービスは、下記のとおりです。

     acpid           # ホスト機の動作と電源を管理#
     haldaemon       # USB外付けHDDやUSBメモリ等を使わないのであればOFF
     irqbalance      # マルチCPU環境で複数CPU割り込みを行うためのツール
     mdmonitor       # ソフトウェアRAID 監視サービ
     messagebus      # アプリケーション間のメッセージを送るD-BUSデーモン
     netfs           # システム起動時にfstabに記述されているNFSやsambaを自動マウントする
                       ためのサービス
     nfslock         # ネームサービスキャッシュデーモン
     rdisc           # ネットワークルータディスカバリーデーモン
     rpcidmapd       # RPC name to UID/GID mapper
     saslauthd       # コネクションベースのプロトコル認証をサポートするデーモン
     atd             # 単発的にスケジュール化した コマンド を実行させるデーモンです
     nfs             # NFSサーバーのデーモンです
     rpcbind         # NFSが必要とするデーモン
     cpuspeed        # 動作負荷に応じてCPUの速度を変化させるデーモンです
     bluetooth       # Bluetooth 機能を有効にする
     auditd          # 監査システムの一部を補助し、適切なログデータを出力する
     ip6tables       # IPv6でパケットフィルタリングを行うデーモンです
     lvm2-monitor    #  論理ボリュームマネージャー(LVM) 利用時の障害監視のためのデーモン
     restorecond     # SELinuxと連動
     postfix         # メールサーバ
     沢山のサービスの停止は、シェルスクリプトのプログラム作成して行います。
     下記は、私が作成したプログラム例です。     コピーして貼り付けて使用します。
現在動作しているサービスの確認は、 コマンド pstree で確認できます。
下記は、私のサーバ機で動作しているサービスのです。

  # pstree
  init-+-clamd---{clamd}
       |-crond
       |-2*[diced]
       |-httpd-+-httpd
       |       |-5*[httpd---26*[{httpd}]]
       |       `-2*[rotatelogs]
       |-6*[mingetty]
       |-ntpd
       |-proftpd---proftpd
       |-rsyslogd---3*[{rsyslogd}]
       |-2*[sendmail]
       |-sshd---sshd---sshd---bash---su---bash---pstree
       `-udevd
===========================================================================================================
  5. ファイアーウォールの設定
===========================================================================================================
許可(開放)しているネットワークポートの一覧 
         ( ファイアーウォール iptables で下記のポート番号だけ、許可しています。 )
           1. 21        ( ftp ファイル転送 SMTP )
           2. 2222      ( ssh )
           3. 80        ( Webアクセス http )
           4. 123       ( NTP サーバの時刻合わせ )
           5. 10000     ( webmin )

            先人の知恵を借りて、シェルスクリプトのプログラム作成しました。
            下記は、私が改良したプログラム(例 CentOS 5.9 と同じ設定でOKです。)です。
現在許可(開放)しているポートの確認は、 コマンド netstat で確認できます。
下記は、私の公開用サーバ機で動作しているサービスです。一覧の青文字からは、ホームページにアクセスしている人
のグローバルIPアドレス表示されます。

  ( XX : LAN 内の IP アドレス 故意に XX にしています。)

  # netstat -ant             <--- ant は、コマンドのオプションです。
  Active Internet connections (servers and established)
  Proto Recv-Q Send-Q Local Address               Foreign Address             State
  tcp        0      0 127.0.0.1:3310              0.0.0.0:*                   LISTEN
  tcp        0      0 0.0.0.0:2222                0.0.0.0:*                   LISTEN
  tcp        0      0 0.0.0.0:21                  0.0.0.0:*                   LISTEN
  tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN
  tcp        0      0 192.168.0.XX:21             192.168.0.XX:1024           ESTABLISHED
  tcp        0     96 192.168.0.XX:2222           192.168.0.XX:49337          ESTABLISHED
  tcp        0      0 :::2222                     :::*                        LISTEN
  tcp        0      0 :::80                       :::*                        LISTEN
  tcp        0      0 ::ffff:192.168.0.XX:80      ::ffff:219.117.197.XX:65384 ESTABLISHED
                          -----     以下省略   -----

  ※ ポート番号と State の解説 ※

    State が ESTABLISHED となっている 箇所は、現在接続がされている状態です。
    3310 --> clamd, 2222 --> ssh, 21 --> ftp, 25 --> mail, 80 --> http
===========================================================================================================
  6. Tera Termでproftpd( FTPサーバ )を転送しインストール
===========================================================================================================
私の場合、自宅サーバの構築に必要とする、ファイル等は、windows側で事前にダウンロードしておき、ffftpで一括に
転送する方法を取っています。

proftpd( FTPサーバ )をインストールするまでは、ffftpが、使用できないのでTera Termの転送機能で、proftpd
( FTPサーバ proftpd-1.3.5.tar.gz )をホームディレクトリへ転送しインストールします。
( Tera Termの転送機能は、ホームディレクトにしか書込みが出来ません。)

@ Tera Term から、proftpd をサーバ機のホームデレクトリィにファイルを転送する方法は、次の通りです。

     [ 転送方法 ]
    1. Tera Term の画面上・左端 [ファイル] をクリックする。            <--- 写真 @
     2.  プルダウンメニューの SSH SCP...をクリックする。                 <--- 写真 A
     3.  中央に窓が開くので写真 B の矢印で示すボタン[…]をクリックする。 <--- 写真 B
写真 @A 写真 AB 写真 BC
     4.  写真 C の様にファイルを選択するダイヤログ画面が開くので、
                proftpd-1.3.4c.tar.gzを選択する(ダブルクリックする。)   <--- 写真 C       
    5. 写真 D の矢印で示す[Send]ボタンをクリックする。                 <--- 写真 D
    6. ユーザのホームデレクトリィにファイルが転送される。
写真 C
A
写真 DB
A proftpd のインストール

    1.  転送した proftpd-1.3.5.tar.gz を /usr/loacl/src/ コピーする。

         cp /home/miyasaka/proftpd-1.3.5.tar.gz /usr/loacl/src/

    2.  proftpd-1.3.5.tar.gz を展開する。
 
         cd /usr/loacl/src/ ;tar zxvf proftpd-1.3.5.tar.gz

    3.  展開したソースファイルの configure を実行する。

         cd proftpd-1.3.5; \
         ./configure --prefix=/usr/local/proftpd

         1 〜 3 をまとめて実行させると
         cp /home/miyasaka/proftpd-1.3.5.tar.gz /usr/loacl/src/; \
         cd /usr/loacl/src/; \
         tar zxvf proftpd-1.3.5.tar.gz; \
         cd proftpd-1.3.5; \
         ./configure --prefix=/usr/local/proftpd

    4.  make とインストールをする。

         make && make install

B proftpd.confの設定

  vi /usr/local/proftpd/etc/proftpd.confで、"# Bar use of SITE CHMOD by default" 以降をすべて削除し、
  下記の文を追加します。

  ※ まとめて削除する方法 ※

  "# Bar use of SITE CHMOD by default"の行へカーソルを移動して (削除行数)dd と入力する。

    #
    # Bar use of SITE CHMOD by default
    #     サイト内ファイルの属性変更を許可するグループ
    #
    <Limit SITE_CHMOD>
      #DenyAll
      AllowAll                
    </Limit>
    #ファイル一覧表示(ドットファイルの可視化)
    ListOptions "-a"
    #
    #ログイン時間の短縮化(DNS問い合わせしない・Identの停止)
    UseReverseDNS off
    IdentLookups off
    #
    # アクセス時刻の修正 GMT-->JST
    TimesGMT off
    # LAN内のみアクセスを許可する。
    <Limit LOGIN>
      Allow from 192.168.0.0/24    <--- ここの 192.168.0. は、あなたの環境の IPアドレスに合わせてください。
    </Limit>

C proftpdの起動ファイルをコピー・編集する。

  作成された起動ファイル proftpd.init.d を /etc/rc.d/init.d/proftpd へコピーする。

 cp /usr/local/src/proftpd-1.3.4c/contrib/dist/rpm/proftpd.init.d \
  /etc/rc.d/init.d/proftpd

D proftpdの起動ファイルの32、46行目を編集する。

  vi /etc/rc.d/init.d/proftpd

  32行目に追加( 環境変数 PATH に /usr/local/proftpd/sbin を追加・有効にする処理 )
  これは、proftpd のコンパイル後の保存先が、/usr/local/proftpd にしているためです。

  export PATH="$PATH:/usr/local/proftpd/sbin"

  46行目を修正する

  # Make sure the binary is present.
  [ -x /usr/sbin/proftpd ] || exit 5
    ↓   ↓
  [ -x /usr/local/proftpd/sbin/proftpd ] || exit 5

※ 参考 ※ 
     1行毎直すのが面倒な時には、sed コマンドで下記の様にすると同じ事ができます。
     ( sed -i は、上書き指定、二つの処理を一度に実行させます。処理と処理の区切りは、「改行」になります。)
     ( "31a\ は、31行目の次の行として a 以降の文字列が追加・\ は、改行指示です。 )
     ( s/△△/□□/ は、△△の文字列が□□文字列に置換されます。 )
     ( \ は、メタ文字[ $, /, . 等 ]の指定です。 )

sed -i -e "31a\export PATH=\$PATH\:\/usr\/local\/proftpd\/sbin
s/-x \/usr\/sbin\/proftpd/-x \/usr\/local\/proftpd\/sbin\/proftpd/" \
/etc/rc.d/init.d/proftpd

E  proftpd.conf は、グループの初期値が 
    30行目  User  nobody
    31行目  Group nogroup
    の設定なので、グループ名 nogroup を追加( groupadd nogroup )するか、
    31行目を  Group nobody に変更します。

    私は、groupadd nogroup のコマンド入力をしています。

F /etc/hostsに、ホスト名( 127.0.0.1 ○○○○ )を echo にて追加する。
  これをしないと起動しません。

    echo "127.0.0.1 ○○○○" >> /etc/hosts ( ○○○○は、ホスト名です。)

G 編集したproftpdの属性を変更、chkconfig に proftpd を追加して起動する。

  EFもまとめて実行させると
  groupadd nogroup; \
  echo "127.0.0.1 ○○○○" >> /etc/hosts; \
  chmod 755 /etc/rc.d/init.d/proftpd; \
  chkconfig --add proftpd; \
  /etc/rc.d/init.d/proftpd start

  以下の様に表示すれば起動成功です。

  Starting proftpd:                                               [  OK  ]

  ※※ 注意事項  ※※
      windows 側の ffftp の[ホストの設定][文字コード]は、
      ホスト側の漢字コード    ---> 無変換
      ファイル名の漢字コード  ---> 自動
      に設定してください。

H windows側にある各種インストールするためのプログラムは、ffftpで一度ホームデレクトリィに転送し、コマンドで
   所定デレクトリィに移動なり、コピーしてから、インストールします。

I ffftpの時間ずれを直すには、ffftpの設定を変更します。
   windows側でFFTPを起動し、接続時に設定変更で「拡張」を選び、ホストタイムゾーンを GMT+9:00 に変更します。

K ffftpで接続したときに所有者なの欄が数字に成っている時、ユーザー名に変更する方法

   ffftpの起動時に表示する「ホスト一覧」の画面で、ダイアログ→「高度」タブ→「可能であれば MLSDコマンドで一
   覧を取得(M)」のチェックを外すと所有者名が表示されます。

L ffftpの設定で[アップロードするファイルの属性]を事前に設定しておくと、転送後の属性設定が不要になるので便利
   です。  その方法は、ffftp のツールバーの[オプション(O)][環境設定(S)]を選び、表示されるオプションの画面の
   タグ[転送3]をクリック、[追加(A)]で拡張子毎に設定追加します。

   設定例
      *.pl  *.cgi  *.sh ---> 755
      *.txt *.cnt       ---> 666
      *.html は、設定不要です。

  ※ 参考になるサイト   linuxmaster.jp
===========================================================================================================
  7. ファイルの転送プログラムの作成
===========================================================================================================
私の場合、インストールするプログラムのファイルは、windows側でダウンロードし、windows側のフォルダ src2にまと
めて保存しおき、ffftpで /home/miyasaka/に転送し、サーバ機側では、転送プログラムで所定のディレクトリに転送し
ています。
ファイルのダウンロードは、ファイル名で検索するとダウンロード先を見つけることができます。

      ファイルを転送するシェルスクリプトのプログラムをホームディレクトリに作成して行います。
   下記は、私が作成したプログラム例です。
===========================================================================================================
  8. サーバ機の時刻を日本標準時に同期させる
===========================================================================================================
(独)情報通信研究機構 時空標準研究室 が、提供している「公開NTPサービス」を利用して日本標準時にサーバの時
刻を同期させます。

CentOS 6.4, 6.5 では、ntpサーバがインストールされているので上記のサーバにアクセスさせるための修正をします。
(設定方法等は、先人の知恵を借りて行いました。)

@ vi /etc/ntp.conf を入力して、設定ファイルを下記の様に変更します。
  22行目あたり
  CentOS 6.4 の時                    CentOS 6.5 の時
  server 0.centos.pool.ntp.org       server 0.centos.pool.ntp.org iburst
  server 1.centos.pool.ntp.org       server 1.centos.pool.ntp.org iburst
  server 2.centos.pool.ntp.org       server 2.centos.pool.ntp.org iburst
                                     server 3.centos.pool.ntp.org iburst

  こうなっている部分を以下のように変更します。
  ( 必ず三つ書き込みます。)
   ↓
  server ntp.nict.jp
  server ntp1.jst.mfeed.ad.jp
  server ntp2.jst.mfeed.ad.jp

※ 参考 ※  1行毎直すのが面倒な時には、sed コマンドで下記の様にすると同じ事ができます。
            念のため、バックアップを取ってから置換します。

cp /etc/ntp.conf /home/miyasaka/ntp.conf.bak; \
sed -i -e "s/server 0\.centos\.pool\.ntp\.org iburst/server ntp\.nict\.jp/
s/server 1\.centos\.pool\.ntp\.org iburst/server ntp1\.jst\.mfeed\.ad\.jp/
s/server 2\.centos\.pool\.ntp\.org iburst/server ntp2\.jst\.mfeed\.ad\.jp/
s/server 3\.centos\.pool\.ntp\.org iburst//" /etc/ntp.conf

A ntpdを起動します。

  /etc/init.d/ntpd start

  下記の様に表示するはずです。
  --------------------------------------------------------------------------------
  ntpd を起動中:                                             [  OK  ]
  --------------------------------------------------------------------------------

B サーバー起動時に自動で、サーバーの時刻合わせを有効にする設定をする。

  vi /etc/rc.d/rc.local

  以下を追加する。

  #ntpd
  /etc/init.d/ntpd start

  ※  echo コマンドで追加する方法  ※
  下記2行をコピペして実行します。

  echo "#ntpd
  /etc/init.d/ntpd start" >> /etc/rc.d/rc.local

  ついでに自動起動の設定もしておきましょう。
  chkconfig ntpd on

  ABもまとめて実行させると
  echo "#ntpd
  /etc/init.d/ntpd start" >> /etc/rc.d/rc.local; \
  chkconfig ntpd on; \
  /etc/init.d/ntpd start

C ntpdのステータスの確認。

  # ntpq -p
  起動当初は、下記の様に表示します。
       remote           refid      st t when poll reach   delay   offset  jitter
  ==============================================================================
   ntp-b3.nict.go. .NICT.           1 u   58   64    1   19.006  1011.19   0.002
   ntp1.jst.mfeed. 172.29.2.50      2 u   57   64    1   16.972  1011.42   0.002
   ntp2.jst.mfeed. 133.243.236.18   2 u   56   64    1   16.953  1011.43   0.002

  以下のように*印がついていたら同期ができています。
   (起動してから同期までに10分ぐらいかかります。)
  # ntpq -p
       remote           refid      st t when poll reach   delay   offset  jitter
  ==============================================================================
  *ntp-b3.nict.go. .NICT.           1 u    3   64   77   17.612    0.205   0.323
   ntp1.jst.mfeed. 172.29.2.50      2 u   37   64   37   16.167    0.225   0.492
   ntp2.jst.mfeed. 172.29.2.50      2 u   24   64   37   16.255    0.433   0.202

D システム時刻(年月日,曜日,時刻)の確認と手動での修正方法

  date を入力して時刻が確認できます。
  例えば、下記の様に表示します。

  2013年 10月  7日 月曜日 13:21:17 JST

  時刻の修正は、date MMDDhhmmYYYY の様に入力します。 
  [ MM 月 01〜12 DD 日 01〜31 hhmm 時刻 24時表示 YYYY 年(西暦) ]

  ex. 2013年10月07日 09:05  --> date 100709052013
/
===========================================================================================================
  9. yumを使用しないで、RPMforgeリポジトリを導入する
===========================================================================================================
RPMforgeリポジトリの導入は、yum でのインストールで依存関係あるファイル等のインストールが出来るようにする。
つまり、標準リポジトリで提供されないパッケージをyumでインストールできるようになります。

Jcode( 漢字コード変換 ),clamd( アンチウィルスソフト ),chkrootkit 等がyumでインストールできるようになります。

yum 無しでRPMforgeリポジトリの導入する方法を紹介します。( インストール後の設定等は、先人の
知恵を拝借しています。)

○ yum-prioritiesインストール
  [ yum では、 yum -y install yum-plugin-priorities でインストールします。]

  cd /usr/local/src/; \
  rpm -Uvh yum-plugin-priorities-1.1.30-14.el6.noarch.rpm

○ 標準リポジトリ設定ファイル編集
   
※ 参考 ※  1行毎直すのが面倒な時には、sed コマンドで下記の様にすると同じ事ができます。
            念のため、バックアップを取ってから置換します。
            ( 27i は、27行目に i 以降の文字列が追加されます。 )

cp /etc/yum.repos.d/CentOS-Base.repo /home/miyasaka/CentOS-Base.repo.bak; \
sed -i -e "19ipriority=1
27ipriority=1
35ipriority=1
44ipriority=1" /etc/yum.repos.d/CentOS-Base.repo

  vi /etc/yum.repos.d/CentOS-Base.repo

  [base]
  name=CentOS-$releasever - Base
  mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
  #baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
  gpgcheck=1
  gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
  priority=1  ← 追加する
  #released updates
  [updates]
  name=CentOS-$releasever - Updates
  mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
  #baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
  gpgcheck=1
  gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
  priority=1  ← 追加する
  #additional packages that may be useful
  [extras]
  name=CentOS-$releasever - Extras
  mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras
  #baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/
  gpgcheck=1
  gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
  priority=1  ← 追加する
  #additional packages that extend functionality of existing packages
  [centosplus]
  name=CentOS-$releasever - Plus
  mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centos
  #baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/
  gpgcheck=1
  enabled=0
  gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
  priority=1  ← 追加する
  #contrib - packages by Centos Users
  [contrib]
         ( 省略 )

○ RPMforgeリポジトリインストール

  rpm -ivh rpmforge-release-0.5.2-2.el6.rf.i686.rpm

○ RPMforgeリポジトリのアップデート updateなので、ここだけは、 yum を使用します。

  yum -y update rpmforge-release

○ CentOS-Base.repo のファイルも編集済のファイルを上書きできるので保存しておくことをすすめます。

 cp /etc/yum.repos.d/CentOS-Base.repo /home/miyasaka/    <---- ホームディレクトリへ保存

 cp /home/miyasaka/CentOS-Base.repo /etc/yum.repos.d/    <---- 上書きする

  ※ 参考にしたサイト   RPMforgeリポジトリ導入(RPMforge)
===========================================================================================================
  10. apache2( httpd-2.4.3, 2.4.4, 2.4.7, 2.4.9, 2.4.10, 2.4.12 )のインストール
===========================================================================================================
H27.01.27 にリリースされた httpd-2.4.12 は、下記と同じ方法でインストール・設定が出来ます。
H26.07.19 にリリースされた httpd-2.4.10 は、下記方法でインストール・設定できます。
同時に apr-1.4.6.tar.gz      ---> apr-1.5.1.tar.gz
       apr-util-1.4.1.tar.gz ---> apr-util-1.5.3.tar.gz
にバージョンアップされています。

※※ 参考情報  ※※
       httpd-2.4.4 以降のインストール
          httpd-2.4.4 以降ののインストールは、httpd-2.4.*-deps.tar.gz は、不要です。
------------------------------------------------------------------------------------------------
httpd-2.4.X から、 srclib以下は何も用意されていないので、apr、apr-util、pcreを準備しインストールして置く必要
があるります。 ( コマンドの ; \ は、連続してコマンドを実行させる指示です。 )

@ pcre のインストール  <---- このインストールを忘れないように
   cd /usr/local/src; \
   rpm -Uvh pcre-devel-7.8-6.el6.i686.rpm

   yum でのインストールは、
   yum -y install pcre-devel

A apr を展開したファイルをフォルダ ./httpd-2.4.X/srclib/ へ書き込む。
   注意 httpd-2.4.3-deps.tar.gz を展開しておかないと configure スクリプトの実行時にエラーになります。

   ○ httpd-2.4.3 or httpd-2.4.4 or httpd-2.4.7 or httpd-2.4.9 を展開する。

    1. httpd-2.4.3 の時

       tar xzvf httpd-2.4.3.tar.gz; \
       tar zxvf httpd-2.4.3-deps.tar.gz; \
       chown -R root. httpd-2.4.3; \
       cd ./httpd-2.4.3/srclib

    2. httpd-2.4.4 の時

       tar xzvf httpd-2.4.4.tar.gz; \
       chown -R root. httpd-2.4.4; \
       cd ./httpd-2.4.4/srclib

    3. httpd-2.4.7 , httpd-2.4.9, httpd-2.4.10 の時

       tar xzvf httpd-2.4.10.tar.gz; \  <---- httpd-2.4.10 は、httpd-2.4.X の
       chown -R root. httpd-2.4.10; \            バージョンに合わせてください。
       cd ./httpd-2.4.10/srclib

   ○ apr を展開する。

   tar xzvf  apr-1.5.1.tar.gz; \
   chown -R root. apr-1.5.1/; \
   mv apr-1.5.1 apr; \
   tar xzvf  apr-util-1.5.3.tar.gz; \
   chown -R root. apr-util-1.5.3/; \
   mv apr-util-1.5.3/ apr-util

B configure の実行

   cd /usr/local/src/httpd-2.4.10; \    <---- httpd-2.4.10 は、httpd-2.4.X の
   ./configure \                                 バージョンに合わせてください。
   --enable-rewrite \
   --enable-so \
   --enable-deflate=shared \            <---- 圧縮する処理を追加
   --with-included-apr

  ------------------------------------------------------------------------------------------------
  ・enable-rewrite        : Rewriteサポート(mod_rewrite)
                    Apache側で要求されたURLを書き換えたり、リダイレクトしたりしてくれるモジュール
  ・enable-so             : mod_soモジュールを静的に組み込む
  ・enable-deflate=shared : データの転送を圧縮するモジュールを組み込む
  ------------------------------------------------------------------------------------------------

以下で、終われば、OK
------------------------------------------------------------------------------------------------
config.status: creating support/log_server_status
config.status: creating support/logresolve.pl
config.status: creating support/phf_abuse_log.cgi
config.status: creating support/split-logfile
config.status: creating build/rules.mk
config.status: creating build/pkg/pkginfo
config.status: creating build/config_vars.sh
config.status: creating include/ap_config_auto.h
config.status: executing default commands
------------------------------------------------------------------------------------------------
D make & install
   make && make install
以下で、終われば、OK
------------------------------------------------------------------------------------------------
Installing CGIs
mkdir /usr/local/apache2/cgi-bin
Installing header files
Installing build system files
Installing man pages and online manual
mkdir /usr/local/apache2/man
mkdir /usr/local/apache2/man/man1
mkdir /usr/local/apache2/man/man8
mkdir /usr/local/apache2/manual
make[1]: ディレクトリ ` httpd-2.4.10' から出ます
------------------------------------------------------------------------------------------------
E 私のサーバの環境でした、httpd.confの設定は、下記のとおりです。

   下記は、修正箇所の一覧ですが、ディレクトリは、私のサーバ機の環境での設定値です。
   機能は、「cgi, SSI, が、.htmlで使用可能・cgi, SSI のファイルは、ホームページファイルと同一ディレクトリで
   可能にする・png, jpg ファイル以外は、圧縮して転送する」を設定しています。
   なお、ドメインは一つしか使用しないのでバーチャルドホストの設定は、していません。
   圧縮設定は、最後に追加していますが、圧縮ログの出力は、コメントアウトしていますので、ローカルで確認する時
   には、削除してください。

※ httpd.conf の設定が、終わったファイルを ffftp で、windows側に転送しておくと、再構築の時に、そのファイルを
   上書きすれば、設定内容は、すべて有効になります。
  ただし、直接上書きはできないので、一度ホームディレクトリへ転送し、コピーコマンドで、上書きします。
   cp /home/miyasaka/src2/httpd.conf /usr/local/apache2/conf/httpd.conf。
---------------------------------------------------------------------------------------------------------
Alias(エイリアス) を使用して、別 DocumentRootを作りCGI,SSI,htmlを動作させる方法を下記に紹介します。

  この方法は、当ホームページのトップページ内の指定した「日」および「月」の保存した定点
  カメラの映像表示で使用しています。
---------------------------------------------------------------------------------------------------------
  編集済の httpd.conf は、再構築時使用すると便利なので windows PC へ保存します。
  ( ディレクトリ・ユーザ名は、私のサーバ機の場合の設定です。)

  cp /usr/local/apache2/conf/httpd.conf /home/miyasaka/
---------------------------------------------------------------------------------------------------------
Fホームページの書き込み先のフォルダを作成・所有者の変更・属性変更をします。
   ( /var/www/html/www.smiyasaka.com は、私の場合の DocumentRoot です。)

   mkdir -p /var/www/html/www.smiyasaka.com; \
   chown -R miyasaka:miyasaka /var/www/; \
   chmod 777 /var/www/html/www.smiyasaka.com

G httpd.confの設定に間違いが無いか確認します。

   /usr/local/apache2/bin/apachectl configtest

「 Syntax OK 」と表示されればOKです。

 ※※  注意  ※※
   configtest を実行する時に、DocumentRoot で指定したディレクトリが無いと下記エラーが出ますのでディレクト
   リを作成してから、configtest を実行してください。

              DocumentRoot must be a directory

H apache2を起動する。

   /usr/local/apache2/bin/apachectl start

   何も表示しなければ OK です。

J システム起動時に、自動起動させるために、rc.local に apache の起動コマンドを書き込みます。

   vi /etc/rc.d/rc.local

   下記を追加する。
   # Apache
   /usr/local/apache2/bin/apachectl restart

   ※  echo コマンドで追加する方法  ※
   下記2行をコピペして実行します。

   echo "# Apache
   /usr/local/apache2/bin/apachectl restart" >> /etc/rc.d/rc.local

K ここで、 httpd.conf へ設定したドキュメントのルート( DocumentRoot )へホームページのファイルデータを書き
   込みます。

   私の場合は、自宅サーバの現用機で、毎日下記のファイルを圧縮してバックアップファイルとし作

        1.ホームページのhtml・cgi・SSI・写真のファイルとデータ
        2.システム管理用に作成した perl・sh等の各種プログラム
        3.webalizerが解析した apacheのアクセスデータ(htmlデータ)
        4.apache のログデータ(1カ月分)
        5.root宛てメールデータ(10日分)

   成しているので、専用の転送プログラムと展開プログラムで簡単に、前日の24時の時点に数分で復元できるように
   システムを構築しています。

L 動作確認は、予備機のローカルIPアドレスを別の PC から入力して確認します。
   予備機を現用機とした時には、[ ホームページが外部へ公開 ] されているかの確認が出来るサイトで行います。
   下記をクリックするとそのサイトへジャンプします。
                     [サーバー監視/ネットワーク監視サービス]

M 書き込んだプログラムを定時実行させるため、cron への設定もします。
-----------------------------------------------------------------------------------------------------------
 ※ 圧縮されたかの確認ができるwebサイトを紹介します。下記 URLをクリックしてあなたのホームページのURLを
    入れるだけです。
   www.gidnetwork.com
   私のドメインでアクセスした結果は、下記の通りです。(圧縮レベル 5 で設定)
 --------------------------------------------------
 右の写真のような情報が取得できます。
 ( H25.09.05 アクセスし、データ取得 )

 Results for: www.smiyasaka.com    
 Web page compressed?     Yes   ← 圧縮有
 Compression type?        gzip  ← 圧縮タイプ
 Size, Markup (bytes)     53,871  ← 解凍した
                                 後の バイト数
 Size, Compressed (bytes) 10,451  ← 圧縮された
                                 時の バイト数
 Compression %            80.6  ← 圧縮率
 --------------------------------------------------







www.gidnetwork.com からの回答
B
  圧縮した時の圧縮ログデータは、このようになりました。
 ( 私の環境では、/usr/local/apache2/logs/deflate_log に圧縮ログデータが保存されました。)
     (出力バイト数)↓ ↓(入力)↓( 元データに対するデータの大きさ[ % ] ) を意味します。
"GET / HTTP/1.1" 10335/53768  (19%) Mozilla/5.0 (compatible; MSIE 9.0;…………………………
"GET /.webcam/camdata.jpg HTTP/1.1" 730/1235 (59%) Mozilla/5.0 (compatible;…………………
"GET /.webcam/camdata.jpg HTTP/1.1" -/- (-%) Mozilla/4.0 (compatible; )………………………
"GET /fswebcam.html HTTP/1.1" 16258/71964 (22%) Mozilla/5.0 (compatible; MSIE 9.0; ………
"GET /server.html HTTP/1.1" 13682/55830 (24%) Mozilla/5.0 (Windows NT 6.1; …………………
"GET /html_point.html HTTP/1.1" 14973/70669 (21%) Mozilla/5.0 (Windows NT  …………………
"GET /html_point8.html HTTP/1.1" 1017/1985 (51%) Mozilla/5.0 (Windows NT ……………………
"GET /html_point4.html HTTP/1.1" 852/1575 (54%) Mozilla/5.0 (Windows NT………………………
HTMLのページによって圧縮率[ 100 - 上記の()内の値 ]が違う事が分かります。また、jpg は、圧縮対
象外にしているので圧縮されてないことも分かります。
圧縮率の計算は、
          {(入力バイト数)-(出力バイト数)}÷(入力バイト数)×100 %になるので
上記1行目の場合、( 53,768 - 10,335 )÷53,768×100=80.78 % になります。
-----------------------------------------------------------------------------------------------------------
N mod_status を使用した apache サーバステータスの監視機能を使用可能にする設定。

apache サーバステータスを LAN内 PC から、ホームページとして見られる様に設定します。

   N-1 httpd.conf の編集

        vi /usr/local/apache2/conf/httpd.conf

        135行目あたり コメントアウトされてない事を確認する。

        LoadModule status_module modules/mod_status.so

        461行目(原本での行数)あたり コメントアウトを解除する。

        Include conf/extra/httpd-info.conf

   N-2 httpd-info..conf の編集

        vi /usr/local/apache2/conf/extra/httpd-info.conf

        <Location /server-status>
            SetHandler server-status

        16  Require host .example.com
               ↓ ↓ ↓
            Require host localhost

        17  Require ip 127
               ↓ ↓ ↓
            Require ip 192.168.0.  <--- LAN 内のみアクセス許可にする。あなたの環境に合わせてください。
        </Location>              

        サーバステータス情報の拡張表示を行う
        #ExtendedStatus On
           ↓ ↓ ↓
        ExtendedStatus On

        httpd の設定情報は、不要なのですべてコメントアウトする

        32  #<Location /server-info>
        33  #    SetHandler server-info
        34  #    Require host .example.com
        35  #    Require ip 127
        36  #</Location>

       上記をまとめて sed コマンドで実行は、下記の様になります。
       なお、同じ文字列があるので、行を指定して実行しています。
 ( s/ の前の数字は、置換をさせる行番号です。 32,36s/^/#/ は、32 〜 36 行の先頭に # を挿入する指示です。)

sed -i -e "16s/Require host \.example\.com/Require host localhost/
17s/Require ip 127/Require ip 192\.168\.0\./
s/#ExtendedStatus On/ExtendedStatus On/
32,36s/^/#/" /usr/local/apache2/conf/extra/httpd-info.conf

    ○  httpd を再起動する。

        /usr/local/apache2/bin/apachectl restart  <--- 停止してから起動する

        または、

        /usr/local/apache2/bin/apachectl graceful <---  アクセス中のユーザを有効にしたまま再起動する。

   N-3 LAN内 PC からのアクセス方法

        [LAN内のサーバのIPアドレス]/server-status?refresh=5       <--- 5 秒更新
        [LAN内のサーバのIPアドレス]/server-status                 <--- 更新なし

        下記は、私のサーバ機で表示したサーバステータス情報です。
A
   N-4 apache のコマンド apachectl status と fullstatus を使えるようにする。

     CentOS 6.5 32bit 版では、テキストベースのブラウザパッケージ[ elinks ]のインストールは、必要ありません。

        コマンド apachectl status でコンソールから、テキスト情報で見ることができます。
        詳しいアクセス情報の表示は、コマンド apachectl fullstatus で見ることもできます。

        下記は、コマンド apachectl status の表示例です。
        コマンドには、/usr/local/apache2/bin/apachectl statusの様にフルパスを付けて実行してください。

        # /usr/local/apache2/bin/apachectl status
                          Apache Server Status for localhost (via ::1)
           Server Version: Apache/2.4.10 (Unix)
           Server MPM: event
           Server Built: Oct 2 2014 08:34:47
           --------------------------------------------------------------------------
           Current Time: Sunday, 05-Oct-2014 09:30:12 JST
           Restart Time: Sunday, 05-Oct-2014 09:26:37 JST
           Parent Server Config. Generation: 2
           Parent Server MPM Generation: 1
           Server uptime: 3 minutes 34 seconds
           Server load: 0.09 0.15 0.09
           Total accesses: 1 - Total Traffic: 3 kB
           CPU Usage: u0 s.01 cu0 cs0 - .00467% CPU load
           .00467 requests/sec - 14 B/second - 3072 B/request
           1 requests currently being processed, 74 idle workers
                 以下 省略

サーバステータスの監視機能の出力結果の見方の解説は、
                    [サーバステータスの監視の解説は、ここをクリック]してください。

-----------------------------------------------------------------------------------------------------------
※※  apache のバージョンの確認方法  ※※
    /usr/local/apache2/bin/httpd -v のコマンドで確認できます。

    Server version: Apache/2.4.10 (Unix)
    Server built:   Sep 19 2014 10:46:54

○  おまけ
 1. Linux OS のバージョンの確認方法
    cat /etc/redhat-release のコマンドで確認できます。

    CentOS release 6.5 (Final)

 2. Linux カーネルのバージョンの確認方法
    uname -a のコマンドで確認できます。

    Linux LeoMiya 2.6.32-431.el6.i686 #1 SMP ………

 3. httpd を restrat としたら、こんなエラーが出た時の対処方法
    このエラーは、他のプロセスがポート80を使用しているため、停止が出来なかった時にでます。

 (98)address already in use: ah00072: make_sock: could not bind to address [::]:80
 (98)address already in use: ah00072: make_sock: could not bind to address 0.0.0.0:80

    何番のプロセスが httpd を使用しているか、lsof コマンドで調べます。
    
    lsof -i | grep http

    この様に表示します。

    httpd     1391     root    4u  IPv6  10236      0t0  TCP *:http (LISTEN)
    httpd     2175 miyasaka    4u  IPv6  10236      0t0  TCP *:http (LISTEN)
      ( 以下省略 )

    kill コマンドで root のプロセス番号を削除し、再度 start したら終了です。

    kill 1391

===========================================================================================================
  11. fswebcom-20140113.tar.gz のインストールと定点カメラの設定
===========================================================================================================
※ 注意 ※ CentOS 6.X では、BUFFLOAD のカメラは、使用できません。
------------------------------------------------------------------------------------------------------------
  2014年 1月にリリースされたfswebcam-20140113.tar.gzバージョンをインストールしました。
  このバージョンは、タイトルの日本語が文字化けしますので、タイトルに文字を設定する時には、
  必ず E の処理を忘れずして下さい。

  ○ fswebcam-20140113.tar.gz のインストール手順

  @ 依存関係のあるパッケージのインストール
     5個の i686.rpm のパッケージを下記の順序でインストールする。
     必ず、システムのアップデート後にインストールしてください。
     [ yum では、 yum -y install db gd-devel でインストールします。]

     cd /usr/local/src/; \
     rpm -ivh libXpm-3.5.10-2.el6.i686.rpm; \
     rpm -ivh libjpeg-turbo-devel-1.2.1-3.el6_5.i686.rpm; \
     rpm -ivh libXpm-devel-3.5.10-2.el6.i686.rpm; \
     rpm -ivh gd-2.0.35-11.el6.i686.rpm; \
     rpm -ivh gd-devel-2.0.35-11.el6.i686.rpm

  A fswebcam-20140113 の展開と configure

     tar zxvf fswebcam-20140113.tar.gz;\
     cd ./fswebcam-20140113; \
     ./configure --prefix=/usr

     以下で、終われば、OK 
   -------------------------------------------------------
     checking for working mmap... yes
     checking for gdImageCreateTrueColor in -lgd... yes
     checking for gdImageStringFT in -lgd... yes
     checking for gdImageJpeg in -lgd... yes
     checking for gdImagePngEx in -lgd... yes

        Buffer type ........... 16 bit
        PNG support ........... yes
        JPEG support .......... yes
        Freetype 2.x support .. yes
        V4L1 support .......... yes
        V4L2 support .......... yes

     configure: creating ./config.status
     config.status: creating Makefile
     config.status: creating config.h

  B make と インストール

     make && make install

     以下で、終われば、インストールOK です。
    ------------------------------------------------------
     mkdir -p /usr/bin
     mkdir -p /usr/share/man/man1
     install -m 755 fswebcam /usr/bin
     install -m 644 fswebcam.1.gz /usr/share/man/man1

  C Logicool C270 の UVC 対応 USB カメラの輝度・明るさの調整は、下記の様に設定しています。

     -s Brightness=65%
     -s Contrast=15%        <----  明るさは、ここまで下げないと綺麗な画像になります。

  D Logicool C270 のカメラが認識された時の認識データは、cat /proc/bus/usb/devices で下記の様になります。

     S:  SerialNumber=E981E810
     ( E981E810 は、USB カメラのシリアル番号なので同一機種でも、
                                                       カメラを入れ替えれば変わります。)

  E タイトルの文字化け対策

     cron で一分毎に実行させるコマンドにシステムの文字コード環境変数の文字コードを変更するコマンドを下記の
     様( 私のサーバ機の環境の場合 )に追加する。
     fswebcam-20100622.tar.gz のバージョンでは、文字化け起こりませんので不要です。

      */1 6-18 * * * /var/www/html/www.smiyasaka.com/webcam/webcam.sh
                            ↓↓↓
      */1 6-18 * * * export LANG=ja_JP.eucJP; /var/www/html/…………/webcam.sh

  webcam.sh は、私が作成した USB カメラで撮影するシェルスクリプトのプログラムです。
  fswebcomを使った定点カメラの実現方法については、「定点カメラの実現方法」のページで詳細に解説していますの
  で参考にしてください。

                ※※   fswebcam で実現した 1分更新の定点カメラの映像です。  ※※
  上の映像は、我が家の東側の窓に取り付けた USB カメラで撮影した今の映像です。
           ( なお、17:00 〜 06:00 の間は、撮影を停止しています。)
  ここの映像の表示は、iframe を使用して、フレーム内だけを 30秒ごとに更新して表示しています。

  HTML のプログラムは、こんな具合にします。( フレームの枠は、cssで定義しています。)

  <iframe src="./( 30秒ごとに更新して表示するページ ).html" frameborder="0" scrolling="no"
              marginwidth="0" marginheight="0" width="406" height="296">表示できません。</iframe>

    frameborder="0"    <---  境界線を表示しない
    scrolling="no"     <---  スクロールバーなし
    marginwidth="0"    <---  横方向余白なし
    marginheight="0"   <---  縦方向余白なし

iframe を使用したホームページの作成方法については、定点カメラの実現方法の 5.ライブ定点カメラとして、
ホームページが公開できるようにします。のページで詳細に解説しています
ので参考にしてください。

===========================================================================================================
  12. clamd( アンチウィルスソフト )のインストール
===========================================================================================================
  Linux用のフリーのアンチウィルスソフトであるClam AntiVirus のインストール・設定方法は、下記サイトに詳しく
  紹介されていますので参考にしてください。
  なお、yum 使用しないので、下記の3個のパッケージを最初に  インストールします。
  注意 パッケージのインストールは、下記の順序でしてください。順序が変わると、依存関係のエラーがでます。

  [ yum では、 yum -y install clamd でインストールします。]

  cd /usr/local/src; \
  rpm -Uvh clamav-db-0.98-2.el6.rf.i686.rpm; \
  rpm -Uvh clamav-0.98-2.el6.rf.i686.rpm; \
  rpm -Uvh clamd-0.98-2.el6.rf.i686.rpm

○ clamd設定ファイル編集

   root権限で動作するようにする。

※ 参考 ※  
    sed コマンドで下記の様にすると同じ事ができます。 念のため、バックアップを取ってから置換します。

cp /etc/clamd.conf /home/miyasaka/clamd.conf.bak; \
sed -i -e "s/User clam/#User clam/g" /etc/clamd.conf

  vi /etc/clamd.conf
  :194 で194行目へジャンプ

  User clamv
     ↓
  #User clamv  <----  コメントアウトする。

○ ウィルススキャン実行スクリプト作成

   作成方法は、下記リンクの「アンチウィルスソフト導入(Clam AntiVirus)」を参照してください。

○ セルフチェックの頻度を変更する。

   初期設定では、10分に1回(24時間では、144回になる。)になっているので回数を30分に 1 回(24時間では、48回に
   なる。)に変更する為、clamd.conf を編集する。

   Logwatch の rooo宛てメールを見ると下記のようなっています。

    --------------------- Clamav Begin ------------------------ 
 
    Daemon check list:
       Database status OK: 144 Time(s)  <----  ここが、セルフチェックの回数  48回になります。
   ---------------------- Clamav End -------------------------

※ 参考 ※  sed コマンドで下記の様にすると同じ事ができます。

sed -i -e "s/#SelfCheck 600/SelfCheck 1800/" /etc/clamd.conf

   vi /etc/clamd.conf
  :185 で185行目へジャンプ

185 # SelfCheck 600   <----  単位は、秒,10分は、10 × 60 = 600
           ↓    ↓
      SelfCheck 1800  <----  コメントを取り、1800 にする。

  詳細の設定は、下記サイトを参考にしてください。
  ※ 参考にしたサイト   アンチウィルスソフト導入(Clam AntiVirus)
===========================================================================================================
  13. chkrootkitの導入
===========================================================================================================
インストールは、chkrootkit.tar.gz を使いたいのですが、make sense で下記エラーが出るので
chkrootkit-0.49-1.el6.rf.i686.rpm を使用します。

/usr/bin/ld: cannot find -lc
collect2: ld はステータス 1 で終了しました
make: *** [strings-static] エラー 1

  @ chkrootkit のインストール
  [ yum では、 yum -y install chkrootkit でインストールします。]

  cd /usr/local/src; \
  rpm -Uvh chkrootkit-0.49-1.el6.rf.i686.rpm

  A 起動用シェルスクリプトの作成
  vi rootkit.sh
  -----------------------------------------------------------
  #!/bin/sh
  rootkit='/usr/bin/chkrootkit'
  LOG='/var/log/chkrootkit.log'
  DISCOVERY='discovery'

  $rootkit > $LOG
     grep "INFECTED" $LOG > $DISCOVERY
  if [ -s $DISCOVERY ];
  then
     cat $DISCOVERY | mail -s "rootkit discovery" root
  else
     echo "rootkit check OK" | mail -s "rootkit check" root 
     ( OK メールが不要の時には、else とこの部分は、不要です。)
  fi
  chmod 600 $LOG
  rm -f $DISCOVERY
  -----------------------------------------------------------

  B rootkit.sh に属性設定
    chmod 700 rootkit.sh

  C 毎日2時に実行するよう cron に設定する。
    0 2 * * * /usr/local/src/rootkit.sh

  D ハッカーの攻撃にあったかの確認
     root 宛てにメールが、来ているので確認する。
     mail コマンドを入力して rootkit check OK が、表示すれば、ハッカーの攻撃は、なしです。

 詳細の設定は、下記サイトを参考にしてください。
  ※ 参考にしたサイト   rootkit検知ツール導入(chkrootkit)
===========================================================================================================
  14. sendmail のインストール
===========================================================================================================
  ○ root 宛てのメールは、sendmail が、無いと来ないみたいのでインストールします。
  [ yum では、 yum -y install sendmail でインストールします。]

  依存関係のある2個のパッケージも一緒にインストールします。

    cd /usr/local/src; \
    rpm -Uvh hesiod-3.1.0-19.el6.i686.rpm; \
    rpm -Uvh procmail-3.22-25.1.el6.i686.rpm; \
    rpm -Uvh sendmail-8.14.4-8.el6.i686.rpm

    root 宛てのメールは、mail コマンドでみます。詳細は、下記サイトを参考にしてください。
  ※ 参考にしたサイト   mail コマンドの使い方
===========================================================================================================
  15. Logwatch のインストールと毎日のメールを簡単にチェックする方法
===========================================================================================================
  ○ サーバー上のログを定期的にまとめ、集約してレポートを出してくれるソフトウェア(Logwatch)は、CentOS 6.4
     の場合、デフォルトでインストールされていないのでインスト ールします。
     [ yum では、 yum -y install logwatch でインストールします。]

    Logwatch のインストールは、依存関係から、下記の順序で行ってください。

    cd /usr/local/src/; \
    rpm -ivh perl-YAML-Syck-1.07-4.el6.i686.rpm; \
    rpm -ivh perl-Date-Manip-6.24-1.el6.noarch.rpm; \
    rpm -ivh logwatch-7.3.6-49.el6.noarch.rpm

  ○ logwatch.conf は、下記の箇所を変更して 実行させれば root宛てにメールがきます。

※ 参考 ※  1行毎直すのが面倒な時には、sed コマンドで下記の様にすると同じ事ができます。
            念のため、バックアップを取ってから置換します。

cp /usr/share/logwatch/default.conf/logwatch.conf /home/miyasaka/logwatch.conf.bak; \
sed -i -e "s/#Archives = Yes/Archives = Yes/
s/Detail = Low/Detail = Med/
s/sendmail -t/sendmail -t -f root@localhost/"\
 /usr/share/logwatch/default.conf/logwatch.conf

    vi /usr/share/logwatch/default.conf/logwatch.conf 

    アーカイブされたログも含めるかどうか
    60行目  コメントアウトの解除
    #Archives = Yes
    ↓
    Archives = Yes

    ログの詳細度、Low (=0), Med (=5), High (=10) または 0から10までの数字。
    72行目   私の場合、Med にしました。
    Detail = Low
             ↓
    Detail = Med

    メールコマンドパスの変更
    109行目 rooo宛てにする。
    [ Can't execute sendmail -t: No such file or directory ]というエラーが出るので修正します。

    mailer = "sendmail -t"
      ↓   ↓   ↓ 
    mailer = "sendmail -t -f root@localhost"

  ○ Logwatch の定時実行は、cron.daily の設定で午前 3時から 4時頃の間のランダムな時刻に
     毎日実行されるので、crontab に設定する必要は、無いようです。

  ○ Logwatch の rooo宛てメールを毎日簡単にチェック出来るように下記のようなプログラムを作ってみました。

    1. Logwatch の rooo宛てメールを前日の日付でユーザーエリヤに保存するとともに、パスワードのかかったヘージ
       から、ホームページから日にちを指定して見られるようにしています。

    2. 保存したLogwatch の rooo宛てメールは、10日間としそれ以前は、削除するようにした。

    3. プログラムは、cron で毎日一回4時以降に実行させています。

    4. /var/spool/mail/root のメールデータは、本プログラムで転送後肥大を防ぐため削除しています。

    5. また、ついでに chkrootkit 実行結果・DiCE のイベントログも同時に見られるようにもしています。

        こんな具合に表示します。

        表示例

        ○ 11/14 7:34 デーモン動作を開始しました
        ○ 11/14 11:26 デーモン動作を開始しました
        ○ 11/14 11:26 IPアドレスが変わりました >123.215.114.234  <---- 変更後のグロバルIPアドレス
        ★ 11/14 11:27 に(イベント名が表示)が実行されました
          IPアドレスを更新しました
        ○ 11/14 11:45 デーモン動作を開始しました

    ※※ 参考情報 ※※
       corn で定時的に実行させている処理のコマンドの最後に[  > /dev/null 2>&1 ]を付けましょう。
       これを付けないと実行結果が rooo宛てメールとして残ってしまいます。
       ( これは、実行結果を表示させない処理です。 メールデータの肥大化防止にもなります。)

    6. DiCE のイベントログのrooo宛てメールは、シェルスクリプトで簡単なプログラムを作り、IPアドレスの更新
       が7日毎なので、これに合わせて、週一回 cron で実行させています。
       ( DiCE の IPアドレスの更新実行は、起動した日を基準に繰返し行われます。 )

    7. Logwatch の rooo宛てメールは、漢字があるので文字化けしない様に漢字コードをJcodeでShift_JIS 変換にし
       てユーザーエリヤに保存しています。

    8. rooo宛てメールをホームページエリヤに移動保存すると、不正に見られることがあるかもしれないので、移動保
       存は、ホームディレクトリにしていますが、perl では、cp( コピーコマンド )使えないので、ユーザーエリヤ
       に保存してあるメールデータを読みだすため、openコマンドで変数(get_data)に書込む方法をとりました。
       コピーコマンド( cp )の替りに open を使つてプログラムを組むとデータの読込みが簡単になり、便利です。
       皆さんも是非マスターしてください。

          open( get_data, "<ユーザーエリヤの保存先のパス+ファイル名");

    下記がシェルスクリプト・cgi のプログラムと Logwatch の rooo宛てメールの内容です。
    ユーザーエリヤ等のパスは、○表記にしていますが、使用するときには、あなたの環境に合わせてください。

    ※ 注意 ※
    「rooo宛てメール」が見られる様になるのは、システムを起動後、翌々日からになりますので注意してください。
rooo宛てメールで
         [ Searching for Suckit rootkit... Warning: /sbin/init INFECTED ]のメッセージがある時に、
        chkrootkit の誤検知かを判断する方法

    1. サーバ機にログインして rpm -qf /sbin/initのコマンドを入力して、インストールされているパッケージ名を
       確認します。

       CentOS 6.4 の場合、upstart-0.6.5-12.el6_4.1.i686 でした。

    2. Logwatch の rooo宛てメール内の yum によるアップデート情報をチェックします。
       私のサーバ機でのrooo宛てメールの表示例です。

      --------------------- yum Begin ------------------------ 
          Packages Updated:
          libcom_err-devel-1.41.12-14.el6_4.2.i686
          libss-1.41.12-14.el6_4.2.i686
          e2fsprogs-1.41.12-14.el6_4.2.i686
          e2fsprogs-libs-1.41.12-14.el6_4.2.i686
          upstart-0.6.5-12.el6_4.1.i686
          libcom_err-1.41.12-14.el6_4.2.i686
      ---------------------- yum End -------------------------

    3. /sbin/initにインストールされているパッケージがアップデートされているのでこの場合は、誤検知になり
    ます。

    4. メッセージの消去は、サーバ機を reboot する事により、次回からは、出なくなるそうです。
       ( 私は、試してはいませんが、私の場合には、予備機に入れ替えています。)
===========================================================================================================
  16. ftp のインストール
===========================================================================================================
  ○ 上記のインストール方法では、Linux のファイルを、ネットワークでつながった他の Linux や PC に転送する
    「 ftp 」(file transfer protocol)というコマンドが使えないので、ftp をインストールします。
     ftp は、運用・管理のバックアップファイルの転送の時に必要になります。
     [ yum では、 yum -y install ftp でインストールします。]

    cd /usr/local/src; \
    rpm -Uvh ftp-0.17-53.el6.i686.rpm

===========================================================================================================
  17. 漢字コード変換用にJcodeのインストール 
===========================================================================================================
  ○ apache のアクセスログの文字化けを修正するための漢字コード変換パッケージ Jcode をインストールします。
     一般的には、コマンド [perl -MCPAN -e shell]でしますが、Jcode のソースから、インストールした方が、簡
     単に終わります。

    cd /usr/local/src; \
    tar zxfv Jcode-2.07.tar.gz; \
    cd ./Jcode-2.07; \
    perl Makefile.PL; make; make install 
    以下で、終われば、OK 
    -----------------------------------------------------------
    Jcode-2.07/Unicode/Unicode.xs
    Checking if your kit is complete...
    Looks good
    Writing Makefile for Jcode
    cp Jcode/Nihongo.pod blib/lib/Jcode/Nihongo.pod
    cp Jcode.pm blib/lib/Jcode.pm
    Manifying blib/man3/Jcode::Nihongo.3pm
    Manifying blib/man3/Jcode.3pm
    Installing /usr/local/share/perl5/Jcode.pm
    Installing /usr/local/share/perl5/Jcode/Nihongo.pod
    Installing /usr/local/share/man/man3/Jcode::Nihongo.3pm
    Installing /usr/local/share/man/man3/Jcode.3pm
    Appending installation info to /usr/lib/perl5/perllocal.pod
===========================================================================================================
  18. 自宅サーバの管理・運用監視・アクセスログ文字化け対策等
===========================================================================================================
自宅から、Webサーバを開設・運用するには、次の事もしなければなりません。

  1. 停電の対策

      私の場合、100% 趣味として、運用しているので、対策はしていません。

  2. グローバルIPアドレスの監視


      ネームサーバへのグローバルIPアドレス変更の通知は、DiCEで対応していますが、自分で気づいたときは、( ほ
      とんどの場合、ルータの電源断です。)
      直接ネームサーバへログインして変更をかけています。( 20分程度で変更されています。)

  3. サーバの監視

      プロセス監視は、perl で作成した監視プログラム内から、ps コマンド実行させ DiCE, ssh, apache, proftpd 
      が、停止していないかチェックしています。

   ( DiCE のプログラムは、時々落ちるのでぜひ定時監視させる必要があります。私は、毎週 土曜日に DiCE のイベ
       ントログをチェックしていますが、「デーモン動作を開始しました」のメッセージが結構表示されています。)

      監視プログラムは、 cron で1分ごとに実行させプロセス( DiCE,ssh,apache,proftpd )の停止を監視させ、停止
      した場合に再起動し、システムの安定稼働を実現させています。

      監視プログラムの概要

      Linux のコマンド [/bin/ps -aef]をopen 関数で実行させプロセスが稼働していれば、それぞれのプロセスで
      下記のメッセージがあるので、そのメッセージの有無を判定させ、無い時には、再起動するようにさせています。

      proftpd --->  proftpd: (accepting connections)
      apache  --->  /usr/local/apache2/bin/httpd -k restart
      apache  --->  /usr/local/apache2/bin/httpd -k start
      DiCE    --->  /usr/local/DiCE/diced -d -l
      ssh     --->  /usr/sbin/sshd

      下記は、perl で作成したプロセス監視プログラムの例です。参考にしてみてください。
      監視は、cron で 1 分毎に下記プロセス監視プログラムを起動するだけです。
  4. webalizerを使用したapacheのアクセスログの取得と解析

      国別集計だけが上手く行かない為、現在研究中です。
      問題等が解決して国別集計が出来るようになったら、方法等を公開します。

  5. アクセスログの文字化け対策・月初め処理・不要な過去のログの自動削除

      Jcode にて、毎晩定時に日本語のコード変換をして別ファイル名で保存するプログラムを作成しています。
      なお、毎月 1日と元旦の日は、次のように特別処理をしていいます。

      このプログラムは、シェルスクリプトで作成し、1月1日時には、前年の12月31日に・1日の時には、前月の30日
      または、31日にして日本語のコード変換をして、その月の変換 HTML ファイルとして保存するようにしています。

      表示の時には、webalizer が作成する index.html の月別リンクページのファイル名を入れ替えるプログラムを 
      perl で作成して cgi として実行させて日本語のコード変換をしたページを表示さています。

      これらのプログラムでは、一年分の処理をさせているので、毎日前日の文字化けのないアクセスログを見ること
      ができています。

  下記に、先人の知恵を借りて私なりに改良した、上記の問題点を処理したシェルスクリプトとcgiのプログラムです。
  参考にしてください。

      下記プログラムは、webalizer のログ解析ファイル名に「年月」の文字が入っていることを前提として、処理し
      ています。
  6. サーバ機が、ダウンした場合の予備サーバ機の準備等
      ホームページのファイルとapacheのアクセスログは、毎日定時に、バックアップ( 圧縮 )をとり、予備機との
      入れ替えをスムーズにできるようにシステムを組んでいます。

  7. サーバ機のシステムが正常に動作しているか・外部から不正アクセスがないか等は、Logwatchのrooo宛てメールを
      ホームページ上で見えるようにして日々チェックしています。 

 ※ 有ると便利なパッケージを紹介します。

    ポート番号からサービスを特定したり、どんなプロセスが動いているとかの確認プログラム

    ダウロードしてインストールするだけ

    cd /usr/local/src; \
    rpm -Uvh lsof-4.82-4.el6.i686.rpm

  使用例
    ポート 3310 をオープンしているプロセスを調べてみます。
    -i オプションでポート番号を指定すると、そのポートをオープンしているプロセスが表示されます。

    lsof -i:3310
    COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
    clamd   1111 root    5u  IPv4   9747      0t0  TCP localhost:dyna-access (LISTEN)

    ポート 3310 は、clamd が使用していることが分かります。

  詳しい使い方は、下記サイトを参考にしてください。
  ※ 参考になるサイト   lsof の使い方

  8. CPU 温度を表示させるプログラム

    こんな具合に表示できます。

    現在のサーバ機の CPU 温度 +43 です。

    ダウロードしてインストールした後、少しの設定をするだけです。

    ※ CPU温度の取得は、CPUの種類によって違いますので、あなたのサーバ機の仕様に合わせてくたせさい。

    cd /usr/local/src; \
    rpm -Uvh lm_sensors-libs-3.1.1-10.el6.i686.rpm; \
    rpm -Uvh lm_sensors-3.1.1-10.el6.i686.rpm

    sensors-detectと入力し、すべてに対して[return]キー(14回ほど)を押し、最後に[ OK ]がでれば、動作します。

    sensors と入力すると下記の様に表示します。
    (下記は、私のサーバ機 CPU:Intel(R) Atom(TM) CPU N455 の表示です)

    coretemp-isa-0000
    Adapter: ISA adapter
    Core 0:      +33.0°C  (high = +80.0°C, crit = +100.0°C)

    下記は、CPU 温度をホームページ上に表示させるプログラム( シェルスクリプト・SSI )の例です。
  9. CPUの稼働時間・HDDの稼働時間と温度を表示する方法

     こんな具合に表示できます。
       サーバ機連続稼働時間  21 時間 35
     現在のサーバ機の CPU 利用率 8.18 % です。
     現在のサーバ機の HDDの稼働時間と温度は、 2,464 時間 ( 102  16 時間 ) +34  です。

     CPUの稼働時間と HDDの温度を表示させるプログラムは、CentOS 6.4 の場合標準でインストールされていました。

     CPU の稼働時間と HDD の温度を表示ついての詳細は、下記のクリックでジャンプします。

      @ CPUの稼働時間を表示する方法は、[ここをクリック]して下さい。

      A HDDの稼働時間と温度を表示する方法は、、[ここをクリック]して下さい。

     CPU の稼働時間・温度と HDD の温度のホームページ上での表示は、サイドメニューの一番上の欄[システム管理情
     報]にマウスを載せるとプルダウンで表示するようにしています。

     ※※ 参考情報 1 ※※
     HDD の情報を取得するパッケージ( smartmontools, 他 )は、ホームページからのSSI等で実行させても結果は得
     られませんので注意して下さい。端末から実行すると結果が表示するのでちょっと疑問を持つと思います。
     ( 私も悩みました。)

     これらは、root 権限でないと実行されない( ホームページの実行は、ユーザーモードの実行になります。 )ので、
     これらを実行させて情報を得たい時には、cron で定時的に実行させファイルへ結果を保存し、ホームページでは、
     それを参照する方法にします。
     私のサーバ機の HDD の情報は、この方法で実現しています。

 10. エラーページを表示させる設定

     .htaccess というファイル名で下記を記述します。

 ErrorDocument 400 /error400.html  <--- エラーコード 400「要求されたコードを理解できません」
 ErrorDocument 401 /error401.html  <--- エラーコード 401「認証に失敗」
 ErrorDocument 403 /error403.html  <--- エラーコード 403「アクセスする為の許可がありません」
 ErrorDocument 404 /error404.html  <--- エラーコード 404「ページが見つかりません」
 ErrorDocument 500 /error500.html  <--- エラーコード 505「サーバは内部エラー」

    ( error400 〜 500.html は、エラーに成った時に表示するホームページのファイル名 )

   .htaccess というファイルとエラーに成った時に表示するホームページのファイルをホームページのディレクトリ
   へ保存します。

  11. ホームページ上にDiCE のIPアドレス更新ログを表示させる。

    DiCE のIPアドレス更新ログをその都度サーバにログインして見るのは、面倒なので、パスワードのかかったペー
    ジに perl と HTML でプログラムを組み見られる様にしてみました。
    DiCE のログは、日本語表示なので、EUCコードをシフトJISコードに変換しているのとイベントログの先頭文字が
   「★」なので、わざわざ16進コードに変換して、if 文で一致をとっています。
    DiCE の events.log のパスは、あなたの環境に合わせてください。

    上記 perl のプログラム中に日本語のコード変換モジュールを使用とてします。
    ここのサイトから、[ここから]の jcode.pl の行をクリックしダウンロードしてください。
    あとは、そのモジュールを上記の perl のプログラムと同じディレクトリーに転送するだけです。

  HTML の記述例
  dice_events_check.pl は、perlのプログラム名です。

  <CENTER><H3>DiCE のIPアドレス更新履歴<br><!--#exec cmd="./dice_events_check.pl"--></H3>

  表示結果

          DiCE のIPアドレス更新履歴
       4/30 8:51 に○○○○○が実行されました    <---- ○○○○○は、イベント名
       5/7 8:52 に○○○○○が実行されました 
       5/14 8:52 に○○○○○が実行されました 

  12. サーバ構築で .conf 等の設定ファイルを編集後 ffftp でwindows側へ保存しましょう。

  サーバを再構築する時にwindows側へ保存したファイルを使用すると簡単に再構築が出来るようになります。
  私は、この方法で再構築をしています。

  保存したファイルは、直接目的のディレクトリに書込みはできないので一度 home ディレクトリへ ffftp で転送し、
  cp コマンドで目的のディレクトリに書込みます。
  この時、上書きの yes/no が聞かれますので y を入力して上書きさせれば編集終了です。
===========================================================================================================
19. motion ( 動画 )のインストールからホームページでの表示までの設定
===========================================================================================================
motion を使って動画のホームページ作成してみました。

motion のインストールは、依存するパッケージが沢山あるので、ここでは、yum を使用しています。
手順は、下記の通りです。詳細は、下記のフレームを参照してください。


参考情報 @ 私のサーバ機の環境では、fswebcam と motion は、同時には、動作しませんでした。
            何か設定方法が有るのかもしれません。???
         A motion は、私のサーバ機ではかなりの負荷がかかっているようです。
            cpu の利用率・温度が、fswebcam の時は、10%・40度位に対して40%・50度を軽く越してしまいます。
            motion で動画を配信するには、パワーの有るCPUのサーバ機が必要ではないかと思います。

@ ffmpegを含めた依存パッケージのインストール
   依存パッケージ数が多いので、ここでは、yum を使用します。
   ( 事前に RPMforgeリポジトリを導入をしないと No package ffmpeg available.になります。)

   yum -y install ffmpeg

A motion ( motion-3.2.12.tar.gz )のインストール

   ダウンロードは、 ここを クリックしてください。

   cd /usr/local/src/; \
   tar -xvzof motion-3.2.12.tar.gz; \
   cd motion-3.2.12; \
   ./configure

   make && make install

B motion を起動時のエラー対策
   これを忘れると motion は、動作しませんので注意してください。

   ディレクトリ( /var/run/motion )の作成

   mkdir -p /var/run/motion

C motion の起動スクリプトの作成

   motion と入力するだけで起動しますが、停止するのがチョット面倒です。
   上手い具合に、Fedora用の起動スクリプトが作成されているので流用し編集します。
   起動スクリプトの名前は、motion にしています。 ( 起動スクリプトの名前は、自由に決めてください。 )
   これにより、start/restart/stop が簡単にできるようになります。

   cp /usr/local/share/motion-3.2.12/examples/motion.init-Fedora \
   /etc/rc.d/init.d/motion; \
   chmod 755  /etc/rc.d/init.d/motion

D motion の起動スクリプトの編集

   パスの設定を2か所修正します。

   motion=${MOTION-/usr/bin/motion}   <--- 26行目
   ↓
   motion=${MOTION-/usr/local/bin/motion}

   pidfile=/var/run/motion.pid   <--- 26行目
   ↓
   pidfile=/var/run/motion/motion.pid

E motion-dist.conf を motion.conf でコピーし、編集します。

   14か所修正します。

F 一時的な動作確認

   motion -n のコマンドで動作確認します。
    ( 本番は、サービス(デーモン) つまり、裏で動作させます。 )
    ( -n : Run in non-daemon mode. )

   motion -n を入力すると
   ......... 何やらメッセージが沢山でます。
 
   終了は、(Ctrl)+C を入力します。
 
   ブラウザを起動し、URL に http://(ローカルIPアドレス):8081
   ( IEでは、不可 fire fox, Safariは、OK )
   にアクセスしてライブ映像が見れる事を確認。

G Javaアプレットを使用して、IEでも見られるホームページを作成する。

   cambozola ストリーミング・イメージ・ビューアを使用して、IE でも見られる様にします。

   ダウンロードは、 ここを クリックしてください。

H motion の起動・停止・再起動

   /etc/rc.d/init.d/motion start / restart / stop

   /etc/rc.d/init.d/motion restart
   motion を停止中:                                           [  OK  ]
   motion を起動中:                                           [  OK  ]

   pstree コマンドで動作を確認してみました。

   # pstree
   init-+-abrtd
        |-anacron
        |-crond
        |-httpd-+-httpd
        |       |-4*[httpd---26*[{httpd}]]
        |       `-2*[rotatelogs]
        |-6*[mingetty]
        |-motion---2*[{motion}]
        |-ntpd
        |-proftpd
        |-rsyslogd---3*[{rsyslogd}]
        |-2*[sendmail]
        |-sshd---sshd---sshd---bash---su---bash---pstree
        `-udevd---2*[udevd]

I システム起動時に、自動起動するように設定をします。

   chkconfig --add motion; \
   chkconfig motion on

J 動画の外部への公開には、8081 の ポートを開放する必要があります。

K 上記手順の詳細を、下記に記述しています。
下記は、motion のテスト用ホームページです。
上記の方法でこんな具合に表示します。
( 使用したUSBカメラは、ELECOM UCAM-DLA200HWH です。)

A
  ※ 参考にしたサイト   Papa Net ライブカメラサーバー(motion)
===========================================================================================================
  20. motion ( 静止画 )のインストールからホームページでの表示までの設定
===========================================================================================================
H26.04.10 追加
motion で1秒更新の静止画の取込み・表示をしてみました。
( 当然、fswebcam の1分更新の定点カメラとの共用をしています。 )
-----------------------------------------------------------------------------------------------------------
※※ 参考情報 1 ※※
  CPU の利用率は、fswebcam (カメラ1台)時は、        10〜15% 
  fswebcam (カメラ1台) + motion 静止画(カメラ1台)  30〜40% 
  fswebcam (カメラ1台) + motion 静止画(カメラ2台)  70% 以上になります。
  motion のアプリは、かなり CPU の負荷に影響しますので、注意して下さい。

※※ 参考情報 2 ※※
  今回、fswebcam で使用できなかった BUFFALO の USB カメラが、motion でカメラ1台時は、使用出来ました。
  カメラ2台の時には、motion は、 USB カメラを選ぶようです。ELECOM 2台では、動作しましたが、BUFFALO + 
  ELECOM と BUFFALO + BUFFALO の組合せでは、動作しませんでした。
  なお、この検証は、私のサーバ機では、重荷なので、DELL のデスクトップ PC で行いました。
  この時の CPU の利用率は、70% を超えていました。
  ( DELL デスクトップ PC の仕様は、AMD Athlon(tm) 64 Processor 3500+ 2.2GHz です。)

※※ 注意情報 ※※
  USB カメラを入替えた時には、必ず motion を restart してください。
-----------------------------------------------------------------------------------------------------------

インストール・起動スクリプトの作成までは、19項の motion ( 動画 )@〜Dまでは、同じ手順で行います。
また、将来複数台のカメラを使用することを考慮し、カメラ毎の設定 conf ファイルは、thread○.conf で設定する
方法で行いました。

@ motion.conf と thread1.conf の編集
motion.conf の編集

cp /usr/local/etc/motion-dist.conf /usr/local/etc/motion.conf
vi /usr/local/etc/motion.conf

thread1.conf の編集
thread1.conf のファイルは、/usr/local/src/motion-3.2.12 に展開された設定ファイル
thread1.conf を /usr/local/etc/ にコピーして編集します。

cp /usr/local/src/motion-3.2.12/thread1.conf /usr/local/etc/
vi /usr/local/etc/thread1.conf
-----------------------------------------------------------------------------------------------------------
	●  ホームページの記述は、下記の通りです。参考にしてください。
-----------------------------------------------------------------------------------------------------------
     ※※  本体ページの HTML  ※※
    ( 表示サイズは、css で設定しています。 )
		省略
  <table border="1" width="100%"><col width="100%">
  <tr><td align="left" valign="top">
    iframe の枠線・スクロールバーは、表示なし・余白もなしにします。
  <iframe src="./○○○○.html" marginwidth="0" marginheight="0" 
     frameborder="0" scrolling="no" width="497" height="366">表示できません。</iframe>
  </td></tr>
  </table>

    ※※  iframeからリンクするページ(○○○○.html)の HTML  ※※

    写真の枠線は、こちら側で設定します。
		省略
    1秒毎の画面更新は、ここで設定します。
	<meta http-equiv="Refresh" content="1">
    </head> 
    <style type="text/css"><!--
    	/* 表示領域 枠線設定 */
    table.wakusen {border: solid 1px #649633; border-collapse: collapse;}
   	--></style>
  </head>
    <body>
    <div>
  <table class="wakusen" border="1" width="100%"><col width="100%">
  <tr><td align="left">
  <img src = "./snapshot.jpg"  width="494" height="362"
         title="今の風景写真を表示中" alt="今の風景写真を表示中>
  </td></tr>
  </table>

TOPへ戻る