ma-100140 @ ウィキ Linuxサーバーの導入

※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

Linuxサーバーの導入 2009/08/14~

今開発中のシステムをテストするために久しぶりにLinuxサーバーを導入しました。

Apache、PHP、MySQLのインストール

お古のサーバーのためにすこしでも高速化するようにと、全てソースからコンパイル
コンパイルオプションの見直しで結構速くなった感じです。
何もしないとgcc -O2でコンパイルされるため、-O3を指定するのと、CPUに合わせたオプションを指定。
こんな感じ

%CFLAGS="-O3 -march=pentium4 -mfpmath=sse -funroll-loops" ./configure .... あとはそれぞれのcofigureオプションを指定

Intelのコンパイラーがgccよりも速いみたい。後ほどチャレンジしたい。

Apacheの設定変更

rsh-serverの導入

最近のLinuxにはrlogin、rshなどがインストールされてないみたいです。社内のサーバー間でバッチ処理をしたいのでどうしてもrshが使いたい(これができれば高いソフトを買わずにすみそう)のでインストールしてみました。

  1. まず、ソースファイルの入手を。なかなかありませんね。探したらやっとありました。
    http://archive.debian.net/ja/potato/rsh-server の右の方にあるnetkit-rsh_0.10.orig.tar.gzをダウンロード
  2. あとはいつものように解凍して、./configue make make installのお決まりのコマンド
    • 残念...makeするとerrorが... 
      • rsh.c:135行目をコメントアウト
      • rlogin.c:65行目のヘッダファイルをvarargs.hからstdarg.hに変更
      • rshd.c:543行目 execl(theshell, shellname, "-c", cmdbuf, 0,NULL);のようにexecl関数にNULLを追加
      • logwtmp.c:38行目 #include <time.h>を追加
  3. これでエラーと警告はかなりなくなった。あとは良く分からないので無視。してインストール。
  4. xinitd関係の設定
    • /etc/xinetd.d/に rlogin、rsh、rexecdの設定ファイルを作成。
      service rsh
       {
           disable = no
           socket_type     = stream
           wait            = no
           protocol        = tcp
           user            = root
           server          = /usr/sbin/in.rshd
       }
      
  5. servicesに以下を追加:これがなかなか分からなかった。ログを見てPort not specified and can't find service: rsh with getservbynameが出てたので、もしかしてと思いやっと分かりました。
    rexec       512/tcp
    rlogin      513/tcp
    rsh         514/tcp
    
  6. 次にhosts.allowに以下を追加
    ##########################################################################
    # rexec
    in.rexecd : ALL
    
    ##########################################################################
    # rlogin
    in.rlogind : ALL
    
    ##########################################################################
    # rshd
    in.rshd : ALL
    
  7. ついでに、hoststにもローカル側のPCを登録しておきます。ここまで設定できてないと「接続が拒否されました」とエラーになりました。
  8. これで終わったと思ったら、Permission deniedとなる。ログインするユーザーのディレクトリーに.rhostsを作成する
    ローカルのPC名 ローカルPCでのユーザー名
    
  9. 使い方
    %rsh リモートのpc名 -l リーモトーのユーザー名 -n リモートで実行するコマンド
    
    %rcp ローカルのファイル名 リモートのpc名.リモートのユーザー名:リモートのコピー場所
    重要なのは「.」と「:」です。それからリモート側のコピー場所はリモートユーザーのログイン時のデフォルトからの相対パスで表現すること