rpmでCentOS5.5に最新のPHP5.3.6、Mysql14.14を導入!


1ヶ月ぶりの更新となります。
お久しぶりです。

先日早稲田大学のキャンパスで行われた『Android Bazaar and Conference 2011 Summer』に参加してきました。
いやぁ、楽しかったですね・・・
詳細はまた後日、お伝えしますね!!

 

 

さて、本題に戻って最新PHP、Mysqlの導入ですね。
この度、このブログを提供しているWordPressの最新版がリリースされました。
更新しようとしたところ、PHPのバージョンエラーが・・・

どうやらPHP5.2.4以降のものを要求しているそうです。
しかし、このサーバーはPHP5.1.6
そりゃエラー吐きますわなw

 

まず、現状を見てみます。

[root@web ~]# php -v
PHP 5.1.6 (cli) (built: Mar 31 2010 02:44:37)
Copyright (c) 1997-2006 The PHP Group
Zend Engine v2.1.0, Copyright (c) 1998-2006 Zend Technologies

[root@web ~]# mysql --version
mysql Ver 14.12 Distrib 5.0.77, for redhat-linux-gnu (i686) using readline 5.1

案の定でした。

 
てなわけで更新です。

[root@web ~]# yum update php
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* addons: centos.tt.co.kr
* base: centos.tt.co.kr
* epel: ftp.kddilabs.jp
* extras: centos.tt.co.kr
* rpmforge: fr2.rpmfind.net
* updates: centos.tt.co.kr
Setting up Update Process
No Packages marked for Update

・・・あれぇ?
どうやら外部のリポジトリを登録せにゃならんようです。

 

Les RPM de Remiを登録しましょう

[root@web ~]# rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-5.rpm
http://rpms.famillecollet.com/enterprise/remi-release-5.rpm を取得中
警告: /var/tmp/rpm-xfer.8TKE13: ヘッダ V3 DSA signature: NOKEY, key ID 00f97f56
エラー: 依存性の欠如:
epel-release >= 5 は remi-release-5-8.el5.remi.noarch に必要とされています

あ、epelもいるのね。
じゃあ、2つを連続してインストールします。

[root@web ~]# rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm
http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm を取得中
警告: /var/tmp/rpm-xfer.zVp32l: ヘッダ V3 DSA signature: NOKEY, key ID 217521f6
準備中... ########################################### [100%]
1:epel-release ########################################### [100%]
[root@web ~]# rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
http://rpms.famillecollet.com/enterprise/remi-release-6.rpm を取得中
警告: /var/tmp/rpm-xfer.IkLo0u: ヘッダ V3 DSA signature: NOKEY, key ID 00f97f56
準備中... ########################################### [100%]
1:remi-release ########################################### [100%]

rpmは更新されるので、最新版は以下で確認してください。
http://download.fedora.redhat.com/pub/epel/5/i386/
http://rpms.famillecollet.com/enterprise/

 

ようし、アップデートの準備完了!
いざっ

[root@web ~]# yum --enablerepo=remi update php

---略---

Transaction Check Error:
file /etc/my.cnf from install of mysql-libs-5.5.14-1.el5.remi.i386 conflicts with file from package mysql-5.0.77-4.el5_5.4.i386
file /usr/share/mysql/charsets/Index.xml from install of mysql-libs-5.5.14-1.el5.remi.i386 conflicts with file from package mysql-5.0.77-4.el5_5.4.i386

---以下略---

 

あ、Mysqlを先に更新しろということですね、はい

[root@web ~]# yum --enablerepo=remi update mysql
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* addons: centos.tt.co.kr
* base: centos.tt.co.kr
* epel: ftp.kddilabs.jp
* extras: centos.tt.co.kr
* remi: remi-mirror.dedipower.com
* rpmforge: fr2.rpmfind.net
* updates: centos.tt.co.kr
Setting up Update Process
Resolving Dependencies

---略---

Dependencies Resolved

======================================================================================================================================
Package Arch Version Repository Size
======================================================================================================================================
Updating:
mysql i386 5.5.14-1.el5.remi remi 7.5 M
Installing for dependencies:
libedit i386 20090923-3.0_1.el5.rf rpmforge 262 k
mysql-libs i386 5.5.14-1.el5.remi remi 1.1 M
mysqlclient15 i386 5.0.67-1.el5.remi remi 1.3 M
Updating for dependencies:
mysql-server i386 5.5.14-1.el5.remi remi 12 M
php i386 5.3.6-4.el5.remi remi 1.3 M
php-cli i386 5.3.6-4.el5.remi remi 2.6 M
php-common i386 5.3.6-4.el5.remi remi 970 k
php-mbstring i386 5.3.6-4.el5.remi remi 2.3 M
php-mysql i386 5.3.6-4.el5.remi remi 148 k
php-pdo i386 5.3.6-4.el5.remi remi 113 k

Transaction Summary
======================================================================================================================================
Install 3 Package(s)
Upgrade 8 Package(s)

---略---

Dependency Installed:
libedit.i386 0:20090923-3.0_1.el5.rf mysql-libs.i386 0:5.5.14-1.el5.remi mysqlclient15.i386 0:5.0.67-1.el5.remi

Updated:
mysql.i386 0:5.5.14-1.el5.remi

Dependency Updated:
mysql-server.i386 0:5.5.14-1.el5.remi php.i386 0:5.3.6-4.el5.remi php-cli.i386 0:5.3.6-4.el5.remi
php-common.i386 0:5.3.6-4.el5.remi php-mbstring.i386 0:5.3.6-4.el5.remi php-mysql.i386 0:5.3.6-4.el5.remi
php-pdo.i386 0:5.3.6-4.el5.remi

Complete!

・・・見てるとPHPも更新してくれてますね。

 
バージョン見てみましょう。

[root@web ~]# php -v
PHP 5.3.6 (cli) (built: May 16 2011 19:18:00)
Copyright (c) 1997-2011 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2011 Zend Technologies
[root@web ~]# mysql --version
mysql Ver 14.14 Distrib 5.5.14, for Linux (i686) using readline 5.1
[root@web ~]# service httpd restart
httpd を停止中:
httpd を起動中:

おkですね。
これでWordPress3.2.1導入できました。

これからもよろしくお願いします~

Redirectお願いします


一般の方には公開していません(アクセスはできますw)が、このサーバーを公開する前までは『Windows Home Server君(以下WHS)』を使って便利にリモートアクセス生活を送っていました。
 

そんなある日、このサーバーを導入したがため、WHSはポートを割り振られずどこか隅に追いやられちゃったんですね(ゴメンネ)
しかし、うちのクラスで文化祭の台本のデータを共有するという話になったため、久しぶりにWHSが出てくることになりました。
 

うちのネットワークは1回線のみの契約です。
なので、いざページを複数公開しようとするとロードバランサを使用するか、ポートを分けなればなりません。
 

まぁ、受験生にそんなに時間はないんです。
ロードバランサなぞを導入してる暇があったら問題集一章は終わらせられますw
てなわけで、ポートを分けることにしました。

 
今までWEBメールが動いていたためポート443はSquirrelMailに利用してたので、WHSのSSLはどっか別の『Unwell-Known Port』とでも言いましょうか、ポート543に割り振りました。
まあ後は、Apacheのサービスと競合しないように、間違ったポートで飛んできたアクセスを一度リダイレクトさせます。
/etc/httpd/conf/httpd.conf のVirtualHostのところに

ServerName shift-crops.homeserver.com
Redirect / https://shift-crops.homeserver.com:543/

と書き入れ終了です。

 

しかし、現実はそんなに甘くなかった・・・
学校のサーバーはプロキシを通して外部へのアクセスが可能になっています。
なので、そんなわけの分からないポートにはアクセスがリジェクトされるのですorz
他の使ってないWell-Known Portなどで試してみましたが見事に返り討ちにあいましたww

 

仕方がないので、使用頻度のそこまで高くないSquirrelMailが移籍決定です。
webmailをマイナーなポートに移し、WHSに天下の443をプレゼント
見事にアクセスできました。
その際、/etc/httpd/conf/httpd.conf の書き換えも忘れずに。。。

 

てなわけで、なんとか無事に皆さんに使っていただいてるわけで、これからもApacheさんにRedirectお願いしますっ!

RAID構築失敗orz


前期中間考査も終わり一息ついていたころ、遂に前々から楽しみにしていたUPSを導入することになりました!

omron製のUPS、BY50Sです。

なんかUPSといえばAPCっていう固定観念があったんですけど、よくよく見比べてみると、自動シャットダウンのような様々な機能が充実してるのはこっちかな・・・ みたいに思いましてこちらに決定いたしました。

このサーバーのホストOSはWindows Hyper-V Server 2008なわけで、結局のところ導入できるかは不安のままだったんですけど、電源管理ソフトはコマンドラインからファイルを指定してあっさり導入完了!

ちゃんと全ての動作を確認できました♪

ここで調子に乗っちゃったのがいけなかったんです。反省してます。

このサーバーを立てるときに、実は2TBの同種のHDDを2つ購入してたのです。
しかし、一つは今まではずっと使わずに引き出しの中で寝てたわけです。
そこで、せっかくだからRAID1を導入して冗長性を持たせよう!と考えてしまったのです。
ここからが悪夢の始まりです。

まず、二台のHDDを接続してBIOSから『PCH SATA Control Mode』でRAIDを有効にします。

再起動してPOSTメモリテスト後、OSが起動する前にCtrlキーとl(エル)キーを押してRAID設定画面に入ります。

するとこのような画面に入るので、『Create RAID Volume』を選択し、

RAID Levelを『Recover』を選択・・・と思っていたら、エラーです。
1.3TB以下じゃないとダメだと怒られてしまいましたorz
(画像はマニュアルから引っ張っているので容量が異なります。)

仕方が無いので、RAID1を構築しようと思ったらう~ん。よくよく考えれば当たり前の話ですよね・・・
逆に、なんで今まで頭が回らなかったので不思議なくらい。

てなわけで、一旦リブートして全ての仮想サーバーを別のHDDにエクスポート。
その後再挑戦です。

 

 

なんとかRAID1を構築し、もっかいHyper-V Serverをインストールしようとしたら・・・

ドライバが見つかりませんですか、はい
まあ、これは予想の範疇にあったので、予め用意したマザーボードのドライバCDを挿入!

 

・・・え、ダメ?
そんなら、メーカーのHPから最新のドライバをダウンロード~

 

 

・・・え、ダメ?

 

 

 

・・・・・え??

 

 

そんなこんなで4時間ほど戦った結果、遂に私は・・・

敗れましたw

設定を元に戻し、再インストールを試みるもドライバが見つからない状態は治らず。
CMOSリセットをかけても状態は治らず。
・・・なんで?

ここで最後の手です。
ほかのPCとHDDを接続。

インストールを試みると、あっさり成功!

ブートも問題なくできました。

結局元に戻っただけorz

まぁ、そんなこんなで色々大変だったけれども、現在はこの通りしっかりと動いてますので、今後ともよろしくお願いしますw

 

改:WordPressでmixi,twitterつぶやき、他諸々


前回の記事でmixiチェックやtwitterへつぶやきするボタンの設置の話をしましたが、もっと簡単な方法がありました。
そんなプラグインの名は「WP Social Bookmarking Light」です。

WordPressの設定画面からインストールする場合は、
「http://あなたのブログ/wp-admin/plugin-install.php?tab=plugin-information&plugin=wp-social-bookmarking-light」
で詳細が見れますよ~

これをインストールするだけで、あら不思議。
簡単に記事にボタンを設置することができます。
あの苦労は一体...orz

しかし、mixiに関してはキーの取得はどちらにしろ必須です。
こんな感じ

1、mixiデベロッパー登録を行います。

2、Developer Dashboard にログインし、「mixi Plugin」→「新規サービス追加」をたどります。

3、ブログの登録をします。ここで「URL許可リスト」のドメインを間違えると、後々『不正な投稿内容のため、チェックできません』ってなります。

WP Social Bookmarking Lightをインストールして、有効化したら左の「設定」⇒「WP Social Bookmarking Light」を押しましょう。

こんな画面になります。

あとは、選択したいものを右からドラックして移すだけ。

mixiのキーは一般設定の隣に打つ欄があります。

WordPressでmixiチェック、twitterつぶやきできます!


この記事内容は更新されました。
くわしくは「改:WordPressでmixi,twitterつぶやき、他諸々

最近は『Twitter』とか『mixi』とか、様々なSNSが存在し、皆さんも日々使っていると思います。
そんな時代の波に対応すべく、わがブログにもつぶやきボタンを設置することにしました。
まずはmixiから
1、mixiデベロッパー登録を行います。

2、Developer Dashboard にログインし、「mixi Plugin」→「新規サービス追加」をたどります。

3、ブログの登録をします。ここで「URL許可リスト」のドメインを間違えると、後々『不正な投稿内容のため、チェックできません』ってなります。

4、wordplessをインストールしているディレクトリに移動します。

[root@web ~]# cd /var/lib/wordpress/wp-content/plugins/

5、mixi check for wordpress プラグインをダウンロードします。

[root@web plugins]# wget https://github.com/downloads/takimo/mixi-check-for-wordpress/mixi-check-for-wordpress-1.2.1.zip --no-check-certificate
--2011-05-29 21:04:57--  https://github.com/downloads/takimo/mixi-check-for-wordpress/mixi-check-for-wordpress-1.2.1.zip
github.com をDNSに問いあわせています... 207.97.227.239
github.com|207.97.227.239|:443 に接続しています... 接続しました。
警告: 証明書に記載されている名前 `*.github.com' とホスト名 `github.com' が一致しません
HTTP による接続要求を送信しました、応答を待っています... 302 Found
場所: http://cloud.github.com/downloads/takimo/mixi-check-for-wordpress/mixi-check-for-wordpress-1.2.1.zip [続く]
--2011-05-29 21:04:58--  http://cloud.github.com/downloads/takimo/mixi-check-for-wordpress/mixi-check-for-wordpress-1.2.1.zip
cloud.github.com をDNSに問いあわせています... 216.137.53.58, 216.137.53.111, 216.137.53.117, ...
cloud.github.com|216.137.53.58|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK

長さ: 4952 (4.8K) [application/octet-stream]

`mixi-check-for-wordpress-1.2.1.zip' に保存中
100%[===================================================================================================================>] 4,952       --.-K/s 時間 0.01s
2011-05-29 21:04:58 (382 KB/s) - `mixi-check-for-wordpress-1.2.1.zip' へ保存完了 [4952/4952]

6、解凍します。

[root@web plugins]# unzip mixi-check-for-wordpress-1.2.1.zip
Archive:  /tmp/mixi-check-for-wordpress-1.2.1.zip
extracting: mixi-check-for-wordpress-zip/m_icon.png
inflating: mixi-check-for-wordpress-zip/mixi-check.php

7、ダウンロードしたファイルを削除

[root@web themes]# rm mixi-check-for-wordpress-1.2.1.zip
rm: remove 通常ファイル `mixi-check-for-wordpress-1.2.1.zip'? y

8、WordPress管理画面のプラグインで「mixi check for wordpress」を有効化します。

9、左のメニューに『mixiチェック』が表示されるので、設定を選択して「mixiチェックキー」欄に発行されたキーを入力。ボタンを選択して保存です。

10、mixiチェックの「埋め込みコード」を選択して、指示に従います。一部のテーマを使用していると、単一記事の投稿(single.php)が存在しない物もありますが、あわてずにメインインデックスのテンプレート(index.php)を覗いて、

<div class="postBody">
<?php
<!-- ここらへん -->
the_content();
<!-- 他諸々 -->
?>
</div>

に追加してあげてください。

次、twitterです。
1、themes内にimagesディレクトリ作成

[root@web plugins]# mkdir ../themes/images

2、imagesディレクトリに移動します。

[root@web plugins]# cd ../themes/images/

3、twitterアイコンをダウンロード。(下記は例です)

[root@web image]# wget http://moesoyo.com/wp-content/uploads/2009/12/a953d1ef066e3be0d235084e4658cf61.png
--2011-05-29 21:46:12-- http://moesoyo.com/wp-content/uploads/2009/12/a953d1ef066e3be0d235084e4658cf61.png
moesoyo.com をDNSに問いあわせています... 219.94.192.30
moesoyo.com|219.94.192.30|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 1233 (1.2K) [image/png]
`a953d1ef066e3be0d235084e4658cf61.png' に保存中

100%[===================================================================================================================>] 1,233 --.-K/s 時間 0.001s

2011-05-29 21:46:12 (1.57 MB/s) - `a953d1ef066e3be0d235084e4658cf61.png' へ保存完了 [1233/1233]

4、アイコンの名前を変更

[root@web images]# mv a953d1ef066e3be0d235084e4658cf61.png twitter.png

5、先ほどのところに以下のタグを埋めます。

<div class="postBody">
<?php get_the_mixi_check_button_code(); ?>
<a href="http://twitter.com/home?status=ShiftCrops 開発ブログ <?php the_title() ?> - <?php the_permalink() ?>"><img src="http://blog.shift-crops.net/wp-content/themes/images/twitter.png" width="53" height="21" style="border: none; vertical-align:middle;" alt="この記事をTwitterでつぶやく" title="この記事をTwitterでつぶやく" /></a>
<?php
the_content();
<!-- 他諸々 -->
?>
</div>

以上終了!
色々大変なところはありますが、これでおしまいです。

これはバグかな・・・?


うちのサーバーはメール用とWEB用、さらにNAPT用など、全部で5つに分かれています。

(うち2台はお休み中)

この度部活動等の関係でウェブ用にmailmanを導入するうえで、一部のドメイン宛のメールをWEB用サーバーに転送するようにpostfixを設定しました。

無事、外部からの投稿もでき、これでOKかな?と思ったのですが・・・

肝心の内部から外部にいけない。

 

ほい、tailf /var/log/maillog

んと、なになに?

【Sender address rejected: Domain not found (in reply to RCPT TO command)】

あ、WEB用のsendmailのマスカレード書き換え忘れてたわ

 

MASQUERADE_AS(`webmail.shift-crops.net')dnl

ん?今度は・・・

450 4.1.8 <***@webmail.-crops.net>

shiftがごっそり抜けておるorz

 

何これ?

『shift』が抜けると思って

MASQUERADE_AS(`webmail.sshifthift-crops.net')dnl

ってやると

450 4.1.8 <***@webmail.sshifthift-crops.net>

 

もうsendmailわけ分からん。

ShiftCrops製作開始!


今日はShiftCropsのページの製作を開始しました。

はっきり言って、HPの製作はかなりの初心者です。なので、まずは普通にタグ打ちして、あとでスタイルシート適用しようっていう感じです。

・・・まぁ、大変ですよね。

いろいろな人のページを拝見させてもらいながら、本日700分かけて組みました。

でもちょっとお粗末かもorz

トップページができれば、あとはPHPにぶち込んでリクエストに応じて動的にページをリンクさせれば良いだけ、と思ったのですが、ここで問題発生。

どうやればいいの??

ここで、頼みの大先生Mineさんに質問です。

回答は単純明快!

if(isset($_GET['hoge']))とか、elseif とかでreqire

はい、終了です。

まだまだ完成はしていませんが、一部公開したので、詳しくはコチラ

ひと段落


ひとまず基本的なサーバー構築は終了しました!

HTTPサーバーにSMTPやIMAPサーバー、ほかにも内部向けにCSVを立てたりなどなど・・・

というわけで、せっかくWEBサーバーの役割をしてくれているのならとブログもこちらに移行することにしましたぁ~

まだ昔のブログも公開されてはいますが、これからはこちらを中心にしていこうと思います。

 

そういえば、未だにwwwのほうにアクセスしようとすると別のページにリダイレクトされるようになっていますが、あれは将来的に別のページを作るための穴埋めですw

いつかPHPでちゃんと立派なページつくるぞー(おーー!!)

サーバー構築中・・・


ただいま先日買ってきたサーバーに色々詰め込んで、新しいサイト構築中です。
多分ブログもそっちに移すかもです。
できたら報告しますね。

そういえば、あのDDNSとDNSの併用意外といけますね!
ちゃんとメールも外部と互換的に通信できますしね♪

でも、このごろ勉強しろと親に怒られますorz
いい具合に構築したら放置になるかもです・・・・

やっと構築Hyper-V


どうもです。
このごろは忙しくて全然更新してませんでした(汗)
多分こんな感じで続けていく気もしますが、どうぞ宜しくお願いします。

で、なんでこのごろ忙しかったのかというと、新しくサーバーを立てていたのです
何を今更、と思うかもしれませんが、実は私は今まで「Windows Home Server」君に頼っていたため、サーバー管理とかいうことを行ったのは皆無に等しいのですorz

で、テストも終わり地震もひとまず落ち着いたところで、いざアキバへ再出陣!
こんなパーツたちを買ってきました~
しめて95,000円でした。
てか、実を言うとメモリ多く買いすぎたorz
MB見たらスロット2つしかなかったし。

なんか10kg越えのこいつらを秋葉原駅まで運び、途中飯田橋駅で乗り換え、多摩川駅から自宅まで運ぶ・・・・死ねます。てか次の日体中筋肉痛でしたww

組み立て、組み立て

ほい、完成
 

因みに、裏はこんな感じ
よくよく見ると、ちゃんとLANポート2つ積んでます。
ちょっと本格的に頑張ろうかと思ってます。
一応こいつの中には「Windows Hyper-V Server 2008 R2」とかいう無料のありがたいOSを入れて、そのなかじゃせんとくん、もといCentOS君が4台ほどがんばってくれています。

なぜそんなに多くの仮想サーバー走らせてるのか、、、自分でも分かりません。
でも、ちゃんと役割は分けてます。
内部セグメントのゲートウェイ兼DHCP、DNS、WEB、SMTP兼POPで四つです。

ここで、ちょっと馬鹿なことをしてる俺。
固定IP無いじゃんorz
てな訳で、DNSは内部用決定で外からはDDNSだな。

さてさて、すべてが順調と思えていたところに暗雲が立ち込めました。
WEBサーバーです。
Apacheのインストールも終わり、内部ネットワークからは異常なくアクセスできます。
が、なんだか外から来たアクセスに対する動作がおかしい??
iptstateによると、『Source:相手、Destination:自分のローカルアドレス、Proto:tcp』まあここまでは問題ないです。
おかしいのはその次、『State:SYN_SENT』?????
あの、あなたサーバーですよね?
勿論正常なアクセスは出来ず、ページは表示できませんorz

色々試行しましたよ。
iptables弄っても分からんからいっそのこと止めてみたり、Macアドレス変えてルーター飛ばしてONUから直接グローバルIPもらったり・・・(あ、例を2つ同時にはしてませんよ?危なすぎるww)
でも分かんなかったんですよ。。。。

そして本日、もうやけです。
WEBサーバー再インストール。
Apacheインストール。
いざ、アクセス⇒すんなり表示。

・・・・俺の苦労何だったの?
相談に乗ってくれたMineStudioさん、どうもありがとうございました。そしてごめんなさい。

いまでも原因わかんないのよね~
ネットワークセキュリティやる人にとってあるまじき
ということで、なんとなく原因に予想がつく人、是非ご教授願いたいっ!!