別マシンへHDDを移す時につまずいたメモ
やろうとした事
以前に、Wordpressの過剰カテゴリで重くなってたWebページですが、カテゴリ数を減らす事でかなり軽くなりました。とは言え、nginx+FastCGIのWebサーバにするなど、まだやるべき事はたくさんありますが、現状で大きく問題ないので、CeleronのCPUマシンから、せっかく持ってるXeonのCPUマシンへHDDを移したいと思います。積んでるメモリは同じなので、ほぼCPUのパワーアップという形です。その時につまずいた事をメモしておきます。
ネットワークに繋がらない
HDDを別のマシンに移すとネットワークが繋がらなくなりました。Windowsではこの辺りの変更は勝手にやってくれそうですし、Linuxでもやってくれそうなものですが、僕の手順が悪かったのかネットワークに繋がりませんでした。以前もネットワークに繋がらないという事がありましたが、それはBIOSの設定でLANをDisabledにしていたせいでした。今回は、そこがEnableにしているので、関係ありません。次に、まあいろいろ試行錯誤するわけですが、
[root@kurosaba ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
で、どういう設定になってるのか見てみると、どうもMACアドレス(HWADDR)が怪しい。。。ということで、
LANのMACアドレスを調べるべく、dmesgコマンドを実行。eth0と書かれた行にありました。
これを先ほどのcatで表示させたファイルを編集して、
# /etc/init.d/network restart
で、再起動してやると、繋がりました。
BIOS設定画面に入れない
これはHDDを移す作業とは関係ない上、ちょっと話が前後しますが、上記のMacアドレスを探る前に、BIOSの設定を見ておこうとマシンの電源ON後に何かしらキーを押して設定画面に入るわけですが、一瞬すぎて何キーを押して良いのか見れないwww
という問題が発生しました。F6だとかっていうキー自体はなんとなく見えるのですが、それが何をするキーなのか読めませんw何度か再起動させましたが、キーを見てから押すじゃ遅いようで。。。。
G41C-GSというマザーボードなのですが、以前からこんなに速かったっけと。。。。というわけで、メーカーサイトでマニュアルをダウンロード
・ASRock > 製品紹介 > G41C-GS > マニュアルのダウンロード
http://www.asrock.com/mb/manual.jp.asp?Model=G41C-GS
Chapter3 BIOS SETUP UTILITYという項目に、F2 or Delとあったので、マシンの電源を入れると同時くらいにDelキーを連打したら入れました(´o`;)
まぁ、BIOSの画面に入るのなんてある程度キーが決まってるのかもしれませんが、予想外の所で手こずってしまいました。Windows等の事を考えたら、BIOSなんて触る事もないだろうし、逆に知らない人に触ってほしくないって事で、一瞬なのかもしれませんが、前からこんな調子だったっけ?と。。。
CentOS + byobu + Teratermできた所まで
以前Qiitaにまとめられてたありがたい記事
・【まとめ】これ知らないプログラマって損してんなって思う汎用的なツール 100超 #PHP #JavaScript #Python #Ruby #HTML - Qiita
http://qiita.com/items/2183WindowsのSSHは PuTTY 派なんですが、人にすすめるのは Poderosa ですね。
ずっとTeraterm使ってきて特に問題もなかったので、SSHクライアントを変更しようと思ってませんでしたが、どうやらトレンドは違うのね…という事で、PuTTYとPoderosa(ポデローサ?)を入れて試してみました。Poderosaの方がウィンドウが分割表示したりして、使いやすいと思ってました。しかし、うーん、どうも、
- lsコマンドの結果が頼んでもないのに縦並び
- ウィンドウをバックグラウンドとかに放置してるとブラックアウトしてる
- なんか縦に間延びしてる
- 気に入らない接続はエラーもは吐かずパンッって消える
など、このじゃじゃ馬を飼い慣らすのに時間かかりそう……そんなわけで、やっぱりTeratermが落ち着くということで戻っておりましたが、やっぱりウィンドウ分割の味を知ってしまってからは、どうしても欲しい機能となってしまいました。分割表示(仮想端末)にはscreenというのがあるのですね。今更ながら。先ほどのまとめサイトにも載ってました。
screen
byobu
tmuxscreen/tmux がとっつきにくいという向けにはbyobu がお勧めです.
とりあえず困らない設定になっています.
サーバ側にインストールしなきゃいけないので、どこの環境でもとはいきませんが、とっつきやすいと噂のbyobu(屏風)を入れてみたいと思います。CentOSに。
環境
- クライアントマシン:Windows7
- Teraterm : 4.72
- CentOS 5
- byobu : 4.49
インストール
まずは、GNU Screenをインストールしておく
$ yum -y install screen
Wordpressのカテゴリーが過剰に増えて激重サイトになってた仮説の検証
検証に使用したマシンスペック
| スペック | |
| CPU | Xeon3050 |
| メモリ | DDR2 2GB |
| HDD | 40GB 5400 rpm |
| OS | CentOS 6.2 x86 64bit |
| PHP | 5.3.3 |
| MySQL | 5.1.61 |
| Wordpress | 3.1.2 |
重いサイトについて
既に、運用しているWordpressのサイトのレスポンスが劇的に重いと掲載しました。
・Linux CentOS低予算自宅サーバ奮闘メモ ApacheBenchを使ってWordpressで公開しているページのパフォーマンス測定
http://centlinuxer.blog37.fc2.com/blog-entry-66.html
・Linux CentOS低予算自宅サーバ奮闘メモ 新しいサーバでwordpressにApacheBenchを試してみた
http://centlinuxer.blog37.fc2.com/blog-entry-75.html
いずれも、siteBという表記で記載しているサイトの事ですが、何が原因でサイトが重いのか?の犯人特定にまでは至っていませんでした。
前回も記載しましたが、検証用のサーバでApache Benchを試してみたところ、
# ab -c 1 -n 10 http://siteB.info/
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking siteB.info (be patient).....done
Server Software: Apache
Server Hostname: siteB.info
Server Port: 80
Document Path: /
Document Length: 2173881 bytes
Concurrency Level: 1
Time taken for tests: 52.878 seconds
Complete requests: 10
Failed requests: 0
Write errors: 0
Total transferred: 21740790 bytes
HTML transferred: 21738810 bytes
Requests per second: 0.19 [#/sec] (mean)
Time per request: 5287.777 [ms] (mean)
Time per request: 5287.777 [ms] (mean, across all concurrent requests)
Transfer rate: 401.52 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.1 0 0
Processing: 3796 5287 4636.3 3825 18482
Waiting: 3603 5086 4612.0 3631 18212
Total: 3796 5287 4636.5 3825 18483
Percentage of the requests served within a certain time (ms)
50% 3825
66% 3832
75% 3847
80% 3858
90% 18483
95% 18483
98% 18483
99% 18483
100% 18483 (longest request)
同時アクセス数:1
連続アクセス数:10
というアクセスに対して、Time taken for tests: 52.878 secondsと言う事で、1ページあたり5秒程度待ってくださいという散々たる結果でありました。wordpressの管理画面を開いてみると。
※管理画面を開くのは比較的素早く開く。
バカみたいにカテゴリーが入っている。このカテゴリーはプログラム的に自動的に突っ込んでるわけですが、とにかく多い。そいうワケで、このカテゴリーが怪しいので、カテゴリーを全消去した後にApache Benchで計ってみたいと思います。
新しいサーバでwordpressにApacheBenchを試してみた
前回、
・ApacheBenchを使ってWordpressで公開しているページのパフォーマンス測定
http://centlinuxer.blog37.fc2.com/blog-entry-66.html
旧サーバのサイトBが致命的にレスポンスが悪いという事で、レスポンス改善対応を行うべく、新サーバに実験用のWebサーバを立てました。ちなみに、新サーバは旧サーバよりCPU性能がかなり良いです。
| 旧サーバ | 新サーバ | |
| OS | CentOS 5 32bit | CentOS 6.2 x86 64bit (必要最低限インストール) |
| CPU | Intel Celeron420 | Xeon3050 |
| メモリ | DDR3 2GB | DDR2 2GB |
| PHP | 5.1.6 | 5.3.3 |
| MySQL | 5.0.22 | 5.1.61 |
PHPとMySQLのバージョンが違いますが、旧サーバ計測当時のバージョンです。今は新サーバと同じバージョンで、レスポンス的にさほど変らないかと。。
新サーバ:サイトBの場合(激重サイト)
前回と同じ条件でサイトBのレスポンスを計ってみたいと思います。
同時アクセス数:1
連続アクセス数:10
※重すぎてレスポンスが返ってこないのでこの数字
# ab -c 1 -n 10 http://siteB.info/
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking siteB.info (be patient).....done
Server Software: Apache
Server Hostname: siteB.info
Server Port: 80
Document Path: /
Document Length: 2173881 bytes
Concurrency Level: 1
Time taken for tests: 52.878 seconds
Complete requests: 10
Failed requests: 0
Write errors: 0
Total transferred: 21740790 bytes
HTML transferred: 21738810 bytes
Requests per second: 0.19 [#/sec] (mean)
Time per request: 5287.777 [ms] (mean)
Time per request: 5287.777 [ms] (mean, across all concurrent requests)
Transfer rate: 401.52 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.1 0 0
Processing: 3796 5287 4636.3 3825 18482
Waiting: 3603 5086 4612.0 3631 18212
Total: 3796 5287 4636.5 3825 18483
Percentage of the requests served within a certain time (ms)
50% 3825
66% 3832
75% 3847
80% 3858
90% 18483
95% 18483
98% 18483
99% 18483
100% 18483 (longest request)
Time taken for tests: 52.878 secondsと言う事で、10件の連続アクセスを約52秒で返してきました。CPU性能や、他に作業中のプロセスが動いていないなどの影響から、20秒近くこちらの方が速いです。でも、サイトにアクセスしてページが表示されるまでの時間を考えるとCPUの性能だけではまだまだ遅いです。ここから、改善策を講じて一桁台までもっていけたらと妄想しています。
新サーバ:サイトCの場合(プレーンなWordpress)
参考までにwordpressをインストールしただけの場合の速度も計ってみたいと思います。ちなみに、wordpressのバージョンは3.3.1です。
同時アクセス数:1
連続アクセス数:10
# ab -c 1 -n 10 http://siteC.info/
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking siteC.info (be patient).....done
Server Software: Apache
Server Hostname: siteC.info
Server Port: 80
Document Path: /
Document Length: 7547 bytes
Concurrency Level: 1
Time taken for tests: 2.433 seconds
Complete requests: 10
Failed requests: 9
(Connect: 0, Receive: 0, Length: 9, Exceptions: 0)
Write errors: 0
Total transferred: 77654 bytes
HTML transferred: 75434 bytes
Requests per second: 4.11 [#/sec] (mean)
Time per request: 243.252 [ms] (mean)
Time per request: 243.252 [ms] (mean, across all concurrent requests)
Transfer rate: 31.18 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.0 0 0
Processing: 233 243 3.7 245 247
Waiting: 233 243 3.6 245 246
Total: 233 243 3.7 245 247
Percentage of the requests served within a certain time (ms)
50% 245
66% 245
75% 245
80% 246
90% 247
95% 247
98% 247
99% 247
100% 247 (longest request)
Time taken for tests: 2.433 secondsでテラ速いw約1/26のレスポンスという事で。。。
wordpressをいかに間違った使い方をしているかわかりますね。。
次は、前回のサイトAと同じ条件での計測です。
同時アクセス数:10
連続アクセス数:100
# ab -c 10 -n 100 http://siteC.info/
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking siteC.info (be patient).....done
Server Software: Apache
Server Hostname: siteC.info
Server Port: 80
Document Path: /
Document Length: 7542 bytes
Concurrency Level: 10
Time taken for tests: 13.667 seconds
Complete requests: 100
Failed requests: 67
(Connect: 0, Receive: 0, Length: 67, Exceptions: 0)
Write errors: 0
Total transferred: 776606 bytes
HTML transferred: 754406 bytes
Requests per second: 7.32 [#/sec] (mean)
Time per request: 1366.699 [ms] (mean)
Time per request: 136.670 [ms] (mean, across all concurrent requests)
Transfer rate: 55.49 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 1 5.1 0 27
Processing: 538 1338 200.4 1354 2359
Waiting: 538 1336 200.4 1349 2359
Total: 538 1340 201.8 1354 2386
Percentage of the requests served within a certain time (ms)
50% 1354
66% 1367
75% 1374
80% 1385
90% 1409
95% 1563
98% 1995
99% 2386
100% 2386 (longest request)
Time taken for testsについて、サイトAが119秒だったのに対して、サイトCは13秒と圧倒的速さ。。。。w
連続アクセス数等の数字が増えれば、よりCPUの性能の違いが出るでしょうが。。
これらを基準に、サイトCは我が自宅サーバにおける理想郷の速さという事で、サイトB(激重サイト)のレスポンス改善を行っていきたいと思います。
Kernel panicで僕もパニック(゚Д゚≡゚Д゚)?
何か再起動したら、SSHが繋がらなくなったので、Linuxとディスプレイをつないだら、
Kernel panic - not syncing: Attempted to kill init!
いきなりどういう事だってば。。。
事の発端は、最小構成でインストールしたCentOSにApacheをインストールして、port80も開けているが、Windowsマシンからアクセスできない。errorログを見たら、
[Thu Feb 23 00:56:51 2012] [notice] SELinux policy enabled; httpd running as context system_u:system_r:httpd_t:s0
[Thu Feb 23 00:56:51 2012] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Thu Feb 23 00:56:51 2012] [notice] Digest: generating secret for digest authentication ...
[Thu Feb 23 00:56:51 2012] [notice] Digest: done
[Thu Feb 23 00:56:52 2012] [notice] Apache/2.2.15 (Unix) DAV/2 PHP/5.3.3 configured -- resuming normal operations
何かSELinuxの影響かと思い、どうせLAN内で動かすのだからとりあえずOFFっておくかという事で、
# vi /etc/selinux/config
SELINUX=disabledSELINUXTYPE=disabledをセットして、再起動したらこの有様ですよ。というかセットする項目間違ってる!うんともすんとも言わないので再度ログインして上記configファイルを修正するわけにもいかない。
ググってみたら、どうやら設定が足りなかったのか、こちらに起動方法が乗ってました。
・SELinuxの小技
http://tomo.ac/goodstream/selinux/tips.html#SELinuxの有効無効を起動時に指定して起動する方法
電源を入れて、起動時に「Booting CentOS ~」と表示される瞬間に、
Enter等押せば、GRUBの起動画面が出てきます。ぼやけててスマセン。
ここで「e」を押し、続いて表示される画面のkernelを選択して「e」を押します。
そこの末尾に、
selinux=0
と入力すればおk。ちなみに、「=」は「^」のキーを押さないと出ません。これでEnterを押して、「b」キーあたりにbootが割り当てられているので、押下してbootするとなんとか起動に成功(;^_^A
tail –f のログのエラー行に色を着けたい
ログに色を付けるなど、端末のソフトウェアにそういうオプションが実装されてるかどうかの問題だと思ってましたが、コマンドでいけるようです。まぁそういう機構が実装されてるから色が出るんでしょうけど。ググってみると、
・Apacheログに色を付けて快適tail生活 - y-kawazの日記
http://d.hatena.ne.jp/y-kawaz/20110713/1310532417
これが探し求め…え!?これなにやってるの?状態で。上記にも書きましたが、端末ソフトのオプションで設定できるという頭なので、これドコの端末よ??
こんなブログを立ち上げておきならが、そんな事も知らねーのか!と怒られそうですが…こちらにヒントが。
・Hunting Field: そのログ、色つきでtailしたくないですか?
http://kokukuma.blogspot.com/2011/12/tail.htmlディスプレイに文字を表示する際のエスケープ。 つまり、今自分が使っているターミナルが、 受け取った文字列を表示する際の制御文字みたいなものらしい。 ANSI エスケープシーケンスを使うと、色を変えるだけでなく、 コマンドラインの表示をいろいろカスタムできるらしい。
何となく雰囲気はつかめたような、気がするのですが・・・要するに先ほどのコマンドもそうですが、tail ?f を打つときに併せるとログの色を操作する事ができるとのこと。
細かい理解もしていきたいところですが、今はログ解析の方が優先と言う事で、割愛して
こちらの方が書かれている、
・CodeIgniterのログに色を付けて快適tail生活 | blog :: e2esound.net
http://e2esound.net/blog/article/25
これを表示させるgithubにアップされてるスクリプトが表題の件に理想的という事で、利用させていただきました。
・CodeIgniterのLogをカラー表示にするsedスクリプト ? Gist
https://gist.github.com/1160353
よく使うディレクトリ(/home/hogedir)に、loghighlighterというファイル名で保存。
$ chmod +x loghighlighter
でスクリプトファイルへ実行権限を与えてやります。以下のようにコマンドするだけで
※phpの拡張子付いてますがログファイルです。$ tail -f log-2012-02-17.php | /home/hogedir/loghighlighter
ありがたや〜色が着きました。
※オレンジ色ベースなのは厨二仕様です。ログの時間は気にしないでね
あ、でもよく見たら、このログの場合、行全体ではなくERRORの文字だけですね。まぁスクリプトは追々解析していきたいと思います。
CentOS 6.2最小構成を入れたがLANを認識しないので、問題を探ってみたら。。
問題はちゃんと切り分けて考えていけば、着実に解決するというお話。
初代サーバと同じマザーボード(BIOSTAR 945GC-M7 TE)なのでLANカードを認識してくれないだろうとの予想があり、やっぱり繋がらない。同じようにI-O DATA ETX-PCI PCI用LANアダプタを買わなきゃいけないのかなと漠然と思ってました。ETX-PCIは便利なもので、挿すだけでLANを認識してくれました。(だったはず。。)割りとスムーズに問題が解決したのを覚えてます。
その手持ちのETX-PCIが挿さってるマザーボードでも、CentOS 6.2 最小構成版は認識しませんでした。(・ω・;)?
と言うことは、CentOSをフルインストールした時に、自動的になにかやってくれているのだなという予測から、これってもしかして、やりようによってはオンボードでも認識するんじゃね?といろいろやってみました。
CentOS6.2 Live CD版と最小構成版のインストール時のファイルサイズ
メインはプログラマなので、使い倒すほど使ってるわけじゃありませんが、Linuxと言えばCentOSでバージョン4の頃からパソコンにインストールなどしてたものですから、インストール=CDからという古い考えの基、前回組み立てたパソコンに最新のCentOS 6.2を入れてみる事にしました。
スペックはこんな感じで↓
・Linux CentOS低予算自宅サーバ奮闘メモ AmazonでCore 2 Duo CPUを注文したらXeonが届いた!
http://centlinuxer.blog37.fc2.com/blog-entry-70.html
ググってみるとDVDからインストールされている方が多いのですが、我が家には初代サーバから引き継がれているボロボロのCD-ROMドライブしかインストールする手段しかありません。。(と思っていた)
CentOS 5 時は6枚くらいCD焼いたのに、え?1枚でいいの?と思いながらLive CD x86 64bit版をCDに焼いてドライブへ挿入。
しようと思ったら、もう寿命かこの寒気の影響で鉄が曲がってるのか、ドライブが出て来ない。。というわけで工具を使って無理矢理こじ開けてCDをスタンバイして、インストール。
CentOS 6になってからUIが綺麗ですな。Live CD版でもGUIで操作できます。このサーバはHDDを40GBしか装備してないので、気になる空き容量は。。
[hogeusr@localhost ~]$ df
Filesystem 1K-ブロック 使用 使用可 使用% マウント位置
/dev/mapper/vg_kurosaba-lv_root
35458728 2102236 32996404 6% /
tmpfs 895984 284 895700 1% /dev/shm
/dev/sda1 495844 33465 436779 8% /boot
え?使用量たった2MB?で空きが31MBもある!すんばらしいということで。
でもやっぱり、GUI必要ないって事で、最小構成版をCDに焼いてインストールしてみました。マウスで操作できなくなりますが。。
そして、またもやCDドライブ開かないってことで、無理矢理開けてCD挿入。
インストール後にdfコマンド。
[hogeusr@hanasv2 ~]# df
Filesystem 1K-ブロック 使用 使用可 使用% マウント位置
/dev/mapper/vg_kurosaba-lv_root
35458728 697540 32959972 3% /
tmpfs 1023200 0 1023200 0% /dev/shm
/dev/sda1 495844 40189 430055 9% /boot
すげーー700KB程度で動いてるのかーー!!と喜ぶのもつかの間。空き容量はLive CD版と変わりがないですね(´ヘ`;)
もっといっぱい比較してみれば良かったですが、いろいろ別の部分で格闘する事があったので、これだけという事で。
その格闘の一つに、上記にもあるようにCDドライブが出てこない。。結構無理にねじ込んでのインストールでしたが、意外とこの2008年にリリースされたと思しきマザーボードのスペックなら、USBメモリがあっさり認識してくれる。CD焼くの面倒なので、USBメモリでインストールがオススメです。まぁBootだのBIOSの設定が必要になるかもしれませんが。
AmazonでCore 2 Duo CPUを注文したらXeonが届いた!
AmazonのマーケットプレイスでCore 2 Duo Processor E6300 1.86GHz BX80557E6300 を注文したら、
Xeon 3050が届きました( ゚Д゚)!
同封されている書類によれば、
同等って何んすか!?
wikipediaによれば。。
・Xeon - Wikipedia
http://ja.wikipedia.org/wiki/Xeon2006年9月に発売されたプロセッサ。ハードウェアとしてはデスクトップ向けCore 2 Duoとほぼ同等。また、豊富なCore 2 Duo用マザーボードの流用を前提としており、FSBは1,066MHzで後に1,333MHz製品が追加された。パッケージもLGA775と、ConroeのCore 2 Duoとはほぼ相違がない。
相違がない!?動くのこれ?マザーボードの対応CPUに載ってないけど。。
などと呟いていたら、こんなリンクを教えていただきました。
・Core2 Duo E6300とXeon 3040 双子! 双子! 双子!
http://hdd-check.com/pc_94.html
双子?でも、番号が微妙に違うからなんとも。。
これって、注文したものと違うじゃねーか!とクレームをするべき案件なのかもしれませんけど、むしろサーバ向けのCPUで動く&同等性能であれば、クレームする労力の方が無駄というわけで組み立て開始!
PHP OAuthのエラー
Evernote APIのoauthサンプル(evernote-api-1.20)をPHPで動かすべくDLしてサーバにアップ。index.phpへアクセスしてみたところ、
The PHP OAuth Extension is not installed
というエラー表示。このエラーについてサンプル内を検索したら、以下のような記述を見つけた。どうやらOAuthの拡張機能が必要のようだ。
OAuth support is implemented using the <a href="http://www.php.net/manual/en/book.oauth.php">PHP OAuth Extension</a>
これを入れようと、サーバで、
# pecl install oauth
とコマンドしてみると、
running: make
/bin/sh /var/tmp/pear-build-root/oauth-1.2.2/libtool --mode=compile gcc -I. -I/tmp/tmpPckkzC/oauth-1.2.2 -DPHP_ATOM_INC -I/var/tmp/pear-build-root/oauth-1.2.2/include -I/var/tmp/pear-build-root/oauth-1.2.2/main -I/tmp/tmpPckkzC/oauth-1.2.2 -I/usr/include/php -I/usr/include/php/main -I/usr/include/php/TSRM -I/usr/include/php/Zend -I/usr/include/php/ext -DHAVE_CONFIG_H -g -O2 -Wall -g -c /tmp/tmpPckkzC/oauth-1.2.2/oauth.c -o oauth.lo
mkdir .libs
gcc -I. -I/tmp/tmpPckkzC/oauth-1.2.2 -DPHP_ATOM_INC -I/var/tmp/pear-build-root/oauth-1.2.2/include -I/var/tmp/pear-build-root/oauth-1.2.2/main -I/tmp/tmpPckkzC/oauth-1.2.2 -I/usr/include/php -I/usr/include/php/main -I/usr/include/php/TSRM -I/usr/include/php/Zend -I/usr/include/php/ext -DHAVE_CONFIG_H -g -O2 -Wall -g -c /tmp/tmpPckkzC/oauth-1.2.2/oauth.c -fPIC -DPIC -o .libs/oauth.o
In file included from /tmp/tmpPckkzC/oauth-1.2.2/oauth.c:14:
/tmp/tmpPckkzC/oauth-1.2.2/php_oauth.h:47:31: error: ext/pcre/php_pcre.h: No such file or directory
/tmp/tmpPckkzC/oauth-1.2.2/oauth.c: In function 'php_so_object_new':
/tmp/tmpPckkzC/oauth-1.2.2/oauth.c:178: warning: unused variable 'tmp'
/tmp/tmpPckkzC/oauth-1.2.2/oauth.c: In function 'oauth_http_build_query':
/tmp/tmpPckkzC/oauth-1.2.2/oauth.c:617: warning: dereferencing type-punned pointer will break strict-aliasing rules
make: *** [oauth.lo] エラー 1
エラーが出て止まる。php_pcre.hが無いと言ってるのはわかるが、どうすればとググるもなかなか見つからなかったが、とってもぴったりなのを発見。
・Memo/PHP/PECL/oauth - DEX Lab
http://dex.qp.land.to/pukiwiki/index.php?Memo%2FPHP%2FPECL%2FoauthCentOS5.4 php5.1.6で「ext/pcre/php_pcre.h: No such file or directory」エラーの場合。rpm版だと入っていないので、ソースから該当部分を取得
ここの説明にあるように、PHP5.1.6を一旦ダウンロードして、該当部分をコピーでいけた。
# yum install php-devel php-pear pcre-devel curl-devel
# wget http://museum.php.net/php5/php-5.1.6.tar.gz
# tar xvfz php-5.1.6.tar.gz
# cp -r php-5.1.6/ext/pcre /usr/include/php/ext/
「pecl install oauth」というコマンドだと、最新版の1.2.2をインストールしようとする。これだと、PHP5.1.6では動かないようだ。上記にあるように、とりあえず古い版を入れてみた。
#pecl install oauth-0.99.9
/etc/php.d/oauth.iniのiniファイルを新規作成するか、php.iniに
extension=oauth.so
と記述してApacheを再起動させると、やっとphpinfo()で認識してくれた。





![Linuxエンジニア養成読本 [仕事で使うための必須知識&ノウハウ満載!] (Software Design plus)](http://blog-imgs-32-origin.fc2.com/c/e/n/centlinuxer/20120125100350-PE2HO-bit-ly-MXVBp_SCLZZZZZZZ_.jpg)




![週刊アスキー増刊 超速コアiパソコン自作 2012年 3/6号 [雑誌]](http://blog-imgs-32-origin.fc2.com/c/e/n/centlinuxer/20120125103037-PE2HO-bit-ly-MXVBp_SCLZZZZZZZ_.jpg)
