2013年12月27日金曜日

【活動議事録3】 覗かれるプライバシー

スパイウェアの境界線

スパイウェアによって知らない内に送信されてしまうプライバシーデータ。
覗かれて困る情報とは?
スパイウェア化した雪菜を前に、千夏の悲鳴がこだまする!
じょしかい!!トーク【活動議事録】シリーズ 第三弾です。
>第二弾はこちら


鈴木 和音

「突然ですけど、浮気ってドコから浮気だと思います?
  手を繋いだら~とか、キスしたら~とかあるじゃないですかー」

佐藤 千夏

「んんー……。 そうね。 一般的かもしれないけれど、やっぱり本人に疚(やま)しい気持ちが生まれたらかな」

鈴木 和音

「でもでも、それだと『相手に悪いな』って思わない人だったら『全然ッOK』って感じになっちゃいません?
  男A 『ごめん。 でも俺、決してお前を裏切るような疚(やま)しい気持ちとか無かったんだ』 
  とか。
  これって、何かヤバくないですか? 」

田中 雪菜

「あ"ー。 チャラいチャラい!!!」

佐藤 千夏

「そもそも、そういう方とはお付き合いしたいと思わないんじゃないかな……」

田中 雪菜

「もしわたしが誰かと付き合うとしたら『ナイショで他の女の子と2人きりの食事』はNGになるかも。
  それを知ったら、夜中一人で『あああああああああああ』ってなっちゃいそ」

鈴木 和音

「雪菜先輩って性格はざっくりしてる感じですけど、実は束縛超凄そうな感じですよね」

田中 雪菜

「!?……え。」

佐藤 千夏

「お付き合いしている相手の方を、こっそり監視してしまうような感じね」

田中 雪菜

いやいや……

鈴木 和音

「サーバーみたいに、問題があればアラートを飛ばすとかして24時間監視してそうです」

田中 雪菜

 ナィナィ 

佐藤 千夏

 あ る あ る ♪

鈴木 和音

 あ る あ る ♪

 

佐藤 千夏

「そう言えば、数年前に彼氏の行動を監視するスマートフォンのアプリが公開されて、少し騒動になったわよね」

田中 雪菜

カレログだっけ?」

鈴木 和音

「ありました!
  確か、現在位置や通話履歴だけじゃなく、インストールされてるアプリの一覧とかも送信するんですよね。 
  それって、何か超ヤバくないですか?」

田中 雪菜

「それ、完全にスパイウェアだよね」

佐藤 千夏

「確か、一部のセキュリティベンダーには、スパイウェアとして登録されたんじゃなかったかしら」

鈴木 和音

「浮気の監視とかを関係無しで考えるなら、位置情報や通話記録よりもインストールしてあるIMEの変換履歴を送信される方が、恥ずかしさ的にも超絶ヤバいですよね」

田中 雪菜

「なるほど。確かに……。 
  じゃあ、恥ずかしさの度合いの確認も含めて……
  部室にあるパソコンでもチェックしてみよっか♪

佐藤 千夏

「え、何で!? ちょ、ちょっと待って!」

田中 雪菜

「どれどれ♪♪」

(カチャカチャ)

佐藤 千夏

「いやあああああぁぁぁぁぁぁ」

鈴木 和音

「千夏先輩!?




関連記事

バイドゥ(Buido)、IMEユーザーの情報を無断で外部送信 (「クラウド入力OFF」でも)

Buido IME インストールされている方はご一読。

恋愛支援アプリ『カレログ』が『カレログ2』としてリニューアル

サービス終了のお知らせ

Cerberus

盗難防止用アプリ?
・位置情報、通話履歴の記録送信
・遠隔操作(端末ロック、カメラ撮影、音声録音、警告表示、データの削除)
インストールされたCerberusの隠蔽




[宣伝]

スマートフォン用セキュリティソフトや書籍の紹介です。

2013年12月25日水曜日

Postfix 先頭がハイフンのメールアドレスにメールを送信出来ない

allow_min_userの値を変更する

デフォルトでpostfixは先頭がハイフン(-)のメールアドレス(RFC準拠)にメールを送信出来ないなんて知らず……。
先頭にハイフン文字を使ったドコモ宛のメールが大量に詰まってました。 (・ω・`)

invalid recipient syntax: \"-*******@docomo.ne.jp\"
(/var/log/maillog)

main.cfallow_min_user値を設定(デフォルト未設定)して、先頭がハイフン(-)のメールアドレスにもメールが送信されるようにしました。

# allow_min_user (デフォルト: no)
# 受信者アドレスが最初の文字として '-' を持つことを許可します。
# コマンドラインでEメールアドレスを渡すソフトウェアでの事故を避けるため、デフォルトではこれを認めません。
allow_min_user = yes

どういう事かと言うと、例えば「-*******@******.**.**」という先頭ハイフンなメールアドレスへ、コンソール上からmailコマンドを使って送信しようとした場合。

[root@localhost ~]# mail -s 'user unknown' -*******@******.**.**
mail: invalid option -- *
Usage: mail [-iInv] [-s subject] [-c cc-addr] [-b bcc-addr] to-addr ...
            [-- sendmail-options ...]
       mail [-iInNv] -f [name]
       mail [-iInNv] [-u user]

となっちゃうんです。

わたしの場合は規制する必要がないので制限を解除しました。 ヽ(´▽`*)ノ


bounce_queue_lifetimeの値を変更する

標準の設定では、maximal_backoff_timeに設定した時間の間隔で5日間(bounce_queue_lifetime)も再送し続けてしまうので、ついでにこの値も変更しておきました。
・変更前 5日
・変更後 3時間 (180分)

# bounce_queue_lifetime (デフォルト: 5d)
# 配送できないと見なすまでに、バウンスメッセージがキューに入っている最大の時間。
# デフォルトでは、通常のメールに対するキューの寿命と同じです。
# 時間単位: s (秒)、m (分)、h (時)、d (日)、w (週)。 デフォルトの時間単位は d (日) です。
# メール配送の試行を1回だけにするには 0 を指定します。
# この機能は Postfix 2.1 以降で使えます。
bounce_queue_lifetime = 180m

詳しくは、Postfix設定パラメータを読んで下さい。



[宣伝] Postfixの参考書です。

わたしも読みました!!

気になっている1冊です。

2013年12月24日火曜日

CentOS 5.8に、MySQL 5.6をインストールする。

MySQL 5.6 をrpmでインストールする

MySQLの公式からMySQL 5.6rpmのパッケージファイルをダウンロードしてきました。
(MySQL 5.6をインストールする前に、古いMySQLは削除してあります)

[root@centos5 ~]# ls -l MySQL-*
-rw-r--r-- 1 root root 23090275  9月 11 12:24 MySQL-client-5.6.14-1.rhel5.x86_64.rpm
-rw-r--r-- 1 root root  4563085  9月 11 12:24 MySQL-devel-5.6.14-1.rhel5.x86_64.rpm
-rw-r--r-- 1 root root 89839312  9月 11 12:26 MySQL-server-5.6.14-1.rhel5.x86_64.rpm
-rw-r--r-- 1 root root  5106177  9月 11 12:26 MySQL-shared-compat-5.6.14-1.rhel5.x86_64.rpm

[root@centos5 ~]# rpm -ivh ./MySQL-*
準備中...                ########################################### [100%]
   1:MySQL-shared-compat    ########################################### [ 25%]
   2:MySQL-client           ########################################### [ 50%]
   3:MySQL-devel            ########################################### [ 75%]
   4:MySQL-server           ########################################### [100%]

すんなりインストールも終わったので、早速起動してみました。

[root@centos5 ~]# /etc/init.d/mysqld start
2013-12-24 23:59:59 5770 [ERROR] Fatal error: Please read "Security" section of the manual to find out how to run mysqld as root!

rootで起動するなー!って言われてる……。
mysqlユーザーで起動します。

[root@centos5 ~]# su - mysql
-bash-3.2$ /etc/init.d/mysqld start
...
2013-12-24 23:59:59 5728 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.

という謎エラーを吐いて死んでしまった。 (・_・;)
...
そもそも、mysql-serverを起動出来ていないのにmysql_upgradeとか実行出来ない。

その後も試行錯誤を続けるも謎エラーの嵐に嵌められて……

30分後

サクッと諦めました (´・ω・`)

[root@centos5 ~]# rpm -qa | grep 'MySQL' | xargs rpm --erase

削除、削除……っと。


という事で

MySQL 5.6 をyumでインストールする

にしました(`・ω・´)

[root@centos5 ~]# rpm -ivh http://repo.mysql.com/mysql-community-release-el5-5.noarch.rpm
http://repo.mysql.com/mysql-community-release-el5-5.noarch.rpm を取得中
準備中...                ########################################### [100%]
   1:mysql-community-release########################################### [100%]

[root@centos5 ~]# vi /etc/yum.repos.d/mysql-community.repo
enabled=1     ← 変更前
enabled=0     ← 変更後

[root@centos5 ~]# yum install --enablerepo=mysql56-community mysql-community-client.x86_64 mysql-community-common.x86_64 mysql-community-server.x86_64 mysql-community-libs.x86_64
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile

~中略~

Installed:
  mysql-community-client.x86_64 0:5.6.15-3.el5              mysql-community-common.x86_64 0:5.6.15-3.el5
  mysql-community-server.x86_64 0:5.6.15-3.el5              mysql-community-libs.x86_64

Complete!

古いmysqlのパッケージを綺麗に削除していない場合、conflicts with file from packageと怒られる場合があるようです!
わたしは怒られました(;´∀`)

インストールが終わったら起動を確認して、msyql_upgradeをして完了ですね。

[root@centos5 ~]# /etc/init.d/mysqld start
mysqld を起動中:                                           [  OK  ]

[root@centos5 ~]# mysql_upgrade
Looking for 'mysql' as: mysql
...
OK

バージョンアップによって使えなくなっているパラメータなどがあるかもしれません。
MySQL5.6の起動に失敗した場合は確認してみてください。 c(・ω・´c⌒っ

わたしはこちらのサイトを参考にさせて頂きました。

2013年12月23日月曜日

起動しないPostfix

fatal: bind 0.0.0.0 port 25: Address already in use

先日に続いてPostfixネタです。

postfix-2.10をインストールして起動しようとしたら
fatal: bind 0.0.0.0 port 25: Address already in use
なんてエラーが出ました。

[root@centos5.8 ~]# rpm -qa 'postfix'
postfix-2.10.2-1.el5

[root@centos5.8 ~]# alternatives --config mta

2 プログラムがあり 'mta' を提供します。

  選択       コマンド
-----------------------------------------------
*  1           /usr/sbin/sendmail.sendmail
 + 2           /usr/sbin/sendmail.postfix
Enter を押して現在の選択 [+] を保持するか、選択番号を入力します: 2

[root@centos5.8 ~]# /etc/init.d/postfix start
postfix を起動中:                                          [失敗]

ログ(/var/log/maillog)を確認してみると……。

[root@centos5.8 ~]# tail -n 10 /var/log/maillog
Dec 24 23:59:59 centos5.8 postfix/postfix-script[17557]: starting the Postfix mail system
Dec 24 23:59:59 centos5.8 postfix/master[17559]: fatal: bind 0.0.0.0 port 25: Address already in use
Dec 24 23:59:59 centos5.8 postfix/master[17558]: fatal: daemon initialization failure
Dec 24 23:59:59 centos5.8 postfix/postfix-script[17560]: fatal: mail system startup failed

お前は既に使われている(port 25: Address already in use)って言ってる。
そうだった! sendmailを停止し忘れていました。(・_・;)

なので、sendmailを停止させてpostfixを再度起動ですね。

[root@centos5.8 ~]# /etc/init.d/sendmail stop
sendmail を停止中:                                         [成功]

[root@centos5.8 ~]# /etc/init.d/postfix start
postfix を起動中:                                          [成功]

無事起動出来ましたヽ(´∀`*)ノ すっかりヌケてました。

2013年12月22日日曜日

CentOS 5.8 最新版のPostfix 2.10をインストールする。

今回は最新版のPostfix(現時点ではpostfix-2.10.2-1.el5)を、yum, rpm, makeのそれぞれでインストールしてみました。


yumでインストール

今回は、最新版のPostfix(現時点では2.10.2)をインストールしてみました。
(リポジトリはCentALTを使いました。)

[root@localhost ~]# yum install --enablerepo=CentALT 'postfix'
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile

~中略~

Running Transaction
  Updating       : postfix                                                                                          1/2
  Cleanup        : postfix                                                                                          2/2

Updated:
  postfix.i686 2:2.10.2-1.el5

Complete!

ログ解析ツールのpflogsumm(postfix-perl-script)もインストールしました。
同じリポジトリからpostfix-perl-scriptsを指定してインストールでOKです。

[root@localhost ~]# yum install --enablerepo=CentALT 'postfix-perl-scripts'
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile

~中略~

Running Transaction
  Installing     : postfix-perl-scripts                                                                             1/1

Installed:
  postfix-perl-scripts.i686 2:2.10.2-1.el5

Complete!

pflogsummは、yesterday(昨日分)とtoday(本日分)しか集計することが出来ないんですね~。
日付指定とか出来れば便利かな?
集計可能な項目も含めて変更の余地がありそうですね!


rpmでインストール

こちらは後から別のマシンで行った作業ログです。
RPMパッケージは、CentALTにあるものを使わせて頂きました。
(インストール出来たパターン)

[root@centos5.8 ~]# rpm -Uvh http://centos.alt.ru/repository/centos/5/x86_64/postfix-2.10.2-1.el5.x86_64.rpm
準備中...                ########################################### [100%]
   1:postfix                ########################################### [100%]

[root@centos5.8 ~]# rpm -Uvh http://centos.alt.ru/repository/centos/5/x86_64/postfix-perl-scripts-2.10.2-1.el5.x86_64.rpm
http://centos.alt.ru/repository/centos/5/x86_64/postfix-perl-scripts-2.10.2-1.el5.x86_64.rpm を取得中
準備中...                ########################################### [100%]
   1:postfix-perl-scripts   ########################################### [100%]


rpmコマンドでのインストール中にエラーとなったマシンがありました。
(エラーが発生したパターン)

[root@localhost ~]# rpm -Uvh http://centos.alt.ru/repository/centos/5/x86_64/postfix-2.10.2-1.el5.x86_64.rpm
http://centos.alt.ru/repository/centos/5/x86_64/postfix-2.10.2-1.el5.x86_64.rpm を取得中
エラー: 依存性の欠如:
        libc.so.6()(64bit) は postfix-2.10.2-1.el5.x86_64 に必要とされています
        libc.so.6(GLIBC_2.2.5)(64bit) は postfix-2.10.2-1.el5.x86_64 に必要とされています
        libc.so.6(GLIBC_2.3)(64bit) は postfix-2.10.2-1.el5.x86_64 に必要とされています
        libc.so.6(GLIBC_2.3.2)(64bit) は postfix-2.10.2-1.el5.x86_64 に必要とされています
        libc.so.6(GLIBC_2.3.4)(64bit) は postfix-2.10.2-1.el5.x86_64 に必要とされています
        libc.so.6(GLIBC_2.4)(64bit) は postfix-2.10.2-1.el5.x86_64 に必要とされています
        libcrypto.so.6()(64bit) は postfix-2.10.2-1.el5.x86_64 に必要とされています
        libdb-4.3.so()(64bit) は postfix-2.10.2-1.el5.x86_64 に必要とされています
        libdl.so.2()(64bit) は postfix-2.10.2-1.el5.x86_64 に必要とされています
        liblber-2.3.so.0()(64bit) は postfix-2.10.2-1.el5.x86_64 に必要とされています
        libldap-2.3.so.0()(64bit) は postfix-2.10.2-1.el5.x86_64 に必要とされています
        libm.so.6()(64bit) は postfix-2.10.2-1.el5.x86_64 に必要とされています
        libmysqlclient.so.15()(64bit) は postfix-2.10.2-1.el5.x86_64 に必要とされています
        libmysqlclient.so.15(libmysqlclient_15)(64bit) は postfix-2.10.2-1.el5.x86_64 に必要とされています
        libnsl.so.1()(64bit) は postfix-2.10.2-1.el5.x86_64 に必要とされています
        libnsl.so.1(GLIBC_2.2.5)(64bit) は postfix-2.10.2-1.el5.x86_64 に必要とされています
        libpcre.so.0()(64bit) は postfix-2.10.2-1.el5.x86_64 に必要とされています
        libpq.so.4()(64bit) は postfix-2.10.2-1.el5.x86_64 に必要とされています
        libresolv.so.2()(64bit) は postfix-2.10.2-1.el5.x86_64 に必要とされています
        libresolv.so.2(GLIBC_2.2.5)(64bit) は postfix-2.10.2-1.el5.x86_64 に必要とされています
        libsasl2.so.2()(64bit) は postfix-2.10.2-1.el5.x86_64 に必要とされています
        libssl.so.6()(64bit) は postfix-2.10.2-1.el5.x86_64 に必要とされています
        libz.so.1()(64bit) は postfix-2.10.2-1.el5.x86_64 に必要とされています

依存関係エラーが多数。 (・ω・`)
存在するはずのライブラリの依存エラーが表示されているので、以前に遭遇したコレと同じなのかな。 何なんだろう……。

取り敢えず、yumコマンドですんなり入りました。


makeでインストール

公式にあるpostfix-2.10.2.tar.gzをダウンロードして、ソースからインストールしてみました。

[root@localhost ~]# make
............. [準備中]

2013年12月20日金曜日

絵付きで解説! - SSH公開鍵認証 「TeraTermとPagentの連携」

Tera TermでPagent(+PuTTYgen)を使う

部室にあるサーバーのSSH認証方式を、公開鍵認証に変更しました。
これで都度のパスワード入力から開放されます。( ´∀`)エヘヘ セキュリティ強化もあり万々歳ですね。
メインとして使っているSSHクライアントはTeraTermなので、今回はこれにPagentを連携させてやります。
Windows 7で作業しました。

  Login As...

[tanaka@centos5.8 ~]$ echo "文字による表現が下手なので今回は絵付きで解説"

鍵生成ダイアログの表示

まずは、公開鍵と秘密鍵をTeraTermで作成します。
TeraTermを起動したら、「設定」から「SSH鍵生成(N)」をクリックして、鍵生成のダイアログを開いて下さい。
鍵生成ダイアログの表示


鍵生成の準備

ダイアログが表示されたら、ダイアログの右上にある「生成(G)」というキャプションのボタンを押します。
ダイアログ下部にある「公開鍵の保存(C)」と「秘密鍵の保存(P)」のボタンが有効になったことを確認して下さい。
鍵生成の準備


公開鍵の生成と保存

ボタンが有効になったら「公開鍵の保存(C)」のボタンを、鍵のパスフレーズを未入力のまま押します。
id_rsa.pubというファイル名で保存して下さい。(・ω・´)
公開鍵の生成と保存
(今回はC:\Users\Owner\SSH鍵というディレクトリを作成して保存しました)


秘密鍵の生成と保存

最後に秘密鍵を作成します。
先ほど押したボタンの右にある「秘密鍵の保存(P)」のボタンを、今度は鍵のパスフレーズを入力してから押します。
ここで入力したパスワードを忘れないで下さい。
このパスワードは、いつも使っているアカウントのログインパスワードとは別でOKです。
秘密鍵の生成と保存
(今回はC:\Users\Owner\SSH鍵というディレクトリを作成して保存しました)


秘密鍵の変換 (PuTTYgen)

Pagent読み込めるようにするために、先ほど作成した秘密鍵をPuTTYgenで変換します。
PuTTYgenを起動して秘密鍵を読み込んで下さい。 秘密鍵の生成と保存 1
秘密鍵を読み込むと、作成した秘密鍵のパスワードを入力するダイアログが表示されます。
作成時のパスワードを入力してOKOK秘密鍵の生成と保存 2
最後に変換された秘密鍵を保存して終了です。
保存する鍵の名前はid_rsa.ppkにしました。
秘密鍵の生成と保存 3


公開鍵の転送 (サーバーへの送信)

先ほど作成した公開鍵を、TeraTermを使って対象のサーバーへ送信します!
対象のサーバーに公開鍵認証をさせたいユーザーでログインしてください。 (`・ω・´)

サーバーにログインをしたら、TeraTermのメニューバー項目「ファイル」にある「SSH SCP」をクリックします。
すると、ファイルを送信できるダイアログが出てくるので、ダイアログ上側に表示されているファイル選択(参照)ボタンの「...」を押して、今回の公開鍵を選択。
選択したら、右にある「send」ボタンを押せばOKです。
公開鍵の転送 (サーバーへの送信)




公開鍵の設置

クライアントで作成した公開鍵をサーバーに設置します。
.sshというディレクトリを、ユーザーのホームディレクトリ直下にパーミッション700で作成します。
  (既に.sshディレクトリが存在する場合はこの作業は不要です。)
そして、公開鍵のデータをauthorized_keysというファイルに追記して下さい。
authorized_keysファイルのパーミッションは600です。
ファイルやディレクトリのパーミッションに気をつけて下さい。

今回、わたしはtanakaユーザーで作業しました。

.sshディレクトリをユーザーのホームディレクトリにパーミッション700で作成 (ディレクトリが存在しない場合)
[tanaka@centos5.8 ~]$ mkdir -m 700 .ssh

さきほどクライアントPCからTeraTermで送信した公開鍵を.sshディレクトリに移動
[tanaka@centos5.8 ~]$ mv id_rsa.pub ./.ssh/

公開鍵をauthorized_keysに追記 (ファイルが存在しない場合は作られます)
[tanaka@centos5.8 ~]$ cat ./.ssh/id_rsa.pub | tee -a ./.ssh/authorized_keys
ssh-rsa AAXXXXXXXyc2EAAAABIwAAAQEAotQXRRRRRbGPEoKkzigYxaX7jBYE2qvZEAAEEEEEMyLV5NvpHL+qcPHftBP3j1emHHHHH
EiCCCC3NmTViP2wFEEEEEh95BIK+BAfcTmiDMzhX1ouSNHg3e0WUvTJ/TxAJn6pHzHLVY6NtmBknskpSqFL1vUVi5/7uqa2dakphrwe
YKKwVqFDdj/HIE2pIbc3haZG9sBtnfYKn8X0d8qq1J28DuGFUWbxMjgVNSoUvfyRgzIzhzt4duEUof+cbQDt3u+geUU0EAbOoAhbziQ
Sl0Q== clientname

authorized_keysのパーミッションが600でない場合は600に変更
[tanaka@centos5.8 ~]$ chmod 600 ./.ssh/authorized_keys

不要になった公開鍵を削除
[tanaka@centos5.8 ~]$ rm -i ./.ssh/id_rsa.pub
rm: remove 通常ファイル `./.ssh/id_rsa.pub'? y


sshd_configの編集

sshd_configに設定された次の3つの項目(値)を確認して下さい。
noになっていたり、未指定だった場合は設定してあげて下さい。

[tanaka@centos5.8 ~]$ sudo vi /etc/ssh/sshd_config
~中略~
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile      .ssh/authorized_keys

パスワード認証を禁止する場合は次のように設定!

PasswordAuthentication no

sshd_configの編集が終わったら、sshdを再起動です。
サーバー側の準備が出来たらログアウト!

いよいよパスワード無しでの接続。
クライアント側でPagentを起動します。(起動するとタスクトレイに入っていると思います。)
起動したら鍵の読み込みボタンを押してダイアログを開きます。
先ほどPuTTyGenで変換した秘密鍵(ppkファイル)を指定して下さい。
(この時も秘密鍵作成時のパスワードを入力する必要があります)
Pagentの起動と秘密鍵の指定
セットが完了したら、あとはログインを実行してみるだけ。c(・ω・`c⌒っ
TeraTermを起動したらPagentを使うというラジオボタンにチェックを入れて、OKボタンを押すだけです。
TeraTermでPagentを使う


Last login: Thu Dec 31 23:59:59 2013 from 192.168.1.105
[tanaka@centos5.8 ~]$

無事にログイン出来ました!!!ヽ(´▽`*)ノ

今回お世話になったサイト


2013年12月19日木曜日

2014年【春期】 基本情報技術者試験(FE)

基本情報技術者資格(FE)

部室で少し話題に上がったんだけど、基本情報技術者の資格は、ウチの部では千夏と和音が持っています!
そして、わたしは持ってません (灬'ω'灬)

2014年春の試験は来年の1月中旬から申込受付開始なんだねー。
和音曰く「過去問やり込めば大丈夫」らしいけど……。


  • 情報技術全般に関する基本的な用語・内容を理解している。

  • 上位技術者の指導のもとにプログラム設計書を作成できる。

  • プログラミングに必要な論理的思考能力をもつ。

  • 一つ以上のプログラム言語の仕様を知っており、その言語を使ってプログラムを作成できる。

  • プログラムのテスト手法を知っており、単体テストを実施できる。

アタマぱっぱーなわたしでも取れるのかな ( ´ー`)。oO ゥーン



[宣伝] オススメ度の高い基本情報技術者試験の参考書問題集をご紹介です。

定番です

安いです

安い!(アプリ付き)

おすすめ


基本情報技術者試験についての詳しくは
「IPA 情報処理推進機構:情報処理技術者試験センター:情報処理技術者試験制度:制度の概要
を参照して下さい♪


2013年12月17日火曜日

CentOS 5.8 php53からphp5.4へのアップデート

CentOS 5.8にインストールされていたphp53を、php5.4にアップデートしました。

タイトルの通りですが、作業を行った時のメモです。
作業自体はx86_64で行っていますが、他でも同じだと思います。
php53のパッケージを一旦削除してから、remiのリポジトリにあるphp5.4を取得・インストールしています。
なので、正確には再インストールですね!


php53の削除

早速、php53のパッケージを削除します。

[root@centos5.8 ~]# yum remove php53*
Loaded plugins: downloadonly, fastestmirror, security
Setting up Remove Process
Resolving Dependencies

~中略~

Transaction Test Succeeded
Running Transaction
  Erasing        : php53-common                                                                                               1/**
警告: /etc/php.ini は /etc/php.ini.rpmsave として保存されました。
  Erasing        : php53-bcmath                                                                                               2/**
  Erasing        : php53-cli                                                                                                  3/**
  (削除された項目を省略しています)


Removed:
  php53.x86_64 0:5.3.3-21.el5               php53-bcmath.x86_64 0:5.3.3-21.el5          php53-cli.x86_64 0:5.3.3-21.el5
  php53-common.x86_64 0:5.3.3-21.el5        (削除された項目を省略しています)

Dependency Removed:
  php-pear.noarch 1:1.4.9-8.el5

Complete!

php5.4のインストール

php53パッケージの削除が完了したら、いよいよphp5.4のインストールです。
わたしの環境では、ここで依存関係エラー(libedit)が発生しました。
epelのリポジトリから取得してインストールすることで解決です。

[root@centos5.8 ~]# yum install --enablerepo=remi php
Loaded plugins: downloadonly, fastestmirror, security
Loading mirror speeds from cached hostfile

~中略~

Installed:
  php.x86_64 0:5.4.22-1.el5.remi

Dependency Installed:
  libcurl.x86_64 0:7.21.7-5.el5.remi.2         libssh2.x86_64 0:1.2.7-1.el5.remi        php-cli.x86_64 0:5.4.22-1.el5.remi
  php-common.x86_64 0:5.4.22-1.el5.remi

Complete!

必要に応じてphp-mcryptphp-devel、削除されたモジュール類を入れてあげて下さい。

[root@centos5.8 ~]# yum install --enablerepo=remi php-mcrypt
Loaded plugins: downloadonly, fastestmirror, security
Loading mirror speeds from cached hostfile

~中略~

Installed:
  php-mcrypt.x86_64 0:5.4.22-1.el5.remi

Dependency Installed:
  libtool-ltdl.x86_64 0:1.5.22-7.el5_4

Complete!

[root@centos5.8 ~]# yum install --enablerepo=remi php-devel
Loaded plugins: downloadonly, fastestmirror, security
Loading mirror speeds from cached hostfile

~中略~

Installed:
  php-pear.noarch 1:1.9.4-23.el5.remi

Dependency Installed:
  php-process.x86_64 0:5.4.22-1.el5.remi                             php-xml.x86_64 0:5.4.22-1.el5.remi

Complete!

これらの他にもphp5.4化でphp-pearも入れ直しました。(・ω・´)
/etc/php.ini.rpmsave(php53削除時に作成された設定ファイルのバックアップ)からの再設定も、必要であれば行って下さい。


php5.4のインストールが完了したら、Apacheを再起動して完了です。

[root@centos5.8 ~]# /etc/init.d/httpd start
httpd を起動中:                                            [  OK  ]

さてと……。
動かなくなったPHPファイルはどれくらいあるのでしょうか(・_・;)

php5.4の更新内容についてはこちらをご覧下さい。
下位互換の無い変更点も結構あるので、PGの皆さん!ご注意下さい。




php5.4インストール時にエラーになった場合

php5.4をインストールする際に、わたしの環境では依存関係エラーが発生しました。

php-cli-5.4.23-1.el5.remi.x86_64 from remi has depsolving problems
  --> Missing Dependency: libedit.so.0()(64bit) is needed by package php-cli-5.4.23-1.el5.remi.x86_64 (remi)
Error: Missing Dependency: libedit.so.0()(64bit) is needed by package php-cli-5.4.23-1.el5.remi.x86_64 (remi)
 You could try using --skip-broken to work around the problem
 You could try running: package-cleanup --problems
                        package-cleanup --dupes
                        rpm -Va --nofiles --nodigest

libeditが無いとのことだったので、epelリポジトリから取得してインストールすることで対処しました。

[root@centos5.8 ~]# yum install --enablerepo=epel libedit
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
~中略~
Running Transaction
  Installing     : libedit                                                                                                     1/1

Installed:
  libedit.x86_64 0:2.11-2.20080712cvs.el5

Complete!

1.5倍のアクセスログファイル

HostnameLookups設定を無視して逆引きを行う問題

私達の部では、本校の学生向けのWebサーバも管理しています。

先日の事。
このWebサーバーのアクセスログファイルが先週分と比較してサイズが1.5倍にもなっていたので、中を覗いてみたところ接続元のIPアドレスがドメイン名になっているものが混ざっていました。

www.sample.com - - [31/Dec/2013:12:42:00 +0900] "GET /index/ HTTP/1.1" 200 39848
xxx.xxx.xxx.222 - - [31/Dec/2013:12:42:10 +0900] "GET /index/ HTTP/1.1" 200 39848
www.sample.net - - [31/Dec/2013:12:42:10 +0900] "GET /index/ HTTP/1.1" 200 39848
xxx.xxx.xxx.111 - - [31/Dec/2013:12:42:10 +0900] "GET /index/ HTTP/1.1" 200 39848

HostnameLookupsの設定は、いつも雪菜はoffにしているはず。
和音ちゃんはサーバー側の設定を変更する事は無いし、私もこの設定をonに変えた覚えはありません。

HostnameLookups Off

httpd.confの更新日時も古く、HostnameLookups設定もoffのまま。 
こちらの問題ではない様子。

Apacheの設定ファイル類で更新日時が新しいものを検索をすると、Host設定用のconfファイルが1件見つかりました。

<Directory /var/www/html/>
    Order Allow,Deny
    Allow From all
    Deny From 192.168.1.55       # とりあえず出禁
</Directory>

見つかったファイルを開いてみても、特に問題となる内容も無さそうな印象。
強いて言うのであれば、適当過ぎるコメントが追記されている事くらい。
試しにこのコメント行を消してみたところ

xxx.xxx.xxx.444 - - [31/Dec/2013:13:00:07 +0900] "GET /index/ HTTP/1.1" 200 39848
xxx.xxx.xxx.444 - - [31/Dec/2013:13:00:08 +0900] "GET /index/ HTTP/1.1" 200 39848
xxx.xxx.xxx.444 - - [31/Dec/2013:13:00:09 +0900] "GET /index/ HTTP/1.1" 200 39848
xxx.xxx.xxx.333 - - [31/Dec/2013:13:00:10 +0900] "GET /index/ HTTP/1.1" 200 39848

逆引き処理が止まりました……?

その後にいろいろと調べてみたところ、"HostnameLookupsの設定に関係なくDNSルックアップされてしまう"場合があるみたいですね。
    ① ホスト名で指定されている場合
    ② IPアドレスと同一行にコメントが記述されている場合


今回、参考にさせて頂いたサイト。


ここまで読んで下さり、ありがとう御座いました。

2013年12月16日月曜日

CentOS 5.8 に最新のopenssh-6.4p1をインストールする。

rpmbuildでCentOSのopensshを最新版(openssh-6.4p1)にバージョンアップしました。

今回の作業環境は、CentOS5.8(i386)でした。

CentOS5.xは、yumから取得可能なopensshのバージョンが4.3p2-72.el5と非常に古いです。
そこで今回は、最新版のopenssh(現時点での最新はバージョンopenssh-6.4p1)をインストールしてみました。

参考にさせて頂いたサイトです。
最新版のダウンロードはこちらから。

それでは、幾つかのパートに分けて作業の進行を紹介しています。

rpmパッケージの作成

作業を行うディレクトリへ移動します。
[root@localhost ~]# cd /usr/local/src/

最新版のopensshをダウンロードします。
[root@localhost src]# wget http://ftp.jaist.ac.jp/pub/OpenBSD/OpenSSH/portable/openssh-6.4p1.tar.gz
~中略~
100%[=============================================================================>] 1,201,402   1.88M/s 時間 0.6s

2013-12-31 23:59:59 (1.88 MB/s) - `openssh-6.4p1.tar.gz' へ保存完了 [1201402/1201402]

ダウンロードしたopensshを伸張します。
[root@localhost src]# tar xvzf openssh-6.4p1.tar.gz

不要となったアーカイブを削除。
[root@localhost src]# rm -f openssh-6.4p1.tar.gz

openssh.specファイルを編集します。(参考元のままです)
[root@localhost src]# vi openssh-6.4p1/contrib/redhat/openssh.spec
# Do we want to disable building of x11-askpass? (1=yes 0=no)
%define no_x11_askpass 1

# Do we want to disable building of gnome-askpass? (1=yes 0=no)
%define no_gnome_askpass 1

~

# インストールされているzlibのバージョンが1.2.3以上であれば記述不要のようです。
%configure \
        --without-zlib-version-check \
        --sysconfdir=%{_sysconfdir}/ssh \

不要なディレクトリを削除します。
[root@localhost src]# rm -rf openssh-6.4p1/contrib/aix/
[root@localhost src]# rm -rf openssh-6.4p1/contrib/caldera/
[root@localhost src]# rm -rf openssh-6.4p1/contrib/cygwin/
[root@localhost src]# rm -rf openssh-6.4p1/contrib/hpux/
[root@localhost src]# rm -rf openssh-6.4p1/contrib/solaris/
[root@localhost src]# rm -rf openssh-6.4p1/contrib/suse/

圧縮してタ~ボールに戻します。
[root@localhost src]# tar cvzf openssh-6.4p1.tar.gz openssh-6.4p1/

圧縮して不要となった元フォルダを削除。
[root@localhost src]# rm -rf openssh-6.4p1

タ~ボールをビルドしてRPMパッケージを作成します。
[root@localhost src]# rpmbuild -tb --clean openssh-6.4p1.tar.gz

作成されたRPMパッケージを確認。
[root@localhost src]# ls /usr/src/redhat/RPMS/i386/
openssh-6.4p1-1.i386.rpm    openssh-clients-6.4p1-1.i386.rpm    openssh-server-6.4p1-1.i386.rpm

これでパッケージの作成までは完了です。
次はいよいよ(`・ω・) インストール。 (その前に旧バージョンの削除)


インストール済みのopensshの削除

参考にさせて頂いたページの様に、「rpm -Uvh (パッケージ名)」でアップデートが出来なかった(相互依存のエラーが出た)ので、一度削除しました。
あと、リモート環境で作業を行う場合は十分に気をつけて下さい。 
切断されると大変です(・_・;)

sshdの停止。
[root@localhost ~]# /etc/init.d/sshd stop

opensshの削除。(git, perl-Gitも削除されてしまいます!)
[root@localhost ~]# yum remove openssh
===================================================================================================================================
 Package                           Arch                   Version                                Repository                   Size
===================================================================================================================================
Removing:
 openssh                           i386                   4.3p2-72.el5                           installed                   727 k
Removing for dependencies:
 git                               i386                   1.7.11.1-1.el5.rf                      installed                    17 M
 openssh-clients                   i386                   4.3p2-72.el5                           installed                   850 k
 openssh-server                    i386                   4.3p2-72.el5                           installed                   480 k
 perl-Git                          i386                   1.7.11.1-1.el5.rf                      installed                   116 k

Transaction Summary
===================================================================================================================================
Remove        5 Package(s)
Reinstall     0 Package(s)
Downgrade     0 Package(s)


作成した最新版opensshのインストール

インストールされていた旧opensshを削除したら、作成したRPMパッケージをインストールします。

[root@localhost ~]# rpm -ivh /usr/src/redhat/RPMS/i386/openssh-6.4p1-1.i386.rpm
準備中...                ########################################### [100%]
   1:openssh                ########################################### [100%]
[root@localhost ~]# rpm -ivh /usr/src/redhat/RPMS/i386/openssh-clients-6.4p1-1.i386.rpm
準備中...                ########################################### [100%]
   1:openssh-clients        ########################################### [100%]
[root@localhost ~]# rpm -ivh /usr/src/redhat/RPMS/i386/openssh-server-6.4p1-1.i386.rpm
準備中...                ########################################### [100%]
   1:openssh-server         ########################################### [100%]

あっという間に完了(・д・)=3
これでMatch(version 4.4以降の機能)を思う存分使えます!

[root@localhost ~]# cat /etc/ssh/sshd_config
~中略~
Match User username
       PasswordAuthentication yes

Matchに指定出来る条件

Addressアクセス元のIPアドレス
Hostアクセス元のホスト名
Userログインするユーザーのユーザ名
Groupログインするユーザーのグループ名

Matchに指定出来る項目

AcceptEnv AllowAgentForwarding AllowGroups AllowTcpForwarding
AllowUsers AuthenticationMethods AuthorizedKeysCommand AuthorizedKeysCommandUser
AuthorizedKeysFile AuthorizedPrincipalsFile Banner ChrootDirectory
DenyGroups DenyUsers ForceCommand GatewayPorts
GSSAPIAuthentication HostbasedAuthentication HostbasedUsesNameFromPacketOnly KbdInteractiveAuthentication
KerberosAuthentication MaxAuthTries MaxSessions PasswordAuthentication
PermitEmptyPasswords PermitOpen PermitRootLogin PermitTTY
PermitTunnel PubkeyAuthentication RekeyLimit RhostsRSAAuthentication
RSAAuthentication X11DisplayOffset X11Forwarding X11UseLocalHost

詳しくはOpenSSH-6.4p1 日本語マニュアルページ




番外編:rpmbuildでエラーが発生

わたしの場合、rpmbuildでエラーが発生しちゃいました。
内容は「依存パッケージがない~」というものでしたのでyumでちゃちゃっと入れました。

pam-develが足りない場合

configure: error: PAM headers not found
エラー: /var/tmp/rpm-tmp.18521 の不正な終了ステータス (%build)


RPM ビルドエラー:
    /var/tmp/rpm-tmp.18521 の不正な終了ステータス (%build)


[root@localhost ~]# yum install pam-devel
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile

~中略~

Running Transaction
  Updating       : pam                                                                                                         1/3
  Installing     : pam-devel                                                                                                   2/3
  Cleanup        : pam                                                                                                         3/3

Installed:
  pam-devel.i386 0:0.99.6.2-12.el5

Dependency Updated:
  pam.i386 0:0.99.6.2-12.el5

Complete!

gccが無い場合

configure: error: C compiler cannot create ...略


[root@localhost ~]# yum install gcc
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile

~中略~

Running Transaction
  Updating       : libgcc                                                                                                     1/12
  Updating       : libstdc++                                                                                                  2/12
  Updating       : cpp                                                                                                        3/12
  Updating       : gcc                                                                                                        4/12
  Updating       : libstdc++-devel                                                                                            5/12
  Updating       : gcc-c++                                                                                                    6/12
  Cleanup        : libstdc++                                                                                                  7/12
  Cleanup        : gcc                                                                                                        8/12
  Cleanup        : gcc-c++                                                                                                    9/12
  Cleanup        : libstdc++-devel                                                                                           10/12
  Cleanup        : cpp                                                                                                       11/12
  Cleanup        : libgcc                                                                                                    12/12

Updated:
  gcc.i386 0:4.1.2-54.el5

Dependency Updated:
  cpp.i386 0:4.1.2-54.el5               gcc-c++.i386 0:4.1.2-54.el5   libgcc.i386 0:4.1.2-54.el5   libstdc++.i386 0:4.1.2-54.el5
  libstdc++-devel.i386 0:4.1.2-54.el5

Complete!

2013年12月14日土曜日

【活動議事録2】 儲からないアフィリエイト

Google AdSenseの関連広告表示機能と実際

活動費を得るために導入したGoogle AdSense。
だけど、いつまで経っても成果は上がらずゼロのまま。
雪菜部長がクリック数を増やすために考えた秘策とは?
じょしかい!!トークの【活動議事録】シリーズ 第二弾です。
>第一弾はこちら


田中 雪菜

「ねぇねぇー、和音ぇェェェ……」

鈴木 和音

「何ですか? 雪菜先輩。 そんな生気のないカエルのような声で」

田中 雪菜

じょしかい!!に表示されるGoogle AdSenseテキストリンクにさぁー

    ► Mysql php
    ► Rpm package
    ► Fedora support
    ► Apache php

クリックする気が起きそうな項目が無い

鈴木 和音

「はい。 どう見ても残念すぎる感じですね」

田中 雪菜

「せっかく入れたのにー。 人生初のAdSense。 あぁ、マイ・スイート・アドセンス・バージンがァァァ」

鈴木 和音

「ちょっと何言ってるか分からないです」

田中 雪菜

「どうせこれを記事にしたって

    ► Adsense
    ► 広告
    ► 議事録
      

とかになるんでしょー」

鈴木 和音

「タイトルやヘッダのタグ、それとページの内容なんかを見ていますからね」

田中 雪菜

「あ、そっか。 タイトルに『雪菜です!』とか入れないとダメかも」

鈴木 和音

「Adsenseのテキストリンク

    ► 田中雪菜
    ► 雪菜
    ► 鈴木和音
      

なるほど」

田中 雪菜

わかった!
  『春の風にパンチラさせられました♪(*ノωノ)キャッ』
  みたいなタイトルにすればクリック率も上がるよね?

鈴木 和音

「画像もなしに投稿とな?」

田中 雪菜

「え。 でも、わたしのパンチラ写真載せたらGoogle様にBANされないかな?

鈴木 和音

そこですか!!




[宣伝]

アフィリエイト関連書籍の紹介です!

2013年12月13日金曜日

ZendFrameworkでMemcachedを使用する

Zend_Cache_Memcachedのサンプル

ZendFrameworkにあるZend_Cache_Memcachedを使用するサンプルです。

ZendFrameworkにはZend_Cacheという仕組みがあります。
特徴としては、保存するデータの形式を指定する フロントエンド と、データの保存の仕方を指定する バックエンド があります。
今回は、フロントエンドに Core を指定し、バックエンドに Memcached を指定しました。
(Core とはフロントエンドの基本的な機能を実装したものになります)
まず、下記のようにキャッシュにデータを追加するアクションを作成します。

/**
 * データの追加アクション
 */
public function addAction()
{
    // フロントエンド(Core)の設定
    $frontend = array(
        'lifetime' => 300,
    );
    // バックエンド(Memcached)の設定
    $backend = array(
        'servers' => array(
            array(
                'host'             => 'localhost',
                'port'             => 11211,
                'persistent'       => true,
                'timeout'          => 300,
                'weight'           => 1,
                'retry_interval'   => 15,
                'status'           => true,
                'failure_callback' => null,
            ),
        ),
        'compression' => true,
    );
    $cache = Zend_Cache::factory("Core", "Memcached", $frontend, $backend);
    
    // データをキャッシュ
    $cache->save("value1", "key1");
    $cache->save("value2", "key2");
    $cache->save("value3", "key3");
    
    echo "key1 : " . $cache->load("key1") . \n";
    echo "key2 : " . $cache->load("key2") . \n";
    echo "key3 : " . $cache->load("key3") . \n";
}

上記のアクションを実行し、キャッシュしたデータが画面に出力されていればキャッシュ機能は実装完了です。
次にキャッシュしたデータを取得するアクションを作成します。

/**
 * データ取得アクション
 */
public function getAction()
{
    // フロントエンド(Core)の設定
    $frontend = array(
        'lifetime' => 300,
    );
    // バックエンド(Memcached)の設定
    $backend = array(
        'servers' => array(
            array(
                'host'             => 'localhost',
                'port'             => 11211,
                'persistent'       => true,
                'timeout'          => 300,
                'weight'           => 1,
                'retry_interval'   => 15,
                'status'           => true,
                'failure_callback' => null,
            ),
        ),
        'compression' => true,
    );
    $cache = Zend_Cache::factory("Core", "Memcached", $frontend, $backend);
    
    echo "key1 : " . $cache->load("key1") . "\n";
    echo "key2 : " . $cache->load("key2") . "\n";
    echo "key3 : " . $cache->load("key3") . "\n";
}

上記の追加アクションを実行後、データの取得アクションを実行してデータが取得できれば実装完了です。
実は、キャッシュ機能を実装する際にハマったことがあって、バックエンドのMemcachedにホスト情報を指定すると
何故かキャッシュされないという現象が起きていました。
問題点を調べたところ、servers内の配列にあるfailure_callbackキーに指定するパラメータ値が原因でした。
はじめは、ZendFrameworkのドキュメントを見ながらパラメータを指定していたのですが、初期値が空と書いてあったので同じように設定していました。
実はこれが大間違いで、failure_callbackの初期値はNULLでした。
空の値を設定していたので不正な引数として処理されていたようです。

ついでに他の初期値も確認してみたところ、タイムアウトも5ではなく1になっていました
ドキュメントの初期値

$backend = array(
    'servers' = array(
        array(
            'host'             => "localhost",
            'port'             => 11211,
            'persistent'       => true,
            'weight'           => 1,
            'timeout'          => 5,
            'retry_interval'   => 15,
            'status'           => true,
            'failure_callback' => "",
        ),
    ),
    'compression'   => false,
    'compatibility' => false,
);

実際のライブラリに設定されていた初期値

/**
 * Default Values
 */
const DEFAULT_HOST = '127.0.0.1';
const DEFAULT_PORT =  11211;
const DEFAULT_PERSISTENT = true;
const DEFAULT_WEIGHT  = 1;
const DEFAULT_TIMEOUT = 1;
const DEFAULT_RETRY_INTERVAL = 15;
const DEFAULT_STATUS = true;
const DEFAULT_FAILURE_CALLBACK = null;

protected $_options = array(
    'servers' => array(array(
        'host' => self::DEFAULT_HOST,
        'port' => self::DEFAULT_PORT,
        'persistent' => self::DEFAULT_PERSISTENT,
        'weight'  => self::DEFAULT_WEIGHT,
        'timeout' => self::DEFAULT_TIMEOUT,
        'retry_interval' => self::DEFAULT_RETRY_INTERVAL,
        'status' => self::DEFAULT_STATUS,
        'failure_callback' => self::DEFAULT_FAILURE_CALLBACK
    )),
    'compression' => false,
    'compatibility' => false,
);

さらによく見てみると、実はこのZend_Cache_MemcachedMemcachedではなくMemcacheのインスタンスを生成しているようです。

/Zend/Cache/Backend/Memcached.php

/**
 * Constructor
 *
 * @param array $options associative array of options
 * @throws Zend_Cache_Exception
 * @return void
 */
public function __construct(array $options = array())
{
    if (!extension_loaded('memcache')) {
        Zend_Cache::throwException('The memcache extension must be loaded for using this backend !');
    }
    parent::__construct($options);
    if (isset($this->_options['servers'])) {
        $value= $this->_options['servers'];
        if (isset($value['host'])) {
            // in this case, $value seems to be a simple associative array (one server only)
            $value = array(0 => $value); // let's transform it into a classical array of associative arrays
        }
        $this->setOption('servers', $value);
    }
    $this->_memcache = new Memcache;

おわり

2013年12月12日木曜日

MySQL5.0から5.5への道 (そして起動に失敗しました。)

MySQLを5.0から5.5にアップデートした時のお話。

MySQLを5.0から5.5にアップデートする作業を頂いた時のお話です。
アップデート作業自体は問題無く終わったのですが・・・・・・。

早速スタートしてみると「失敗」。

はい。 マニュアルをちゃんと読んでませんでした。 my.cnfのパラメータも色々と使えなくなってました! (〃´ω`)エヘヘ
default-charactor-set とか。
詳しくはこちらを読んでください。

では以下、その時のエラーと対応の記録です。

[root@centos5.8 etc]# /etc/init.d/mysqld start
MySQL Daemon failed to start.
mysqld を起動中:                                           [失敗]
[root@centos5.8 etc]# vi /etc/my.cnf
[mysqld]
default-charactor-set=utf8削除します。
charactor-set-server=utf8追加します。

他 - 略
~~~~~~~~~~~~~~~~~~~

[root@centos5.8 etc]# /etc/init.d/mysqld start --skip-name-resolve
mysqld を起動中:                                           [  OK  ]

起動に成功しました( ´∀`) ホッ
では、おやすみ前にmysqld.logの方を確認してみましょう。

    ・・・・・・。

    ・・・。

    。


131212  0:00:00 [ERROR] Missing system table mysql.proxies_priv; please run mysql_upgrade to create it
131212  0:00:00 [ERROR] Can't open and lock privilege tables: Table 'mysql.servers' doesn't exist
131212  0:00:00 [ERROR] Native table 'performance_schema'.'events_waits_current' has the wrong structure
131212  0:00:00 [ERROR] Native table 'performance_schema'.'events_waits_history' has the wrong structure
131212  0:00:00 [ERROR] Native table 'performance_schema'.'events_waits_history_long' has the wrong structure
131212  0:00:00 [ERROR] Native table 'performance_schema'.'setup_consumers' has the wrong structure
131212  0:00:00 [ERROR] Native table 'performance_schema'.'setup_instruments' has the wrong structure
131212  0:00:00 [ERROR] Native table 'performance_schema'.'setup_timers' has the wrong structure
131212  0:00:00 [ERROR] Native table 'performance_schema'.'performance_timers' has the wrong structure
131212  0:00:00 [ERROR] Native table 'performance_schema'.'threads' has the wrong structure
131212  0:00:00 [ERROR] Native table 'performance_schema'.'events_waits_summary_by_thread_by_event_name' has the wrong structure
131212  0:00:00 [ERROR] Native table 'performance_schema'.'events_waits_summary_by_instance' has the wrong structure
131212  0:00:00 [ERROR] Native table 'performance_schema'.'events_waits_summary_global_by_event_name' has the wrong structure
131212  0:00:00 [ERROR] Native table 'performance_schema'.'file_summary_by_event_name' has the wrong structure
131212  0:00:00 [ERROR] Native table 'performance_schema'.'file_summary_by_instance' has the wrong structure
131212  0:00:00 [ERROR] Native table 'performance_schema'.'mutex_instances' has the wrong structure
131212  0:00:00 [ERROR] Native table 'performance_schema'.'rwlock_instances' has the wrong structure
131212  0:00:00 [ERROR] Native table 'performance_schema'.'cond_instances' has the wrong structure
131212  0:00:00 [ERROR] Native table 'performance_schema'.'file_instances' has the wrong structure
131212  0:00:00 [ERROR] Column count of mysql.db is wrong. Expected 22, found 20. Created with MySQL 50095, now running                                                                                                                                                        50535. Please use mysql_upgrade to fix this error.
131212  0:00:00 [ERROR] mysql.user has no `Event_priv` column at position 29
131212  0:00:00 [ERROR] Cannot open mysql.event
131212  0:00:00 [ERROR] Event Scheduler: An error occurred when initializing system tables. Disabling the Event Scheduler.

な、何じゃこりゃああああああああああああああああ! 

見事に謎エラー出てました。
取り敢えずplease run mysql_upgrade to create itと騒ぎ立てておられるので、ここは大人しく実行してやろうじゃないですかー。

[root@centos5.8 ~]# mysql_upgrade -u root -p
Enter password:

~中略~

mysql.help_category                                OK
mysql.help_keyword                                 OK
mysql.help_topic                                   OK
mysql.proc                                         OK
mysql.procs_priv                                   OK
mysql.time_zone_name                               OK
Running 'mysql_fix_privilege_tables'...
OK

MySQLアップグレード(mysql_upgrade)でのテーブルチェック、勉強になりました。 公式にしっかり書いてありますね。
今まではDB名にハイフン(-)を使っていた箇所が#に書き換えられてたのを手動で直していたのですが、これで解決するんですね。 
( ´∀`)エヘヘ 無知でした。

mysql_upgradeが完了。
再起動でmysqld.logにエラーが吐かれていない事を確認して、無事に終えることが出来ました。
 ε=(´ー`*)フゥ~
最後に、MySQLサーバーへログインしてSTATUSコマンドを実行した結果を貼っておきます!

mysql> STATUS;

Connection id:          9999
Current database:
Current user:           root@localhost
SSL:                    Not in use
Current pager:          stdout
Using outfile:          ''
Using delimiter:        ;
Server version:         5.5.35 MySQL Community Server (GPL) by Remi
Protocol version:       10
Connection:             Localhost via UNIX socket
Server characterset:    utf8
Db     characterset:    utf8
Client characterset:    utf8
Conn.  characterset:    utf8
UNIX socket:            /var/lib/mysql/mysql.sock
Uptime:                 18 sec

Threads: 1  Questions: 4  Slow queries: 0  Opens: 12  Flush tables: 1  Open tables: 6  Queries per second avg: 0.222
--------------

mysql> Bye

今回、参考にさせて頂きましたサイト。

ありがとう御座いました。

2013年12月11日水曜日

CentOS 5.8 でphp-pecl-memcachedを使う。

php53-pecl-memcached

表題のままですが、作業を行わせて頂ける機会があったのでその時のログです。
そもそも、このCentOSサーバーにはあのphp53がインストールされていたのです。 Σ(・ω・ノ)ノ゛パッケージ少ナイ?
当然、php53-pecl-memcachedなんてものは期待通りのNot available.

では、恐る恐るremiのphp-pecl-memcachedをyumでインストール。

Error: Missing Dependency: libedit.so.0()(64bit) is needed by package php-cli-5.4.22-1.el5.remi.x86_64 (remi)
Error: Missing Dependency: libtokyocabinet.so.7()(64bit) is needed by package php-dba-5.4.22-1.el5.remi.x86_64 (remi)
Error: Missing Dependency: libt1.so.5()(64bit) is needed by package php-gd-5.4.22-1.el5.remi.x86_64 (remi)
Error: Missing Dependency: libedit.so.0()(64bit) is needed by package php-devel-5.4.22-1.el5.remi.x86_64 (remi)
 You could try using --skip-broken to work around the problem

ですよねーー! わかってた!!

ならばとソースからコンパイルして入れようと試みるもconfigureの時点で壮大に大コケ。 *o_ _)oバタッ

今回はphp53を削除してphp 5.4を(remiから)入れる了承を得て作業再開。
なので、以下の作業ログはphp 5.4の環境でのお話になります。



CentOS 5.8 memcachedのインストール

上の話とは関係なくmemcachedのインストール自体はサクッと。イケます。

[root@centos5.8 ~]# yum --enablerepo=remi install memcached memcached-devel
Loaded plugins: downloadonly, fastestmirror, security
Loading mirror speeds from cached hostfile

~中略~

Dependencies Resolved

===================================================================================================================================
 Package                            Arch                      Version                                Repository               Size
===================================================================================================================================
Installing:
 memcached                          x86_64                    1.4.15-2.el5.remi                      remi                     84 k
 memcached-devel                    x86_64                    1.4.15-2.el5.remi                      remi                     11 k

Transaction Summary
===================================================================================================================================
Install       2 Package(s)
Upgrade       0 Package(s)

Total download size: 95 k
Is this ok [y/N]: y
Downloading Packages:
(1/2): memcached-devel-1.4.15-2.el5.remi.x86_64.rpm                                                         |  11 kB     00:00
(2/2): memcached-1.4.15-2.el5.remi.x86_64.rpm                                                               |  84 kB     00:00
-----------------------------------------------------------------------------------------------------------------------------------
Total                                                                                              1.0 MB/s |  95 kB     00:00
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing     : memcached                                                                                                   1/2
  Installing     : memcached-devel                                                                                             2/2

Installed:
  memcached.x86_64 0:1.4.15-2.el5.remi                          memcached-devel.x86_64 0:1.4.15-2.el5.remi

Complete!

インストールが完了したら早速(起動)x(起動)。

[root@centos5.8 ~]# /etc/init.d/memcached start
memcached を起動中:                                        [  OK  ]

是非、memcached-toolも使ってみてください!



CentOS 5.8 にyumでphp-pecl-memcachedを入れる

以降は上でもお話させて頂いた通り、php 5.4の環境での話になります。
remiたんからphp-pecl-memcachedを入れています。

[root@centos5.8 ~]# yum install --enablerepo=remi php-pecl-memcached
Loaded plugins: downloadonly, fastestmirror, security
Loading mirror speeds from cached hostfile

~中略~

Dependencies Resolved

===================================================================================================================================
 Package                              Arch                     Version                                Repository              Size
===================================================================================================================================
Installing:
 php-pecl-memcached                   x86_64                   2.1.0-4.el5.remi.1                     remi                    78 k
Installing for dependencies:
 libmemcached                         x86_64                   1.0.4-1.el5.remi                       remi                   202 k

Transaction Summary
===================================================================================================================================
Install       2 Package(s)
Upgrade       0 Package(s)

Total download size: 280 k
Is this ok [y/N]: y
Downloading Packages:
(1/2): php-pecl-memcached-2.1.0-4.el5.remi.1.x86_64.rpm                                                     |  78 kB     00:00
(2/2): libmemcached-1.0.4-1.el5.remi.x86_64.rpm                                                             | 202 kB     00:00
-----------------------------------------------------------------------------------------------------------------------------------
Total                                                                                              3.9 MB/s | 280 kB     00:00
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing     : libmemcached                                                                                                1/2
  Installing     : php-pecl-memcached                                                                                          2/2

Installed:
  php-pecl-memcached.x86_64 0:2.1.0-4.el5.remi.1

Dependency Installed:
  libmemcached.x86_64 0:1.0.4-1.el5.remi

Complete!

インストールも無事完了ですね。

[root@centos5.8 ~]# cat /etc/php.d/memcached.ini | head -n 2
; Enable memcached extension module
extension=memcached.so

memcachedの設定ファイルを確認しています。
ここで使用するポート番号なども指定出来るので開いて見てください。

[root@centos5.8 ~]# /etc/init.d/httpd restart
httpd を停止中:                                            [  OK  ]
httpd を起動中:                                            [  OK  ]

仕上げにApacheを再読み込みさせて完了です。

今回、参考にお邪魔させて頂いたページ

本当にありがとうございます。 c(・ω・`c⌒っ

和音のPHPでMemcachedを利用する (php-pecl-memcached)もよろしくお願いします!

2013年12月10日火曜日

PHPでMemcachedを利用する (php-pecl-memcached)

Memcachedのサンプル

PHPでのMemcachedを利用するサンプルです。

データを登録し、別のブラウザ等からアクセスしてデータが正常に取得できるかをテストしています。
下の2ファイル(add.phpとget.php)を用意しました。

はじめにadd.phpを実行し、つぎにget.phpを別のブラウザ等から実行する事で確認します。
値が取得できていればOKとします。

add.php
<?php
$mc = new Memcached();

// Memcachedサーバを追加
$mc->addServer("localhost", 11211);

// データの追加
$mc->add("key1", "value1");
$mc->add("key2", "value2");
$mc->add("key3", "value3");


get.php
<?php
$mc = new Memcached();

// Memcachedサーバを追加
$mc->addServer("localhost", 11211);

// データの取得
echo "key1 : " . $mc->get("key1") . "\n";
echo "key2 : " . $mc->get("key2") . "\n";
echo "key3 : " . $mc->get("key3") . "\n";


実行時間とメモリダンプの情報も記載しておきます。

[root@1803-zm11 ~]# time /usr/bin/php ./add.php
real    0m0.078s
user    0m0.068s
sys     0m0.010s

[root@localhost ~]# time /usr/bin/php ./get.php
real    0m0.079s
user    0m0.067s
sys     0m0.011s

[root@localhost ~]# memcached-tool localhost:11211 dump
Dumping memcache contents
  Number of buckets: 1
  Number of items  : 3
Dumping bucket 1 - 3 total items
add key2 0 1386578473 6
value2
add key1 0 1386578473 6
value1
add key3 0 1386578473 6
value3



memcachedの有効期限

簡単な使い方ですが、追加するデータごとに有効期限もセットできるようです。
有効期限は1秒単位でセットできます。
例)

<?php
$mc = new Memcached();
$mc->addServer("localhost", 11211);

// 有効期限付きのデータを設定
$mc->add("key1", "value1", 300); //  5分
$mc->add("key2", "value2",  60); //  1分
$mc->add("key3", "value3",  10); // 10秒

2013年12月9日月曜日

CentOS 5.8 にyumでPHP5.5をインストールする。

CentOS5.8(i386)に、yumからPHP5.5をインストールする。

始めに、remi.repoの中にremi-php55のリポジトリ設定が存在するか確認し、存在しない場合はリポジトリの追加を行って下さい。

[root@centos5.8 ~]# cat /etc/yum.repos.d/remi.repo
 - 以下、抜粋 -
[remi-php55]
name=Les RPM de remi de PHP 5.5 pour Enterprise Linux 5 - $basearch
#baseurl=http://rpms.famillecollet.com/enterprise/5/php55/$basearch/
mirrorlist=http://rpms.famillecollet.com/enterprise/5/php55/mirror
# WARNING: If you enable this repository, you must also enable "remi"
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi

さっそく、remiたんの[remi-php55]からPHP5.5を取ってみます。

[root@centos5.8 ~]# yum install --enablerepo=remi,remi-php55 php
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile

~中略~

php-cli-5.5.6-1.el5.remi.i386 from remi-php55 has depsolving problems
  --> Missing Dependency: libedit.so.0 is needed by package php-cli-5.5.6-1.el5.remi.i386 (remi-php55)
Error: Missing Dependency: libedit.so.0 is needed by package php-cli-5.5.6-1.el5.remi.i386 (remi-php55)
 You could try using --skip-broken to work around the problem
 You could try running: package-cleanup --problems
                        package-cleanup --dupes
                        rpm -Va --nofiles --nodigest

Missing Dependency
依存関係を解決出来ない様子。(*´∩ω・`)゚
結局、remi, remi-php55に加えepelリポジトリの参照指定を増やすことで解決しました。

[root@centos5.8 ~]# yum install --enablerepo=epel,remi,remi-php55 php
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile

~中略~

Dependencies Resolved

========================================================================================================================
 Package                       Arch                 Version                              Repository                Size
========================================================================================================================
Installing:
 php                           i386                 5.5.6-1.el5.remi                     remi-php55               2.9 M
Installing for dependencies:
 apr                           i386                 1.2.7-11.el5_6.5                     base                     124 k
 apr-util                      i386                 1.2.7-11.el5_5.2                     base                      80 k
 httpd                         i386                 2.2.3-83.el5.centos                  updates                  1.2 M
 libcurl                       i386                 7.27.0-11.el5.remi                   remi-php55               221 k
 libedit                       i386                 2.11-2.20080712cvs.el5               epel                      79 k
 libssh2                       i386                 1.2.7-1.el5.remi                     remi                      82 k
 libxslt                       i386                 1.1.17-4.el5_8.3                     base                     420 k
 php-cli                       i386                 5.5.6-1.el5.remi                     remi-php55               2.8 M
 php-common                    i386                 5.5.6-1.el5.remi                     remi-php55               1.2 M
 php-pear                      noarch               1:1.9.4-23.el5.remi                  remi                     428 k
 php-pecl-jsonc                i386                 1.3.2-2.el5.remi.1                   remi-php55                67 k
 php-pecl-zip                  i386                 1.12.2-2.el5.remi.5.5                remi-php55               315 k
 php-process                   i386                 5.5.6-1.el5.remi                     remi-php55                60 k
 php-xml                       i386                 5.5.6-1.el5.remi                     remi-php55               277 k
 postgresql-libs               i386                 8.1.23-6.el5_8                       base                     197 k
Updating for dependencies:
 openldap                      i386                 2.3.43-25.el5_8.1                    base                     298 k

Transaction Summary
========================================================================================================================
Install      16 Package(s)
Upgrade       1 Package(s)

Total download size: 11 M
Is this ok [y/N]: y
Downloading Packages:
(1/17): php-process-5.5.6-1.el5.remi.i386.rpm                                                    |  60 kB     00:00
(2/17): php-pecl-jsonc-1.3.2-2.el5.remi.1.i386.rpm                                               |  67 kB     00:00
(3/17): libedit-2.11-2.20080712cvs.el5.i386.rpm                                                  |  79 kB     00:00
(4/17): apr-util-1.2.7-11.el5_5.2.i386.rpm                                                       |  80 kB     00:00
(5/17): libssh2-1.2.7-1.el5.remi.i386.rpm                                                        |  82 kB     00:00
(6/17): apr-1.2.7-11.el5_6.5.i386.rpm                                                            | 124 kB     00:00
(7/17): postgresql-libs-8.1.23-6.el5_8.i386.rpm                                                  | 197 kB     00:00
(8/17): libcurl-7.27.0-11.el5.remi.i386.rpm                                                      | 221 kB     00:00
(9/17): php-xml-5.5.6-1.el5.remi.i386.rpm                                                        | 277 kB     00:00
(10/17): openldap-2.3.43-25.el5_8.1.i386.rpm                                                     | 298 kB     00:00
(11/17): php-pecl-zip-1.12.2-2.el5.remi.5.5.i386.rpm                                             | 315 kB     00:00
(12/17): libxslt-1.1.17-4.el5_8.3.i386.rpm                                                       | 420 kB     00:00
(13/17): php-pear-1.9.4-23.el5.remi.noarch.rpm                                                   | 428 kB     00:00
(14/17): php-common-5.5.6-1.el5.remi.i386.rpm                                                    | 1.2 MB     00:02
(15/17): httpd-2.2.3-83.el5.centos.i386.rpm                                                      | 1.2 MB     00:00
(16/17): php-cli-5.5.6-1.el5.remi.i386.rpm                                                       | 2.8 MB     00:05
(17/17): php-5.5.6-1.el5.remi.i386.rpm                                                           | 2.9 MB     00:04
------------------------------------------------------------------------------------------------------------------------
Total                                                                                   509 kB/s |  11 MB     00:21

Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Updating       : openldap                                                                                        1/18
  Installing     : apr                                                                                             2/18
  Installing     : postgresql-libs                                                                                 3/18
  Installing     : apr-util                                                                                        4/18
  Installing     : httpd                                                                                           5/18
  Installing     : libxslt                                                                                         6/18
  Installing     : libssh2                                                                                         7/18
  Installing     : libcurl                                                                                         8/18
  Installing     : libedit                                                                                         9/18
  Installing     : php-xml                                                                                        10/18
  Installing     : php-common                                                                                     11/18
  Installing     : php-cli                                                                                        12/18
  Installing     : php-process                                                                                    13/18
  Installing     : php-pear                                                                                       14/18
  Installing     : php-pecl-zip                                                                                   15/18
  Installing     : php                                                                                            16/18
  Installing     : php-pecl-jsonc                                                                                 17/18
  Cleanup        : openldap                                                                                       18/18

Installed:
  php.i386 0:5.5.6-1.el5.remi

Dependency Installed:
  apr.i386 0:1.2.7-11.el5_6.5                                apr-util.i386 0:1.2.7-11.el5_5.2
  httpd.i386 0:2.2.3-83.el5.centos                           libcurl.i386 0:7.27.0-11.el5.remi
  libedit.i386 0:2.11-2.20080712cvs.el5                      libssh2.i386 0:1.2.7-1.el5.remi
  libxslt.i386 0:1.1.17-4.el5_8.3                            php-cli.i386 0:5.5.6-1.el5.remi
  php-common.i386 0:5.5.6-1.el5.remi                         php-pear.noarch 1:1.9.4-23.el5.remi
  php-pecl-jsonc.i386 0:1.3.2-2.el5.remi.1                   php-pecl-zip.i386 0:1.12.2-2.el5.remi.5.5
  php-process.i386 0:5.5.6-1.el5.remi                        php-xml.i386 0:5.5.6-1.el5.remi
  postgresql-libs.i386 0:8.1.23-6.el5_8

Dependency Updated:
  openldap.i386 0:2.3.43-25.el5_8.1

Complete!


最後にインストールされたPHPのバージョンを確認して終わりにします。

[root@centos5.8 ~]# php -v
PHP 5.5.6 (cli) (built: Nov 13 2013 08:00:07)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2013 Zend Technologies

少ない内容ですがお役に立てたら嬉しいです。 c(・ω・´c⌒っ




[番外編]

PHP 5.5のphp-mcryptをインストール。

[root@centos5.8 ~]# yum install --enablerepo=remi-php55 'php-mcrypt'
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile

~中略~

Dependencies Resolved

========================================================================================================================
 Package                      Arch                 Version                             Repository                  Size
========================================================================================================================
Installing:
 php-mcrypt                   i386                 5.5.6-1.el5.remi                    remi-php55                  44 k
Installing for dependencies:
 libmcrypt                    i386                 2.5.8-4.el5.centos                  extras                     116 k
 libtool-ltdl                 i386                 1.5.22-7.el5_4                      base                        37 k

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

Total download size: 196 k
Is this ok [y/N]: y
Downloading Packages:
(1/3): libtool-ltdl-1.5.22-7.el5_4.i386.rpm                                                      |  37 kB     00:00
(2/3): php-mcrypt-5.5.6-1.el5.remi.i386.rpm                                                      |  44 kB     00:00
(3/3): libmcrypt-2.5.8-4.el5.centos.i386.rpm                                                     | 116 kB     00:00
------------------------------------------------------------------------------------------------------------------------
Total                                                                                   212 kB/s | 196 kB     00:00
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing     : libtool-ltdl                                                                                     1/3
  Installing     : libmcrypt                                                                                        2/3
  Installing     : php-mcrypt                                                                                       3/3

Installed:
  php-mcrypt.i386 0:5.5.6-1.el5.remi

Dependency Installed:
  libmcrypt.i386 0:2.5.8-4.el5.centos                         libtool-ltdl.i386 0:1.5.22-7.el5_4

Complete!

先日の事件もあったので、念の為に確認x確認。

[root@centos5.8 ~]# cat /etc/php.d/mcrypt.ini
; Enable mcrypt extension module
extension=mcrypt.so

(●,,`З´b)b OKッ☆

phpのタイムゾーンエラー (警告)

Unknown: It is not safe to rely on the system's timezone settings. (in Unknown on line 0)

phpで次のような警告(タイムゾーン)が出ている(事後発覚)場合があります(した)。

PHP Warning:  Unknown: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in Unknown on line 0

タイムゾーン設定がされていない場合ですね。
早速、タイムゾーンの設定をして荒ぶるphpさんを黙らせたいと思います。

ではでは、まずは現状の確認から。

[root@centos5.8 ~]# php -i | grep timezone
Default timezone => UTC
date.timezone => no value => no value

php.inidate.timezoneえいじあーとおきょおおおおおおおおう(Asia/Tokyo)を指定してApacheを再読み込みで。

[root@centos5.8 ~]# vi /etc/php.ini
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
;date.timezone =               ← コメントアウトを解除して
date.timezone = Asia/Tokyo     ← Asia/Tokyo を追記しました

今回のわたしの環境はPHP5.4でしたので、こちらの方の記事を知識の参考とさせて頂きました。ヽ(´▽`*)ノ

わたしの方では検証していませんが、他サイトさん(こことかここ)の情報によれば、timezoneの設定で日付を扱うphp関数の速度が結構違うみたいですね。

2013年12月8日日曜日

CentOS 5.8 にリポジトリを追加する。 (epel, remi, rpmforge, CentALT)

CentOS5(x86_64)にepel, remi, rpmforgeのリポジトリを追加する。

CentOS5.8(x86_64)のサーバーにepel, remi, rpmforgeのリポジトリを追加(更新)しました。


epel

[root@centos5.8 ~]# rpm -Uvh http://ftp-srv2.kddilabs.jp/Linux/distributions/fedora/epel/5/x86_64/epel-release-5-4.noarch.rpm
http://ftp-srv2.kddilabs.jp/Linux/distributions/fedora/epel/5/i386/epel-release-5-4.noarch.rpm を取得中
警告: /var/tmp/rpm-xfer.5Qjih2: ヘッダ V3 DSA signature: NOKEY, key ID 217521f6
準備中...                ########################################### [100%]
   1:epel-release           ########################################### [100%]


remi

[root@centos5.8 ~]# rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-5.rpm
http://rpms.famillecollet.com/enterprise/remi-release-5.rpm を取得中
警告: /var/tmp/rpm-xfer.oGYntL: ヘッダ V3 DSA signature: NOKEY, key ID 00f97f56
準備中...                ########################################### [100%]
   1:remi-release           ########################################### [100%]


rpmforge

[root@centos5.8 ~]# rpm -Uvh http://apt.sw.be/redhat/el5/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm
http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.5.3-1.el5.rf.i386.rpm を取得中
警告: /var/tmp/rpm-xfer.R6dKsb: ヘッダ V3 DSA signature: NOKEY, key ID 6b8d79e6
準備中...                ########################################### [100%]
   1:rpmforge-release       ########################################### [100%]


CentALT

[root@centos5.8 ~]# rpm --import http://centos.alt.ru/repository/centos/RPM-GPG-KEY-CentALT

[root@centos5.8 ~]# rpm -Uvh http://centos.alt.ru/repository/centos/5/x86_64/centalt-release-5-3.noarch.rpm
http://centos.alt.ru/repository/centos/5/x86_64/centalt-release-5-3.noarch.rpm を取得中
準備中...                ########################################### [100%]
   1:centalt-release        ########################################### [100%]

NOKEYって警告貰っちゃいました。
警告を消す場合は、4つめののようにrpm --importRPM-GPG-KEYを取得してください。

リポジトリの選択は--enablerepoで指定するので enable=1 の設定は 0 に変更しました。

[root@centos5.8 ~]# sed -i "s/^enabled=1/enabled=0/" /etc/yum.repos.d/rpmforge.repo /etc/yum.repos.d/epel.repo /etc/yum.repos.d/remi.repo

またはviで直接

[root@centos5.8 ~]# vi /etc/yum.repos.d/centalt.repo
[CentALT]
name=CentALT Packages for Enterprise Linux 5 - $basearch
baseurl=http://centos.alt.ru/repository/centos/5/$basearch/
enabled=0
gpgcheck=0
~

ついでにyumdownloaderを入れて

[root@centos5.8 ~]# yum install yum-utils
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile

~中略~

Running Transaction
  Installing     : yum-utils                                                                                        1/1

Installed:
  yum-utils.noarch 0:1.1.16-21.el5.centos

Complete!

一丁上がり! ∩(´∀`)∩ワァイ♪

2013年12月7日土曜日

CentOS 6.4 rpmforgeから取得したphp-mcryptの不具合(ファイルが読み込めません) - php5.3

Unable to load dynamic library '/usr/lib/php/modules/module.so'

学校も休日の今日。
何気なくPHPのバージョンを確認して悦に浸ろうとした時のこと。

[root@centos6 ~]# php -v
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/module.so' - /usr/lib/php/modules/module.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP 5.3.3 (cli) (built: Jul 12 2013 20:21:47)
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies


え。
えええええええええええ!?


何? この警告。 許さない。絶対に


  Unable to load dynamic library '/usr/lib/php/modules/module.so'

module.soが読めていないみたいです。

早速調査開始。
拡張モジュール読み込み設定のあたりだと思うので、/php.d/以下のiniファイルに検索をかけてみました。

[root@centos6 ~]# find /etc/php.d/ -name '*.ini' -type f -print | xargs grep 'module.so'
/etc/php.d/mcrypt.ini:extension=module.so

ビンゴ!☆⌒d(*^ー゚)b
先日、このCentOS6.4サーバーでphp-mcryptの更新を行ったのですが、その時に作られたmcrypt.iniの中身がおかしかったみたいです。
念のため、mcrypt.soの位置を確認します。

[root@centos6 ~]# rpm -ql php-mcrypt
/etc/php.d/mcrypt.ini
/usr/lib/php/modules/mcrypt.so

読み込みモジュール名の書き換えだけで問題ないようなので、viで変更しました。__ロ(。_。*)ケシケシ♪

[root@centos6 ~]# vi /etc/php.d/mcrypt.ini
; Enable mcrypt extension mcrypt
extension=module.so  ← 削除しました。
extension=mcrypt.so  ← 追加しました。

設定ファイルを保存したら、Apacheを再読み込みさせて完了。

[root@centos6 ~]# /etc/init.d/httpd restart
httpd を停止中:                                            [  OK  ]
httpd を起動中:                                            [  OK  ]

[root@centos6 ~]# php -v
PHP 5.3.3 (cli) (built: Jul 12 2013 20:21:47)
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies

といった流れで、難なく解決しました。

いやいや。

[root@centos6 ~]# yum list installed | grep 'php-mcrypt'
php-mcrypt.i686         5.3.3-1.el6.rf    @rpmforge

[root@centos6 ~]# grep 'php-mcrypt' /var/log/yum.log
Dec 01 18:18:45 Installed: php-mcrypt-5.3.3-1.el6.rf.i686

rpmforgeめ。 設定ファイルの内容に誤りがあるとは・・・・・・。
面倒臭い。 (´⊆`;) いや、侮れない。


来週から行う稼働中サーバーのPHP5.4化作業もいろいろと気をつけよーっと。