ぼろサーバ改め新サーバの作成-その7

■Lm_sensorsその後 修理後、lm_sensorsがコマンドラインからどうもうまく動かなくなっていた。Fanの回転数などまったく表示されない。BIOSTARのマザーではうまくゆかないようだ。温度はかろうじてあやし … “ぼろサーバ改め新サーバの作成-その7” の続きを読む

■Lm_sensorsその後
修理後、lm_sensorsがコマンドラインからどうもうまく動かなくなっていた。Fanの回転数などまったく表示されない。BIOSTARのマザーではうまくゆかないようだ。温度はかろうじてあやしいながらも表示されているので、gnomeのデスクトップ上にアプレットで温度表示だけでも表示させてみた。
1.アプレットは、デスクトップ上に上下にあるパネルを右クリックすると簡単に追加できる。

2.もし、センサーアプレットが表示されない時は、システム->管理->ソフトウエアの追加と削除から追加する。

3.パネルに追加されたら、右クリックして、preferencesから色々と設定が出来る。

今回、温度のひとつ、チップの温度と思われるものが、どうも実測と離れているので、これを調整してみた。

倍率を0.8倍にしてみたら、なんだかそれらしき温度になった。

ぼろサーバ改め新サーバの作成-その6

■CGI(Perl)を動かす  なんとか、修理後、サーバは安定してきたので、引き続き、サーバの設定。今回はCGI(Perl)が動くようにしてみる。  PHPやJavaが主流の今日、CGI(Perl)は古めかしいが、一応未 … “ぼろサーバ改め新サーバの作成-その6” の続きを読む

■CGI(Perl)を動かす
 なんとか、修理後、サーバは安定してきたので、引き続き、サーバの設定。今回はCGI(Perl)が動くようにしてみる。
 PHPやJavaが主流の今日、CGI(Perl)は古めかしいが、一応未だにあちこちでカウンターやらなんやらを使ってるので、ないとやっぱりちと困る。
 まずは、Apacheのconfファイルをいじって、CGIの設定を行う。

1.Options にExecCGIを追加

# ScriptAlias: This controls which directories contain server scripts.
# ScriptAliases are essentially the same as Aliases, except that
# documents in the realname directory are treated as applications and
# run by the server when requested rather than as documents sent to the client.
# The same rules about trailing “/” apply to ScriptAlias directives as to
# Alias.
#

ScriptAlias /cgi-bin/ “/var/www/cgi-bin/”

#
# “/var/www/cgi-bin\” should be changed to whatever your ScriptAliased
# CGI directory exists, if you have that configured.
#
<Directory “/var/www/cgi-bin”>
  AllowOverride None
  Options ExecCGI     <-ここを修正
  Order allow,deny
  Allow from all
</Directory>

2.CGIの表示で文字化けがひどい場合
 WindowsからCGIのスクリプトをアップしている場合は、表示言語の指定をスクリプトの指定( META http-equiv=”Content-Type” content=”text/html; charset=Shift_JIS” など)に優先させるには「addDefaultcharset UTF-8」が有効になっていたら無効にしてみる。HPが文字化けする場合もこれを試す。

#
# Specify a default charset for all content served; this enables
# interpretation of all content as UTF-8 by default. To use the
# default browser choice (ISO-8859-1), or to allow the META tags
# in HTML content to override this choice, comment out this
# directive:
#
# AddDefaultCharset UTF-8  <-行の先頭に#をつけてコメント化し無効にする

3. AddHandler設定を有効化

AddHandler設定を有効化して、CGIスクリプトがハンドルされるようにする

#
# AddHandler allows you to map certain file extensions to “handlers”:
# actions unrelated to filetype. These can be either built into the server
# or added with the Action directive (see below)
#
# To use CGI scripts outside of ScriptAliased directories:
# (You will also need to add “ExecCGI” to the “Options” directive.)
#
AddHandler cgi-script .cgi  <-ここの行の先頭の#をとる

4.シンボリックリンクを張る
cgi用に/usr/local/bin/perlでcgiが記述できるようシンボリックリンクを張る。一般的に配布されているCGIスクリプトは、perlの場所が、/usr/local/bin/perlで先頭行に書かれている事が多い。ここを修正してもいいが、そのまま使えるように、シンボリックリンクを張っておく。

コマンドラインで、

ln -s /usr/bin/perl /usr/local/bin/perl

を実行する。

5.CGI実行時Internal Errorが多発してうまく実行できない場合
 主にこれは、WindowsとLinuxの行末の改行コードの違いによることが多い。サーバ上で、きちんと改行コードをLinuxに指定して保存しなおす。
または、Linuxでの改行はコード LF のみなので、DOS(Windows)上で作成したcgiスクリプトの先頭行の、

#!/usr/bin/perl ← このあとにCR+LFが入ってエラーとなる。なので、
#!/usr/bin/perl —  ← を追加してオプション指定と勘違いさせると、うまく動くこともある

6.動作テスト
cgi-binに、次のPerlのテストスクリプトをおいてテスト。

#!/usr/bin/perl
##
## printenv — demo CGI program which just prints its environment
##

print “Content-type: text/plain; charset=iso-8859-1\n\n”;
foreach $var (sort(keys(%ENV))) {
$val = $ENV{$var};
$val =~ s|\n|\\n|g;
$val =~ s|”|\\”|g;
print “${var}=\”${val}\”\n”;
}

上記ファイルを、vi等で作成し、test.cgiなどのファイル名で保存。
実行権限(パーミッション)を与えておく

# chmod 755 /var/www/cgi-bin/test.cgi

LAN内の端末に移動し、ブラウザを起動、サーバのIPアドレスにつづけて/cgi-bin/test.cgiへアクセスしてみる。

DOCUMENT_ROOT=”/var/www/html”
GATEWAY_INTERFACE=”CGI/1.1″
HTTP_ACCEPT=”text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8″
HTTP_ACCEPT_ENCODING=”gzip,deflate,sdch”
HTTP_ACCEPT_LANGUAGE=”ja,en-US;q=0.8,en;q=0.6″
HTTP_CONNECTION=”keep-alive”
HTTP_COOKIE=”PHPSESSID=tijh4jn3dmo433un1kh49ievo0; wfvt_1999777401=5440b1d12f101″
HTTP_HOST=”www.ekbt.net”
HTTP_USER_AGENT=”Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.104 Safari/537.36″
PATH=”/sbin:/usr/sbin:/bin:/usr/bin”
QUERY_STRING=””   

以下略

などと、CGIスクリプトが実行され、結果が表示されればOK。
その他、日本語表示を含む時刻を表示するサンプルCGIスクリプト

#!/usr/bin/perl
##
## printenv — demo CGI program which just prints its environment
##

$time = time; # time関数は1970年1月1日0時0分0秒から現在までの秒数を返す
$jtime = localtime(time); # 日本時間のget
$gtime = gmtime(time); # グリニッジ標準時間のget(日本時間と9時間差)

print “Content-type: text/html; charset=utf-8\n\n”;
print “testjp.cgi“;
print “1970年1月1日0時0分0秒からの現在までの秒数….$time
“;
print “<hr>”;
print “現在の日付時刻は

“;
print “日本時間:$jtime
“;
print “標準時間:$gtime
“;
print ““;

※Content-type: text/html; charset=utf-8は、サーバ本体で作成している場合。もしWindowsのShift_JISファイルをアップしたら Content-Type\” content=\”text/html; charset=Shift_JIS とする。

※cgiが実行できない場合、実行権限(パーミッション)の設定を確かめる。SELinuxを使用している場合、強制モードになっていたら、それを許容(SELinuxを切る、警告は表示される)にしてみる。
※許容でもダメなら、これはSELinuxのせいではない。ディレクトリやファイルのパーミッションやディレクトリ構造などをもう一度確認してみる。

※cgi実行時、cgiからのファイルの書き込みが出来ない場合がある。SELinuxを使っている場合、強制モードになっていたら、それを許容(SELinuxを切る、警告は表示される)にしてみると、書き込みOKとなる場合もある。
これで実行書き込みできれば、cgiよりの書き込みファイルがSELinuxの設定で書き込めない可能性がある。
cgi-binのディレクトリをhome以下に移動して、書き込まれるファイルのSELinuxの設定SELinux Contentをhttpd_user_rw_content_tにしてみる。
cgi格納フォルダーは、httpd_user_script_exec_tに
gifの画像データの格納フォルダーは、httpd_user_content_t、中のデータも同様にする。

サーバ停止

この前から、作っていた。ぼろサーバ改め新サーバが、突然止まった。MySQLにブログのデータを登録していた時、突然ハング。リセットも効かなくなった。強制的に電源を切って、再起動させようとしたところ、今度は起動しない。CPU … “サーバ停止” の続きを読む

この前から、作っていた。ぼろサーバ改め新サーバが、突然止まった。MySQLにブログのデータを登録していた時、突然ハング。リセットも効かなくなった。強制的に電源を切って、再起動させようとしたところ、今度は起動しない。CPUファンやHDDは通電して回るようだが、電源のLEDすらつかない。大変なことになった。マザーかCPUかどちらかか、もしくは両方飛んだようだった。
仕方が無いので、代替えでマザーとCPUを用意した。もともとは、ファイルサーバ用にと計画していた組み合わせだ。

・CPU INTEL Celeron 430 [1.80GHz/L2:512kB] Conore-L FSB:800MHz LGA775[35W] リテールBOX ¥3,480

・MB BIOSTAR G31-M7 TE Intel G31+ICH7採用 GMA 3100 VGA統合 MicroATXマザーボード ¥4,269

これまた、モデル末期の超低価格品の組み合わせ。なにしろメモリーがPC2なので、これをそのまま使いたいのと、サーバなので、余計な機能はいらないなあとBIOSTARの基本機能のみのものにしてみた。ちょっと時代遅れでもあるが。
メモリーはそのまま流用。これは問題なかった。HDDもそのままでも起動して、問題なさそうだったが、なにしろデータ書き込み時飛んだので、なんらかのダメージがあって、あとあとそれで問題が起こっても困るので、500GBのHDDは4,000円前後と安いので、ついでに交換した。なので、Fedora13からまたインストールしなおしになった。MySQLやPHPまでは設定していたので、ここまでは長い道のりだ。
消費電力は、起動時最大0.6A-0.5A、稼働平均0.4Aで、以前と殆ど同じか、負荷がかかった時はすこし低消費電力になったようだ。
BIOSTARにしたせいで、lm_sensorsでマザーの情報がとれなくなった。どうも対応できないみたい。CPUの温度らしきものは、なんとか出るが、まあしかたがないか。直接測ってみてもそれほど高温にはならないようだ。
原因はなんだろうと考えてみたが、どうもマザーがあやしい。そもそもこの壊れたマザーASUSのM4A785D-M、Phenom6コア最速CPUをがんがん動かしていた。また、turbokeyという簡単にオーバークロック出来る仕組みも持っている。また、PS2キーボードとPS2マウスが共有で1つになっている。まあ、最近はUSB経由でキーボード・マウスを使うことが多いので、いいのだが、たまたまPS2キーボードを使っていた。どれが、直接の原因かは分からないが、機能満載のMBでどれかがうまく動作しなくなったのだろう。となるとCPUは生きているかもしれない。まあそのうち、原因の究明もしよう。

ぼろサーバ改め新サーバの作成-その5

■サーバの電力測定 一応、インストールもすんで、動作も安定し、サーバの細かい設定に入ってきているので、サーバの電力を測定してみた。基本構成は、最初と同じだが、CPUは省電力仕様のX240eに変更してみた。 結果は定常時0 … “ぼろサーバ改め新サーバの作成-その5” の続きを読む

■サーバの電力測定
一応、インストールもすんで、動作も安定し、サーバの細かい設定に入ってきているので、サーバの電力を測定してみた。基本構成は、最初と同じだが、CPUは省電力仕様のX240eに変更してみた。
結果は定常時0.4A程度。電源投入時は1.0A。OS起動時0.6A。

◇電気代は、だいたいこのくらい(http://kunisan.jp/denki/で調べ)
種類: パソコン
消費電力: 40W(ワット)
1日あたりの使用時間: 24Hour(時間)
1日あたりの消費電力: 0.96kWh
1日あたりの電気代  : 21.12円
1日あたりのCO2(二酸化炭素)排出量: 0.36kg
都市ガス0.18m3、またはガソリン0.16リットルを燃焼させた時のCO2排出量と同等です。
1ヶ月あたりの消費電力: 28.8kWh
1ヶ月あたりの電気代  : 634円
1ヶ月あたりのCO2(二酸化炭素)排出量: 10.94kg
都市ガス5.58m3、またはガソリン4.72リットルを燃焼させた時のCO2排出量と同等です。
みごとに、Celeron 800MHz のサーバとほぼ同じ消費電力の、グリーンサーバになった。うふふ。

◇使用ハード
・CPU Athlon II X2 240e 2.8GHz 72℃ 45W L1:(64KB+64KB)×コア L2:1MB×コア

・マザーボード M4A785D-M PRO(ASUSTek)
・HDD  HDS721050CLA362 (500GB SATA300 7200)(HGST [日立グローバルストレージ])
・電源  ZU-360B(アビー [abee])

ぼろサーバ改め新サーバの作成-その4

■Sambaサーバの設定 まず、共有するディレクトリを作成。今回は、/varの中にsambaディレクトリを作成し、その中にshareディレクトリを作成し、そのディレクトリを共有する。まずは、そのディレクトリを作成。 gn … “ぼろサーバ改め新サーバの作成-その4” の続きを読む

■Sambaサーバの設定
まず、共有するディレクトリを作成。今回は、/varの中にsambaディレクトリを作成し、その中にshareディレクトリを作成し、そのディレクトリを共有する。まずは、そのディレクトリを作成。
gnomeからだと、varディレクトリを開き、そこで、「ファイル」->「フォルダー」と選択し、sambaディレクトリを作成。

そして、その中に、shareディレクトリを作成する。

できたフォルダーを右クリックして、プロパティを開き、アクセス権をnobodyに設定。

つづいて、Sambaサーバの設定。インストール時にサーバ設定ツールを入れていると、GUIで、設定できるツールがある。
「システム」->「管理」->「Samba」と選択。

すると、Sambaサーバの設定が出る。ツールバーの「+」をクリックして、共有するディレクトリを設定する。
メニューからなら、「ファイル」->「共有を追加」を選択

すると、「Samba共有の編集」が表示される。ここの「基本」タブで、先ほど作った共有用ディレクトリを「閲覧」ボタンをクリックして、設定。共有名を入れる。

続いて、今回、自由にアクセスできるファイルサーバとするので、「アクセス」タブで、「不特定多数のアクセスを許可する」を選択。

設定が終わったら、「OK」ボタンをクリック。
次に、メインメニューから、「プレファレンス」->「サーバ設定」を選び、「基本」タブで、Windowsのネットワークのワークグループを設定、「記述」は、分かりやすい名前などを入れておく。

次に、「セキュリティ」タブで。認証モードを「共有」、暗号化パスワードを「はい」、ゲストアカウントを「ゲストアカウントなし」に設定。「OK」ボタンをクリック。

これで、Sambaサーバの設定は終わり。
Sambaサーバは設定ツールを使うと設定後起動しているはず。
一応、サービスで、smbとnmbの起動の設定を確認しておく。
「システム」->「管理」->「サービス」と選択。

サービスの設定が出たら、smbとnmbの起動の設定が有効か確認する。

Windowsのマシンに移動して、ネットワークにSambaサーバが表示されているか確認する。
なお、WindowsVistaやWindows7で使われているホームグループではなく、WindowsXP時代からの、「共有」の設定になるので、「ネットワークと共有センター」の「共有の詳細設定」の「ホームグループ接続」で、「ユーザアカウントとパスワードを使用して他のコンピュータに接続する」に切り替えておく。もともと、WindowsXPとVistaや7で共有している場合は、この設定になっているはず。

■Windowsマシンから見えない。もしくは見えているが、中に入れない場合、ファイアーウォールやSELinuxの設定が必要かもしれない。
ファイアーウォールを使っている場合は。Samba用に穴をあける。
gnomeのディスクトップのメニューから、「システム」->「管理」->「ファイアーウォール」を選ぶ。

「ファイアーウォールの設定」が表示されたら、「信頼したサービス」をクリックし、サービスの中から「Samba」を探してチェックを入れる。

SELinuxを使っている場合は、その設定を行う。「システム」->「管理」->「SELinux Management」を選択。

SELinux管理者が表示されたら、「ブーリアン値」をクリック、「Module」の「samba Allow samba to share any file/directory read/write.」にチェックを入れる。