月別アーカイブ: 2008年12月

Apache起動エラー回避

久々に書けた。

先日、色んなVirtualHostが切ってあるサーバに、新たにWebコンテンツの設置をしたのだが・・・

そこで、少しハマりました。

PHP5.1.6で運用しているサーバだったのですが、元Webアプリが、PHP5.2以上で作られているようで、

「json_encoding」が無い、とエラーが。

php-json をサックリDLし、インスコ。

[user@host ~]$ cd /usr/local/src

[user@host src]$ wget http://www.aurore.net/projects/php-json/php-json-ext-1.2.1.tar.bz2

–21:02:57– http://www.aurore.net/projects/php-json/php-json-ext-1.2.1.tar.bz2

Resolving www.aurore.net… 72.36.165.74

Connecting to www.aurore.net|72.36.165.74|:80… connected.

HTTP request sent, awaiting response… 200 OK

Length: 150206 (147K) [application/x-bzip2]

Saving to: `php-json-ext-1.2.1.tar.bz2′

100%[================================================================>] 150,206 172K/s in 0.9s

21:02:59 (172 KB/s) – `php-json-ext-1.2.1.tar.bz2′ saved [150206/150206]

[user@host src]$ tar jxf php-json-ext-1.2.1.tar.bz2

[user@host src]$ cd php-json-ext-1.2.1

[user@host php-json-ext-1.2.1]$ cd php-json-ext-1.2.1

[user@host php-json-ext-1.2.1]$ ./configure

checking for gcc… gcc

(snip…)

PATH=”$PATH:/sbin” ldconfig -n /usr/local/src/php-json-ext-1.2.1/modules

———————————————————————-

Libraries have been installed in:

/usr/local/src/php-json-ext-1.2.1/modules

If you ever happen to want to link against installed libraries

in a given directory, LIBDIR, you must either use libtool, and

specify the full pathname of the library, or use the `-LLIBDIR’

flag during linking and do at least one of the following:

– add LIBDIR to the `LD_LIBRARY_PATH’ environment variable

during execution

– add LIBDIR to the `LD_RUN_PATH’ environment variable

during linking

– use the `-Wl,–rpath -Wl,LIBDIR’ linker flag

– have your system administrator add LIBDIR to `/etc/ld.so.conf’

See any operating system documentation about shared libraries for

more information, such as the ld(1) and ld.so(8) manual pages.

———————————————————————-

Build complete.

(It is safe to ignore warnings about tempnam and tmpnam).

[user@host php-json-ext-1.2.1]# su

[root@host php-json-ext-1.2.1]# make install

Installing shared extensions: /usr/lib/php/modules/

でもって、php.ini に、追記。

[root@host php-json-ext-1.2.1]# vi /etc/php.ini

extension=json.so

これでおk。

で、ここで、問題発生なのです。

[root@host php-json-ext-1.2.1]# /etc/rc.d/init.d/httpd restart

Stopping httpd: [ OK ]

Starting httpd: Warning: DocumentRoot [/home/ucube-admin/www] does not exist

(98)Address already in use: make_sock: could not bind to address [::]:80

(98)Address already in use: make_sock: could not bind to address 0.0.0.0:80

no listening sockets available, shutting down

Unable to open logs

[FAILED]

すでに80のポートが使われてると?

netstat で見ると、確かにポートが開いている。

しかし、httpd のプロセスは死んでいる。

という事で、どのプロセスが80のポートを使っているかを確認しましょうって事で、

fuserコマンドで、プロセスIDを調べる。

[root@host php-json-ext-1.2.1]# fuser -n tcp 80

80/tcp: 7909

と、プロセスID:7909 のプロセスが、どうやら80のポートを掴んでるようで。

では、そのプロセスは何か?

[root@host php-json-ext-1.2.1]# ps auxww | grep 7909

apache 7909 0.0 0.1 2340 1336 ? Ss Nov18 1:11 bash

bash?

うまくApacheの停止が出来なかったのかな?

とりあえず、そのプロセスを殺して、再度確認。

[root@host php-json-ext-1.2.1]# kill -9 7909

[root@host php-json-ext-1.2.1]# fuser -n tcp 80

[root@host php-json-ext-1.2.1]#

おk。

Apache起動。

[root@host php-json-ext-1.2.1]# /etc/rc.d/init.d/httpd start

Starting httpd: [ OK ]

はい、これで完了!!

長時間運用しているサーバだと、こういった事が起こりうるので、

慌てず、騒がず、冷静に対処しましょうって事で。

でわ。

忙しい。

ここ2週間で、3回ほどしか帰宅していない。

ずっと会社で仕事して、少し寝て、の繰り返し。

ネタを探す時間も無いし、ネタがあったとしても、まとめる時間がない。。。

来週は大丈夫だろうか・・・?

でわ。

パスワード無しでSSH接続

ハマりました。。。

環境としてはこんな感じ。

■ Client

OS:CentOS 5.2

IP:192.168.10.10

User:manager

■ Server

OS:CentOS 5.2

IP:192.168.10.11

User:manager

手順は以下。

まずは、Clientにて、鍵を作成

[manager@Client ~]$ cd /home/manager

[manager@Client ~]$ mkdir .ssh

[manager@Client ~]$ ssh-keygen -t dsa

Generating public/private dsa key pair.

Enter file in which to save the key (/home/manager/.ssh/id_dsa): [ENTER]

Enter passphrase (empty for no passphrase): [ENTER]

Enter same passphrase again: [ENTER]

Your identification has been saved in /home/manager/.ssh/id_dsa.

Your public key has been saved in /home/manager/.ssh/id_dsa.pub.

The key fingerprint is:

b4:71:5b:a8:27:ac:e9:2a:0c:f8:6b:99:3d:df:2f:3a manager@192.168.10.10

次に、Clientのパーミッションの設定

[manager@Client ~]$ chmod 700 ./.ssh

[manager@Client ~]$ cd ./.ssh

[manager@Client ~/.ssh]$ chmod 600 ./id_dsa.pub

Clientで作成した公開鍵を、Serverへアップ

[manager@Client ~/.ssh]$ ftp 192.168.10.11

Connected to 192.168.10.11.

220 Welcome to blah FTP service.

530 Please login with USER and PASS.

530 Please login with USER and PASS.

KERBEROS_V4 rejected as an authentication type

Name (192.168.10.11:manager): manager

331 Please specify the password.

Password:

230 Login successful.

Remote system type is UNIX.

Using binary mode to transfer files.

ftp> put id_dsa.pub

local: id_dsa.pub remote: id_dsa.pub

227 Entering Passive Mode (192,168,10,11,114,96)

150 Ok to send data.

226 File receive OK.

610 bytes sent in 4.8e-05 seconds (1.2e+04 Kbytes/s)

ftp> quit

221 Goodbye.

Clientでの作業はここまで。

次はServerでの作業。

[manager@Server ~]$ mkdir ./.ssh

[manager@Server ~]$ mv ./id_dsa.pub ./.ssh

[manager@Server ~]$ chmod 700 ./.ssh

[manager@Server ~]$ cd .ssh

[manager@Server ~/.ssh]$ chmod 600 ./id_dsa.pub

[manager@Server ~/.ssh]$ mv ./id_dsa.pub ./authorized_keys

で、あとは、Clientから、ssh接続して、パスワードを聞かれなければOK。

が、ここでハマった。

何度やってもパスワードを聞かれる。

調査したところ、Server側のユーザのホームディレクトリのパーミッションが原因でした。

どうやら、700 じゃないと、ダメのようで。

2時間も無駄にしたよ。。。orz

でわ。

メールの読解力

最近、メールの読解力・文章力が問題になる事が多い。

お客さんから来るメールを理解しきれていない、もしくは、理解していても返信する文章がおかしい。

で、結局、意思の疎通がなかなか出来ずに、メールだけで半日潰れてしまうという結果になる。

まぁ、随時注意しなければならないのだが、こちらも逐一別プロジェクトのメールをチェックしているわけではない。

国語力というか、日本語力が落ちているように思える。

本を読め、本を。

でわ。

CentOS5へのcrontabインストール

とあるプロジェクトにて、コンテンツバックアップ用のシェルを書いたので、それをcronに仕込もうとした時のお話。

バックアップシェルの動作検証も終わり、cron に仕込もうとしたところ・・・

[root@host ~]# crontab -l

-bash: crontab: command not found

。。。orz

他人が作ったサーバはキライです。

なので、crontab を使えるように。

[root@host ~]# yum install crontabs

Loading “installonlyn” plugin

Setting up Install Process

Setting up repositories

Reading repository metadata in from local files

Parsing package install arguments

Resolving Dependencies

–> Populating transaction set with selected packages. Please wait.

—> Downloading header for crontabs to pack into transaction set.

crontabs-1.10-8.noarch.rp 100% |=========================| 3.9 kB 00:00

—> Package crontabs.noarch 0:1.10-8 set to be updated

–> Running transaction check

Dependencies Resolved

=============================================================================

Package Arch Version Repository Size

=============================================================================

Installing:

crontabs noarch 1.10-8 base 5.0 k

Transaction Summary

=============================================================================

Install 1 Package(s)

Update 0 Package(s)

Remove 0 Package(s)

Total download size: 5.0 k

Is this ok [y/N]: y

Downloading Packages:

(1/1): crontabs-1.10-8.no 100% |=========================| 5.0 kB 00:00

Running Transaction Test

Finished Transaction Test

Transaction Test Succeeded

Running Transaction

Installing: crontabs ######################### [1/1]

Installed: crontabs.noarch 0:1.10-8

Complete!

もいっちょ。

[root@host ~]# yum install vixie-cron

Loading “installonlyn” plugin

Setting up Install Process

Setting up repositories

Reading repository metadata in from local files

Parsing package install arguments

Resolving Dependencies

–> Populating transaction set with selected packages. Please wait.

—> Package vixie-cron.i386 4:4.1-72.el5 set to be updated

–> Running transaction check

Dependencies Resolved

=============================================================================

Package Arch Version Repository Size

=============================================================================

Installing:

vixie-cron i386 4:4.1-72.el5 base 91 k

Transaction Summary

=============================================================================

Install 1 Package(s)

Update 0 Package(s)

Remove 0 Package(s)

Total download size: 91 k

Is this ok [y/N]: y

Downloading Packages:

(1/1): vixie-cron-4.1-72. 100% |=========================| 91 kB 00:12

Running Transaction Test

Finished Transaction Test

Transaction Test Succeeded

Running Transaction

Installing: vixie-cron ######################### [1/1]

Installed: vixie-cron.i386 4:4.1-72.el5

Complete!

確認。

[root@host ~]# crontab -l

no crontab for root

おk。

無事、crontab で、cron の設定が出来ましたとさ。

でわ。

昨日買った本。

amazon:人間関係にうんざりしたときに読む本

amazon:一瞬で自分を変える法

amazon:大切な人に贈りたい 24の物語

統一性が無いなぁ・・・

最近、技術書を全く買っていないです。

技術より管理にシフトしているからなのかなぁ?、と。

以前、上司に相談した事があります。

「管理よりも技術がやりたいです。」

その答え。

「両方やれば良くね?」

でした。

まぁ、その通りなんですが・・・

たくさん頑張ろうと思います。

さて、今年も残り1ヶ月。

走り抜けねば。

でわ。