2010年10月17日日曜日

phpMyAdmin の文字化け対策

MySQL を phpMyAdmin から使用しているときに、
SQLの実行結果が文字化けしてしまうことがあります。

原因としてはサーバの文字設定とPHPの文字設定が違うからです。

MySQL の文字設定を問い合わせてみると…


SHOW VARIABLES LIKE 'char%';

Variable_name Value
character_set_client utf8
character_set_connection utf8
character_set_database utf8
character_set_filesystem binary
character_set_results utf8
character_set_server ujis
character_set_system utf8
character_sets_dir /usr/share/mysql/charsets/



character_set_server ujis

これが問題っぽいです。

character_set_filesystem binary

これはこのままで問題ないです。(変更できない)

で、この設定を(character_set_server) を変えればよいのですが、
私の使用しているレンタルサーバでは設定ファイルを触れないので
この設定を変更できません。

では、どうすれば・・・???

根本的な解決策は見つからないのですが、とりあえずの対応方法が
あるので紹介します。

SQLを実行する際に次のコマンドを一緒に入力します。


SET character_set_server = utf8;


例:

SET character_set_server = utf8;
SELECT * FROM hogetbl;


これで、文字化けはしなくなると思います。

ちなみにこのコマンドを実行したあとのサーバの設定は次のようになります。


SET character_set_server = utf8;
SHOW VARIABLES LIKE 'char%';

Variable_name Value
character_set_client utf8
character_set_connection utf8
character_set_database utf8
character_set_filesystem binary
character_set_results utf8
character_set_server utf8
character_set_system utf8
character_sets_dir /usr/share/mysql/charsets/


ちゃんと character_set_server が変わっていますね。

でも、一つ問題が・・・
この設定変更は毎回入力してやらないと有効になりません。

ちょっとめんどくさいですが、これでとりあえずは解決できました。
こういうところがレンタルサーバの使いづらいところですね。

2010年7月11日日曜日

Apache PHP から sudo する方法

※以下の説明は PHP が Apache ユーザで実行されている場合です。

PHP から shell を実行して sudo したい場合は Apache から sudo が
実行できるように設定しておく必要があります。

sudo の設定は visudo というコマンドで行います。
使用方法としては、 vi と変わりません。


[root]# visudo

# ↓この一行を追加すると、apache から shutdown -h now が実行可能になります
apache localhost=NOPASSWD: /sbin/shutdown -h now


でまぁ、これを PHP から実行してみます。
例えば次のようなコードで


$out = "";
$out = shell_exec("/sbin/shutdown -h now 2>&1");

echo "$out\n";


実行結果

sudo: sorry, you must have a tty to run sudo


なにやらエラーが出ました。
これは、端末がないユーザからの sudo の実行が禁止されているというメッセージです。

なので、visudo で apache ユーザに対して 端末なしでも実行できるように
設定を変更してやります。


# ↓この行でデフォルトオプション指定により、sudu 実行には
# 端末が要求されるようになっています。
Defaults requiretty


でこれをコメントしてやればいいのですが、
(多くのサイトではこれをコメントすればよいとかいてあるが…)
なんかセキュリティが弱くなりそうなので、apache ユーザのみこの
設定を外すことにします。(まぁ sudo の勉強も兼ねて)

次のように設定します。


# ↓ apache を エイリアスとして設定
User_Alias NOTTYUSERS = apache

Defaults requiretty
# ↓ NOTTYUSERS に対し、 requiretty フラグをオフ
Defaults:NOTTYUSERS !requiretty


これで、PHP から sudo が実行できるようになりました。

2010年6月12日土曜日

MySQL を使ってみよう

CentOS で MySQL を使ってみます。

どうやら調べてみると、MySQL はインストール済みのようです。


# rpm -qi mysql

Name : mysql Relocations: (not relocatable)
Version : 5.0.22 Vendor : CentOS
Release : 2.1 Build Date : 2007年01月10日 19時13分08秒
Install Date: 2007年09月15日 04時55分30秒 Build Host : builder4.centos.org
Group : Applications/Databases Source RPM : mysql-5.0.22-2.1.src.rpm
Size : 5748994 License : GPL
Signature : DSA/SHA1, 2007年04月04日 09時25分09秒, Key ID a8a447dce8562897
URL : http://www.mysql.com
Summary : MySQL のクライアントプログラムと共有ライブラリ。
Description :


いま読んでいる書籍によると、最初からインストールされているものは
設定がカスタマイズされていて、使っていく上でつまずくことが多いので
ソースからインストールし直したほうがよい、という様な事が書いてあるのですが、
勉強していく上では、何かしらにつまずいたほうが勉強になるだろう
ということで、このままの設定で行くことにします。

現在のネットワーク環境は外部から隔離されているので、とりあえずセキュリティは
そこまで気を使わずに設定していきます。

んでは現在の設定がどうなっているか調べてみよう。

mysql がどこに入っているのか検索。

# rpm -ql mysql
/etc/ld.so.conf.d/mysql-i386.conf
/etc/my.cnf
/usr/bin/msql2mysql
/usr/bin/mysql
/usr/bin/mysql_config
/usr/bin/mysql_find_rows
/usr/bin/mysql_tableinfo
/usr/bin/mysql_waitpid
/usr/bin/mysqlaccess
/usr/bin/mysqladmin
/usr/bin/mysqlbinlog
/usr/bin/mysqlcheck
/usr/bin/mysqldump
/usr/bin/mysqldumpslow
/usr/bin/mysqlimport
/usr/bin/mysqlshow
/usr/lib/mysql
/usr/lib/mysql/libmysqlclient.so.15
/usr/lib/mysql/libmysqlclient.so.15.0.0
/usr/lib/mysql/libmysqlclient_r.so.15
/usr/lib/mysql/libmysqlclient_r.so.15.0.0
/usr/lib/mysql/mysql_config
/usr/lib/mysql/mysqlbug
/usr/share/doc/mysql-5.0.22
/usr/share/doc/mysql-5.0.22/COPYING
/usr/share/doc/mysql-5.0.22/EXCEPTIONS-CLIENT
/usr/share/doc/mysql-5.0.22/README
/usr/share/info/mysql.info.gz
/usr/share/man/man1/mysql.1.gz
/usr/share/man/man1/mysqlaccess.1.gz
/usr/share/man/man1/mysqladmin.1.gz
/usr/share/man/man1/mysqldump.1.gz
/usr/share/man/man1/mysqlshow.1.gz
/usr/share/mysql
/usr/share/mysql/charsets
/usr/share/mysql/charsets/Index.xml
/usr/share/mysql/charsets/README
/usr/share/mysql/charsets/armscii8.xml
/usr/share/mysql/charsets/ascii.xml
/usr/share/mysql/charsets/cp1250.xml
/usr/share/mysql/charsets/cp1251.xml
/usr/share/mysql/charsets/cp1256.xml
/usr/share/mysql/charsets/cp1257.xml
/usr/share/mysql/charsets/cp850.xml
/usr/share/mysql/charsets/cp852.xml
/usr/share/mysql/charsets/cp866.xml
/usr/share/mysql/charsets/dec8.xml
/usr/share/mysql/charsets/geostd8.xml
/usr/share/mysql/charsets/greek.xml
/usr/share/mysql/charsets/hebrew.xml
/usr/share/mysql/charsets/hp8.xml
/usr/share/mysql/charsets/keybcs2.xml
/usr/share/mysql/charsets/koi8r.xml
/usr/share/mysql/charsets/koi8u.xml
/usr/share/mysql/charsets/latin1.xml
/usr/share/mysql/charsets/latin2.xml
/usr/share/mysql/charsets/latin5.xml
/usr/share/mysql/charsets/latin7.xml
/usr/share/mysql/charsets/macce.xml
/usr/share/mysql/charsets/macroman.xml
/usr/share/mysql/charsets/swe7.xml
/usr/share/mysql/czech
/usr/share/mysql/czech/errmsg.sys
/usr/share/mysql/danish
/usr/share/mysql/danish/errmsg.sys
/usr/share/mysql/dutch
/usr/share/mysql/dutch/errmsg.sys
/usr/share/mysql/english
/usr/share/mysql/english/errmsg.sys
/usr/share/mysql/estonian
/usr/share/mysql/estonian/errmsg.sys
/usr/share/mysql/french
/usr/share/mysql/french/errmsg.sys
/usr/share/mysql/german
/usr/share/mysql/german/errmsg.sys
/usr/share/mysql/greek
/usr/share/mysql/greek/errmsg.sys
/usr/share/mysql/hungarian
/usr/share/mysql/hungarian/errmsg.sys
/usr/share/mysql/italian
/usr/share/mysql/italian/errmsg.sys
/usr/share/mysql/japanese
/usr/share/mysql/japanese/errmsg.sys
/usr/share/mysql/korean
/usr/share/mysql/korean/errmsg.sys
/usr/share/mysql/norwegian
/usr/share/mysql/norwegian-ny
/usr/share/mysql/norwegian-ny/errmsg.sys
/usr/share/mysql/norwegian/errmsg.sys
/usr/share/mysql/polish
/usr/share/mysql/polish/errmsg.sys
/usr/share/mysql/portuguese
/usr/share/mysql/portuguese/errmsg.sys
/usr/share/mysql/romanian
/usr/share/mysql/romanian/errmsg.sys
/usr/share/mysql/russian
/usr/share/mysql/russian/errmsg.sys
/usr/share/mysql/serbian
/usr/share/mysql/serbian/errmsg.sys
/usr/share/mysql/slovak
/usr/share/mysql/slovak/errmsg.sys
/usr/share/mysql/spanish
/usr/share/mysql/spanish/errmsg.sys
/usr/share/mysql/swedish
/usr/share/mysql/swedish/errmsg.sys
/usr/share/mysql/ukrainian
/usr/share/mysql/ukrainian/errmsg.sys



設定ファイルはどこにある?

# find / -name "my.cnf"
/etc/my.cnf


起動の設定

# chkconfig --list | grep mysql
mysqld 0:off 1:off 2:off 3:off 4:off 5:off 6:off


起動時の設定ファイルの指定

# cat /etc/init.d/mysqld | grep my.cnf
# config: /etc/my.cnf
# extract value of a MySQL option from /etc/my.cnf
get_mysql_option /etc/my.cnf datadir "/var/lib/mysql"
get_mysql_option /etc/my.cnf socket "$datadir/mysql.sock"
get_mysql_option /etc/my.cnf log-error "/var/log/mysqld.log"
get_mysql_option /etc/my.cnf pid-file "/var/run/mysqld/mysqld.pid"
# be no such entry in my.cnf, and the default behavior will be to not
# was not an entry in my.cnf.
/usr/bin/mysqld_safe --defaults-file=/etc/my.cnf --pid-file="$mypidfile" --log-error="$errlogfile" >/dev/null 2>&1 &


設定ファイルの中身

# cat /etc/my.cnf

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1

[mysql.server]
user=mysql
basedir=/var/lib

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid



まとめ

my.cnf /etc/my.cnf
basedir /var/lib
datadir /var/lib/mysql
socket /var/lib/mysql/mysql.sock
pid-file /var/run/mysqld/mysqld.pid



データベースの初期化

# ls -la /var/lib/mysql
合計 16
drwxr-xr-x 2 mysql mysql 4096 1月 10 2007 .
drwxr-xr-x 28 root root 4096 9月 15 2007 ..
# mysql_install_db --user=mysql
Installing all prepared tables
Fill help tables

To start mysqld at boot time you have to copy support-files/mysql.server
to the right place for your system

PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:
/usr/bin/mysqladmin -u root password 'new-password'
/usr/bin/mysqladmin -u root -h cent.lina password 'new-password'
See the manual for more instructions.

You can start the MySQL daemon with:
cd /usr ; /usr/bin/mysqld_safe &

You can test the MySQL daemon with the benchmarks in the 'sql-bench' directory:
cd sql-bench ; perl run-all-tests

Please report any problems with the /usr/bin/mysqlbug script!

The latest information about MySQL is available on the web at
http://www.mysql.com
Support MySQL by buying support/licenses at http://shop.mysql.com
# ls -la /var/lib/mysql
合計 24
drwxr-xr-x 4 mysql mysql 4096 6月 12 06:32 .
drwxr-xr-x 28 root root 4096 9月 15 2007 ..
drwx------ 2 mysql root 4096 6月 12 06:32 mysql
drwx------ 2 mysql root 4096 6月 12 06:32 test


mysql ディレクトリ以下に mysql ディレクトリができてなんか気持ち悪い。。。

2010年5月30日日曜日

CentOS 5 - Yumしてみよう

とある作業のため、Apache を実行できる環境がほしくなったのですが、
CentOS 5 をインストールした状態で1年以上放置してあるPCがあるので
こいつを使ってみようと思います。

インストールしたのがだいぶ前なので OS のバージョンがちょっと古いですが、
OS バージョンアップして動かなくなるとめんどくさいので
OS はこのまま行きます。

サーバは公開せず、完全にテスト用にローカルで動かすだけなので
まぁセキュリティにしてもそこまで問題にはならないと思います。

んでもまぁ、Apache くらいは勉強のためにバージョンアップやら何やら
やってみようということで、Yum です。

Yum というのは 簡単にいえば、Windows でいうところの Windows Update みたいなものです。

で、以下 Yum のセットアップ~アップデートの作業です。

●Yum を使えるようにする
1. Yum のインストールは省略。普通にOS入れれば動きます。

2. 本によると、Yum を利用するためには GPG公開鍵をインストールする必要があります。
とあるのでGPG公開鍵をインストール

/usr/hare/doc/centos-release-4/RPM-GPG-KEY にインストールされていると本には書いてあるのですが、
うちのは CentOS 5 なのでここにはありません。
どこだ?


# find / -name "*RPM-GPG-KEY*" -print
/usr/share/doc/rpm-4.4.2/RPM-GPG-KEY
/etc/pki/rpm-gpg/RPM-GPG-KEY-beta
/etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5


3つでました。


# cat /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.2.6 (GNU/Linux)

mQGiBEWfB6MRBACrnYW6yKMT+MwJlCIhoyTxGf3mAxmnAiDEy6HcYN8rivssVTJk
CFtQBlBOpLV/OW2YtKrCO2xHn46eNfnMri8FGT8g+9JF3MUVi7kiV1He4iJynHXB
+F2ZqIvHf3IaUj1ys+p8TK64FDFxDQDrGQfIsD/+pkSGx53/877IrvdwjwCguQcr
Ioip5TH0Fj0OLUY4asYVZH8EAIqFHEqsY+9ziP+2R3/FyxSllKkjwcMLrBug+cYO
LYDD6eQXE9Mq8XKGFDj9ZB/0+JzK/XQeStheeFG75q3noq5oCPVFO4czuKErIRAB
qKbDBhaTj3JhOgM12XsUYn+rI6NeMV2ZogoQCC2tWmDETfRpYp2moo53NuFWHbAy
XjETA/sHEeQT9huHzdi/lebNBj0L8nBGfLN1nSRP1GtvagBvkR4RZ6DTQyl0UzOJ
RA3ywWlrL9IV9mrpb1Fmn60l2jTMMCc7J6LacmPK906N+FcN/Docj1M4s/4CNanQ
NhzcFhAFtQL56SNyLTCk1XzhssGZ/jwGnNbU/aaj4wOj0Uef5LRGQ2VudE9TLTUg
S2V5IChDZW50T1MgNSBPZmZpY2lhbCBTaWduaW5nIEtleSkgPGNlbnRvcy01LWtl
eUBjZW50b3Mub3JnPohkBBMRAgAkBQJFnwekAhsDBQkSzAMABgsJCAcDAgMVAgMD
FgIBAh4BAheAAAoJEKikR9zoViiXKlEAmwSoZDvZo+WChcg3s/SpNoWCKhMAAJwI
E2aXpZVrpsQnInUQWwkdrTiL5YhMBBMRAgAMBQJFnwiSBYMSzAIRAAoJEDjCFhY5
bKCk0hAAn134bIx3wSbq58E6P6U5RT7Z2Zx4AJ9VxnVkoGHkVIgSdsxHUgRjo27N
F7kBDQRFnwezEAQA/HnJ5yiozwgtf6jt+kii8iua+WnjqBKomPHOQ8moxbWdv5Ks
4e1DPhzRqxhshjmub4SuJ93sgMSAF2ayC9t51mSJV33KfzPF2gIahcMqfABe/2hJ
aMzcQZHrGJCEX6ek8l8SFKou7vICzyajRSIK8gxWKBuQknP/9LKsoczV+xsAAwUD
/idXPkk4vRRHsCwc6I23fdI0ur52bzEqHiAIswNfO521YgLk2W1xyCLc2aYjc8Ni
nrMX1tCnEx0/gK7ICyJoWH1Vc7//79sWFtX2EaTO+Q07xjFX4E66WxJlCo9lOjos
Vk5qc7R+xzLDoLGFtbzaTRQFzf6yr7QTu+BebWLoPwNTiE8EGBECAA8FAkWfB7MC
GwwFCRLMAwAACgkQqKRH3OhWKJfvvACfbsF1WK193zM7vSc4uq51XsceLwgAoI0/
9GxdNhGQEAweSlQfhPa3yYXH
=o/Mx
-----END PGP PUBLIC KEY BLOCK-----


こいつが下のURLのと同じ内容みたいです。

http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5

んではこれを import してみる。(直接上記のURLを指定してもいけるみたいです。)


# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
# echo $?
0


これでいいのかな?


# find / -name "*.rpm*" -print
/usr/share/doc/vim-common-7.0.109/Changelog.rpm
/var/cache/yum/base/packages/bogl-bterm-0.1.18-11.2.1.el5.1.i386.rpm
/var/cache/yum/base/packages/bogl-0.1.18-11.2.1.el5.1.i386.rpm
# rpm -Kv /var/cache/yum/base/packages/bogl-bterm-0.1.18-11.2.1.el5.1.i386.rpm
/var/cache/yum/base/packages/bogl-bterm-0.1.18-11.2.1.el5.1.i386.rpm:
ヘッダ V3 DSA signature: OK, key ID e8562897
ヘッダ SHA1 ダイジェスト: OK (a603ac4030a50056e73bbe30bddf98083f4df14f)
MD5 ダイジェスト: OK (ae4fb36462a5367fe6080e60826854eb)
V3 DSA signature: OK, key ID e8562897


よさそうですね。


# rpm -qa "gpg-pub*"
gpg-pubkey-e8562897-459f07a4
gpg-pubkey-e8562897-459f07a4


2こある・・・ということは import は必要なかったのかも。
まぁいっか。

3. 設定ファイルを変えてみる。


# cat /etc/yum.repos.d/CentOS-Base.repo
# CentOS-Base.repo
#
# This file uses a new mirrorlist system developed by Lance Davis for CentOS.
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client. You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the
# remarked out baseurl= line instead.
#
#

[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5

#released updates
[updates]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5

#packages used/produced in the build but not released
[addons]
name=CentOS-$releasever - Addons
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=addons
#baseurl=http://mirror.centos.org/centos/$releasever/addons/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5

#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras
#baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5

#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus
#baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5

#contrib - packages by Centos Users
[contrib]
name=CentOS-$releasever - Contrib
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=contrib
#baseurl=http://mirror.centos.org/centos/$releasever/contrib/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5


とりあえず、バックアップ


# ls -la /etc/yum.repos.d
合計 40
drwxr-xr-x 2 root root 4096 4月 4 2007 .
drwxr-xr-x 103 root root 12288 2月 15 10:20 ..
-rw-r--r-- 1 root root 2371 4月 9 2007 CentOS-Base.repo
-rw-r--r-- 1 root root 622 4月 9 2007 CentOS-Media.repo
# cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.20100530
# ls -la /etc/yum.repos.d
合計 44
drwxr-xr-x 2 root root 4096 2月 15 15:01 .
drwxr-xr-x 103 root root 12288 2月 15 10:20 ..
-rw-r--r-- 1 root root 2371 4月 9 2007 CentOS-Base.repo
-rw-r--r-- 1 root root 2371 2月 15 15:01 CentOS-Base.repo.20100530
-rw-r--r-- 1 root root 622 4月 9 2007 CentOS-Media.repo



国内ミラーサイトを入れるとアップデートがうまくいかないのでなし。


↓修正後


# cat /etc/yum.repos.d/CentOS-Base.repo # CentOS-Base.repo
#
# This file uses a new mirrorlist system developed by Lance Davis for CentOS.
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client. You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the
# remarked out baseurl= line instead.
#
#

[base]
name=CentOS-$releasever - Base
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
#mirrorlist=ftp://ftp.riken.jp/Linux/caos/centos/$releasever/os/$basearch/
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5

#released updates
[updates]
name=CentOS-$releasever - Updates
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
#mirrorlist=ftp://ftp.riken.jp/Linux/caos/centos/$releasever/os/$basearch/
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5

#packages used/produced in the build but not released
[addons]
name=CentOS-$releasever - Addons
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=addons
#mirrorlist=ftp://ftp.riken.jp/Linux/caos/centos/$releasever/os/$basearch/
#baseurl=http://mirror.centos.org/centos/$releasever/addons/$basearch/
baseurl=http://mirror.centos.org/centos/$releasever/addons/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5

#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras
#mirrorlist=ftp://ftp.riken.jp/Linux/caos/centos/$releasever/os/$basearch/
#baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/
baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5

#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus
#baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5

#contrib - packages by Centos Users
[contrib]
name=CentOS-$releasever - Contrib
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=contrib
#baseurl=http://mirror.centos.org/centos/$releasever/contrib/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5