ma-100140 @ ウィキ
Linuxサーバーの導入
最終更新:
ma-100140
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が使いたい(これができれば高いソフトを買わずにすみそう)のでインストールしてみました。
-
まず、ソースファイルの入手を。なかなかありませんね。探したらやっとありました。
http://archive.debian.net/ja/potato/rsh-server の右の方にあるnetkit-rsh_0.10.orig.tar.gzをダウンロード -
あとはいつものように解凍して、./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>を追加
-
残念...makeするとerrorが...
- これでエラーと警告はかなりなくなった。あとは良く分からないので無視。してインストール。
-
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 }
-
/etc/xinetd.d/に rlogin、rsh、rexecdの設定ファイルを作成。
-
servicesに以下を追加:これがなかなか分からなかった。ログを見てPort not specified and can't find service: rsh with getservbynameが出てたので、もしかしてと思いやっと分かりました。
rexec 512/tcp rlogin 513/tcp rsh 514/tcp
-
次にhosts.allowに以下を追加
########################################################################## # rexec in.rexecd : ALL ########################################################################## # rlogin in.rlogind : ALL ########################################################################## # rshd in.rshd : ALL
- ついでに、hoststにもローカル側のPCを登録しておきます。ここまで設定できてないと「接続が拒否されました」とエラーになりました。
-
これで終わったと思ったら、Permission deniedとなる。ログインするユーザーのディレクトリーに.rhostsを作成する
ローカルのPC名 ローカルPCでのユーザー名
-
使い方
%rsh リモートのpc名 -l リーモトーのユーザー名 -n リモートで実行するコマンド %rcp ローカルのファイル名 リモートのpc名.リモートのユーザー名:リモートのコピー場所 重要なのは「.」と「:」です。それからリモート側のコピー場所はリモートユーザーのログイン時のデフォルトからの相対パスで表現すること