トップ 差分 一覧 ソース 検索 ヘルプ PDF RSS ログイン

CentOS

CentOS5.5にPHP5.3.Xを入れる

CentOS5.5のPHPrpm)は5.1.6なので(汗)。
ソースから入れればいいのですが、ここはyum(rpm)で入れられないものかと。

Bluharo IT - Installing PHP 5.2.x or 5.3.x on RedHat ES5, CentOS 5, etc
http://bluhaloit.wordpress.com/2008/03/13/installing-php-52x-on-redhat-es5-centos-5-etc/

を参考に

# wget http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-3.noarch.rpm
# wget http://rpms.famillecollet.com/enterprise/remi-release-5.rpm
# rpm -Uvh remi-release-5.rpm epel-release-5-3.noarch.rpm

fedoraのepelはCentOSよりちょっとだけ新しいパッケージが用意されているみたいだが、PHPに関してはやはり5.1.6みたい。
ということで、remiリポジトリが必須。epelはデフォルトで参照するようになっているが、remiは下記のようにして、必要なときだけ参照させるのが良さそう。

# yum --enablerepo=remi update php

ちなみにこの記事を書いた時点のPHPのバージョンは5.3.2だった。

posixが--disable-posixになっているが、php-processで使えるみたい。

# yum --enablerepo=remi install php-process

CentOS5.5にMySQL5.1.Xを入れる

上記、PHPを5.3.2にしたついでにMySQLも新しいのを入れようとしたら...

# yum --enablerepo=remi install mysql mysql-server php-mysql

依存するファイルがリストアップされ、早速インストールを開始。
するとインストール途中でワーニングが(汗)。

warning: user mysql does not exist

とりあえず起動してみようと思ったら

# /etc/init.d/mysqld start
chown: invalid user: `mysql:mysql'

あれ? 普通はmysqlのユーザーやグループはインストールで勝手にできなかったっけ? と思い、/etc/passwdと/etc/groupを確認。
グループにはmysqlがあるが、ユーザー(passwd)にはmysqlが見当たらず。

# useradd -M mysql

で作成。-Mはホームディレクトリ不要のオプション。

気を取り直してmysqldを起動させようとすると今度はFAILDとなり、/var/log/mysqld.logを確認すると

100620 14:00:26 [ERROR] /usr/libexec/mysqld: Can't create/write to file '/var/run/mysqld/mysqld.pid' (Errcode: 13)
100620 14:00:26 [ERROR] Can't start server: can't create PID file: Permission denied

どうもインストールする際にmysqlユーザーが用意されなかったため、インストール時に作成されたディレクトリ等のパーミッションがmysqlになっていなかった模様。
チェックするのは面倒なので

# yum remove mysql-server
# yum --enablerepo=remi install mysql-server

でインストールし直して起動したら、今度は既にmysqlユーザーがあるため、すんなりいった。起動もOK。

CentOS5.5とmemcachedとlibevent

CnetOS5でmemcachedを使いたい場合、ソースから入れるのではなく、なるべくyumで済む方法をとってみる。

下記はepelリポジトリを追加してupdateする方法。

# rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/x86_64/epel-release-5-3.noarch.rpm
# yum update libevent memcached php-pecl-memcache

x86_64の部分はサーバーのCPUにあわせて変更のこと。

CPUはunameで確認できる。

# uname -a
Linux *****.*** 2.6.18-028stab060.2 #1 SMP Tue Jan 13 10:24:09 MSK 2009 x86_64 x86_64 x86_64 GNU/Linux

CentOS4.2

CentOSはRed Hat Enterprise Linuxの商用パッケージを除いてビルドされたもの。ロゴのデザインがかっこわるい気がするが、信頼性、安定性がありそうなのでためしてみる。

自分で決めたルール

  • ソースは/usr/local/srcに置く
  • tar.gzを解凍したものは/optに置く
  • make installを必要としないものは/optから/usr/local/binへシンボリックリンクをはる

 ダウンロードサイト

CentOS
http://www.centos.org/

 参考サイト

CentOS - Wikipedia
http://ja.wikipedia.org/wiki/CentOS
Takahiko MATSUBARA Home Page
http://www.a.phys.nagoya-u.ac.jp/~taka/

より

CentOS 4 Installation Notes
http://www.a.phys.nagoya-u.ac.jp/~taka/linux/co4note.html

CentOS 5.1のネットワークインストール

xeon 2.8GHz 32-64bitへのネットワークインストールを試した。

↓からCentOS-5.1-x86_64-netinstall.isoをゲット(約7.5MB)。

理研のftp
http://ftp.riken.jp/Linux/centos/5.1/isos/x86_64/

CDに焼いて早速インストール開始。

言語はEnglish、キーボードはjp106、サーバーとしてセットアップなので固定IPを設定する。

HTTPインストールよりFTPインストールのほうが信頼性が高いと思ったので、そちらの設定をする。

FTP site name: ftp.riken.jp
CentOS directory: /Linux/centos/5.1/os/x86_64

としたら、見つからないとエラーになった。

ftp://ftp.riken.jp//Linux/centos/5.1/os/x86_64/images/stage2.img

ブラウザからだとftpプロトコルでftp.riken.jpにもつながるんだけど(汗)。

なぜかドメイン名の後ろでスラッシュが2つ続いてしまうため、

CentOS directory: Linux/centos/5.1/os/x86_64

とするも、次に進むと勝手にスラッシュがついてしまう。

FTP sitename: ftp.riken.go.jp
CentOS directory: /Linux/centos/5.1/os/x86_64

で、なぜかgo.jpにするとOKになった。

firefox

現在のfirefoxパッケージ(バージョン)を確認しておく。

# rpm -qa | grep firefox
firefox-1.0.7-1.4.1.centos4

firefoxの最新版をダウンロードする(2006/2/3現在の最新版は1.5.0.1)。

Firefox - Web の再発見
http://www.mozilla-japan.org/products/firefox/

firefox1.5をインストールする。最初にfirefox1.5をダウンロードしておき、/optへソースを移す。解凍まで行なう。

#cd Desktop
#mv firefox-1.5.0.1.tar.gz /usr/local/src
#cd /usr/local/src
#tar -zxvf firefox-1.5.0.1.tar.gz
#mv firefox /opt
#cd /opt/firefox
#ln -s ./firefox /usr/local/bin
#cd /usr/local/bin/

firefoxを起動しようとしたところでエラー表示。

# ./firefox
./firefox-bin: error while loading shared libraries: libstdc++.so.5:
cannot open shared object file: No such file or directory

yumで足らないパッケージをインストールする。

# yum install libstdc++.so.5
Setting up Install Process
Setting up repositories
update                    100% |=========================|  951 B    00:00
base                      100% |=========================| 1.1 kB    00:00
addons                    100% |=========================|  951 B    00:00
extras                    100% |=========================| 1.1 kB    00:00
Reading repository metadata in from local files
Parsing package install arguments
Resolving Dependencies
--> Populating transaction set with selected packages. Please wait.
---> Package compat-libstdc++-33.i386 0:3.2.3-47.3 set to be updated
--> Running transaction check

Dependencies Resolved

=============================================================================
 Package                 Arch       Version          Repository        Size
=============================================================================
Installing:
 compat-libstdc++-33     i386       3.2.3-47.3       base              226 k

Transaction Summary
=============================================================================
Install      1 Package(s)
Update       0 Package(s)
Remove       0 Package(s)
Total download size: 226 k
Is this ok [y/N]: y
Downloading Packages:
warning: rpmts_HdrFromFdno: V3 DSA signature: NOKEY, key ID 443e1821
Public key for compat-libstdc++-33-3.2.3-47.3.i386.rpm is not installed
Retrieving GPG key from http://mirror.centos.org/centos/RPM-GPG-KEY-centos4
Importing GPG key 0x443E1821 "CentOS-4 key <centos-4key@centos.org>"
Is this ok [y/N]: y
Key imported successfully
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing: compat-libstdc++-33          ######################### [1/1]

Installed: compat-libstdc++-33.i386 0:3.2.3-47.3
Complete!

途中で出てきたGPG keyとうのがよくわからない。とりあえずyにしないとインストールできないようだ。その後、firefox1.5の起動確認をする。

#./firefox

起動すれば、旧firefoxの削除へ。

#rpm -e firefox-1.0.7-1.4.1.centos4

テーマをreinにする。作者さんのHPが落ちているようなので、Firefox まとめサイトよりテーマを取得。ファイルはrein_140.jarとなる。firefoxの[ツール]-[テーマ]よりテーマウィンドウにドラッグアンドドロップするとインストールできる。
rein_140.jar(888)

 ダウンロードサイト

Firefox - Web の再発見
http://www.mozilla-japan.org/products/firefox/
Firefox まとめサイト
http://firefox.geckodev.org/

apache

下記ダウンロードサイトよりapache_1.3.34.tar.gzとapache_1.3.34.tar.gz.md5をダウンロードした。とりあえず/usr/local/srcへ移す。

#cd /usr/local/src
# md5sum apache_1.3.34.tar.gz
9978cc552b423f0015c1052d23ab619e  apache_1.3.34.tar.gz
# cat apache_1.3.34.tar.gz.md5
MD5 (apache_1.3.34.tar.gz) = 9978cc552b423f0015c1052d23ab619e

インストールについては下記を参照した。

Documentation Apache HTTP Server
http://httpd.apache.org/docs/

./configure --helpで全オプションを確認できる。

# ./configure --help
[hang on a moment, generating help]

Usage: configure [options]
Options: [defaults in brackets after descriptions]
General options:
 --quiet, --silent      do not print messages
 --verbose, -v          print even more messages
 --shadow[=DIR]         switch to a shadow tree (under DIR) for building

Stand-alone options:
 --help, -h             print this message
 --show-layout          print installation path layout (check and debug)

Installation layout options:
 --with-layout=[F:]ID   use installation path layout ID (from file F)
 --target=TARGET        install name-associated files using basename TARGET
 --prefix=PREFIX        install architecture-independent files in PREFIX
 --exec-prefix=EPREFIX  install architecture-dependent files in EPREFIX
 --bindir=DIR           install user     executables in DIR
 --sbindir=DIR          install sysadmin executables in DIR
 --libexecdir=DIR       install program  executables in DIR
 --mandir=DIR           install manual pages in DIR
 --sysconfdir=DIR       install configuration files in DIR
 --datadir=DIR          install read-only data files in DIR
 --iconsdir=DIR         install read-only icon files in DIR
 --htdocsdir=DIR        install read-only welcome pages in DIR
 --manualdir=DIR        install read-only on-line documentation in DIR
 --cgidir=DIR           install read-only cgi files in DIR
 --includedir=DIR       install includes files in DIR
 --localstatedir=DIR    install modifiable data files in DIR
 --runtimedir=DIR       install runtime data in DIR
 --logfiledir=DIR       install logfile data in DIR
 --proxycachedir=DIR    install proxy cache data in DIR

Configuration options:
 --enable-rule=NAME     enable  a particular Rule named 'NAME'
 --disable-rule=NAME    disable a particular Rule named 'NAME'
                        [CYGWIN_WINSOCK=no DEV_RANDOM=default EXPAT=defa]
                        [IRIXN32=yes     IRIXNIS=no      PARANOID=no    ]
                        [SHARED_CHAIN=default SHARED_CORE=default SOCKS4]
                        [SOCKS5=no       WANTHSREGEX=default            ]
 --add-module=FILE      on-the-fly copy & activate a 3rd-party Module
 --activate-module=FILE on-the-fly activate existing 3rd-party Module
 --permute-module=N1:N2 on-the-fly permute module 'N1' with module 'N2'
 --enable-module=NAME   enable  a particular Module named 'NAME'
 --disable-module=NAME  disable a particular Module named 'NAME'
                        [access=yes      actions=yes     alias=yes      ]
                        [asis=yes        auth=yes        auth_anon=no   ]
                        [auth_db=no      auth_dbm=no     auth_digest=no ]
                        [autoindex=yes   cern_meta=no    cgi=yes        ]
                        [digest=no       dir=yes         env=yes        ]
                        [example=no      expires=no      headers=no     ]
                        [imap=yes        include=yes     info=no        ]
                        [log_agent=no    log_config=yes  log_forensic=no]
                        [log_referer=no  mime=yes        mime_magic=no  ]
                        [mmap_static=no  negotiation=yes proxy=no       ]
                        [rewrite=no      setenvif=yes    so=no          ]
                        [speling=no      status=yes      unique_id=no   ]
                        [userdir=yes     usertrack=no    vhost_alias=no ]
 --enable-shared=NAME   enable  build of Module named 'NAME' as a DSO
 --disable-shared=NAME  disable build of Module named 'NAME' as a DSO
 --with-perl=FILE       path to the optional Perl interpreter
 --with-port=PORT       set the port number for httpd.conf
 --without-support      disable the build and installation of support tools
 --without-confadjust   disable the user/situation adjustments in config
 --without-execstrip    disable the stripping of executables on installation
 --server-uid=UID       set the user ID the web server should run as [nobody]
 --server-gid=GID       set the group ID the web server UID is a memeber of [#-1]

suEXEC options:
 --enable-suexec        enable the suEXEC feature
 --suexec-caller=NAME   set the suEXEC username of the allowed caller [www]
 --suexec-docroot=DIR   set the suEXEC root directory [PREFIX/share/htdocs]
 --suexec-logfile=FILE  set the suEXEC logfile [PREFIX/var/log/suexec_log]
 --suexec-userdir=DIR   set the suEXEC user subdirectory [public_html]
 --suexec-uidmin=UID    set the suEXEC minimal allowed UID [100]
 --suexec-gidmin=GID    set the suEXEC minimal allowed GID [100]
 --suexec-safepath=PATH set the suEXEC safe PATH [/usr/local/bin:/usr/bin:/bin]
 --suexec-umask=UMASK   set the umask for the suEXEC'd script [server's umask]

Deprecated options:
 --layout               backward compat only: use --show-layout
 --compat               backward compat only: use --with-layout=Apache

config.layoutをみると、ディレクトリの様子がわかる。

#   Classical Apache path layout.
<Layout Apache>
    prefix:        /usr/local/apache
    exec_prefix:   $prefix
    bindir:        $exec_prefix/bin
    sbindir:       $exec_prefix/bin
    libexecdir:    $exec_prefix/libexec
    mandir:        $prefix/man
    sysconfdir:    $prefix/conf
    datadir:       $prefix
    iconsdir:      $datadir/icons
    htdocsdir:     $datadir/htdocs
    manualdir:     $htdocsdir/manual
    cgidir:        $datadir/cgi-bin
    includedir:    $prefix/include
    localstatedir: $prefix
    runtimedir:    $localstatedir/logs
    logfiledir:    $localstatedir/logs
    proxycachedir: $localstatedir/proxy
</Layout>

DSO(Dynamic Shared Object)を有効にして./configureを実行する。

#./configure --enable-module=so --enable-rule=SHARED_CORE
#make
#make install

--enable-rule=SHARED_COREはなくてもよいらしい。
/usr/local/apacheが作成される。現在のモジュールの情况は

#cd /usr/local/apache/bin
#./httpd -l
Compiled-in modules:
  http_core.c
  mod_env.c
  mod_log_config.c
  mod_mime.c
  mod_negotiation.c
  mod_status.c
  mod_include.c
  mod_autoindex.c
  mod_dir.c
  mod_cgi.c
  mod_asis.c
  mod_imap.c
  mod_actions.c
  mod_userdir.c
  mod_alias.c
  mod_access.c
  mod_auth.c
  mod_so.c
  mod_setenvif.c
suexec: disabled; invalid wrapper /usr/local/apache/bin/suexec

早速起動してみる。

#/usr/local/apache/bin/apachectl start
/usr/local/apache/bin/apachectl start: httpd started

ブラウザにlocalhostでアクセスして、このページが〜の画面が表示されれはOK。
自動起動の設定をしておく。

# cp /usr/local/apache/bin/apachectl /etc/init.d/httpd
# chmod 700 /etc/init.d/httpd
# ln -s /etc/init.d/httpd /etc/rc3.d/S85httpd
# ln -s /etc/init.d/httpd /etc/rc5.d/S85httpd

httpd.confは/usr/local/apache/confにある。設定を変更したら再起動。

#vi /usr/local/apache/conf/httpd.conf

#/usr/local/apache/bin/apachectl restart

 ダウンロードサイト

JAPAN APACHE USER GROUP
http://www.apache.jp/

no-ip2

DDNSで使用するクライアントのインストールと設定を行なう。クライアントの現行バージョンは2.1.1である。/usr/local/srcへダウンロードしておく。

#cd /usr/local/src
#tar -zxvf noip-duc-linux.tar.gz
#mv noip-2.1.1 /opt
#cd /opt/noip-2.1.1

README.FIRSTを読んでインストールを行なう。

#make
#make install

ここで自動的に下記スクリプトが実行されるが、Ctrl+Zで中断しておく。

#/usr/local/bin/noip2 -C -Y -c /tmp/no-ip2.conf

理由は、-Yオプションはすべてのホストを更新してしまうためである。うちでは3つのホストを使っているため、これではまずい。

# /usr/local/bin/noip2 -C

Auto configuration for Linux client of no-ip.com.
Please enter the login/email string for no-ip.com  hoge@hoge.jp
Please enter the password for user 'hoge@hoge.jp'  *******

3 hosts are registered to this account.
Do you wish to have them all updated?[N] (y/N)  N
Do you wish to have host [host1.no-ip.com] updated?[N] (y/N)  N
Do you wish to have host [host2.no-ip.com] updated?[N] (y/N)  N
Do you wish to have host [host3.no-ip.org] updated?[N] (y/N)  y
Please enter an update interval:[30]  30
Do you wish to run something at successful update?[N] (y/N)  N

New configuration file '/usr/local/etc/no-ip2.conf' created.

実行ファイルのパーミッションを確認し、変更しておく。

#chmod 700 /usr/local/bin/noip2
#chown root:root /usr/local/bin/noip2

/usr/local/etcにno-ip2.confが作成される。クライアントの起動は、

#/usr/local/bin/noip2

自動起動はREADME.FIRSTより

#cd /etc/rc.d/init.d
#vi noip2

スクリプトは下記をコピーアンドペースト。

#! /bin/sh
# . /etc/rc.d/init.d/functions  # uncomment/modify for your killproc
case "$1" in
    start)
        echo "Starting noip2."
        /usr/local/bin/noip2
    ;;
    stop)
        echo -n "Shutting down noip2."
        killproc -TERM /usr/local/bin/noip2
    ;;
    *)
        echo "Usage: $0 {start|stop}"
        exit 1
esac
exit 0

パーミッションの変更とランレベル毎にシンボリックリンクを作成。

#chmod 700 noip2
#ln -s /etc/rc.d/init.d/noip2 /etc/rc.d/rc3.d/S99noip2
#ln -s /etc/rc.d/init.d/noip2 /etc/rc.d/rc5.d/S99noip2

 ダウンロードサイト

No-IP.com
http://www.no-ip.com/

bind

LAN内でドメインが使えると便利なので、DNSサーバーをインストールする。

パッケージ説明
bind-9.2.4-2BIND本体
bind-utils-9.2.4-2主にクライアント側で使われるプログラムが含まれる。digコマンド等
bind-libs-9.2.4-2ライブラリ
bind-chroot-9.2.4-2設定ファイル等のルートを/var/named/chroot以下にする
caching-nameserver-7.3-3named.conf等の設定ファイルが含まれる

面倒なのでyumでインストール。chrootが便利。

#cd /var/named/chroot/etc
#vi named.conf