ex B

ある意味新しい手法を用いた、はじめ男爵である(キリッ

サーバ管理 - MySQLというかLAMP環境構築?

鯖はCentOS4/5だから、な! 初稿:2007-10-12

MySQLのインストール

新鯖入荷。ホヤホヤなのでsshくらいしか入ってないようだ。

パッケージか、ソースか

オレが思うに、両者混在みたいなのがいくない。以前はなかなか欲しいものがパッケージにないので徹底的にソースからビルドしていたのだけど、今は最新でこそないもののたいていのアプリはパッケージ化されてるし、以前ほど情熱がないのですっかりパッケージ派になりましたとさ。

というわけで、思う存分yumを使わせてもらう。

# yum grouplist
Installed Groups:
   System Tools
   Text-based Internet
   DNS Name Server
   Dialup Networking Support
   FTP Server
   Network Servers
   Legacy Software Development
   Java
   Java Development
   Legacy Software Support
   Mail Server
   Server Configuration Tools
   Administration Tools
Available Groups:
   Office/Productivity
   Engineering and Scientific
   Development Libraries
   Editors
   GNOME Software Development
   MySQL Database
   X Software Development
   Virtualization
   Legacy Network Server
   GNOME Desktop Environment
   Authoring and Publishing
   Games and Entertainment
   XFCE-4.4
   Emacs
   X Window System
   Graphics
   Ruby
   Windows File Server
   Printing Support
   KDE Software Development
   KDE (K Desktop Environment)
   Horde
   Sound and Video
   PostgreSQL Database
   News Server
   Web Server
   Development Tools
   Yum Utilities
   FreeNX and NX
   Graphical Internet
Done

おりゃ、Apacheすら入ってないや。先にApacheを入れておかないと面倒なことになるんで入れておく(解説略)。んで、MySQLへ。

# yum groupinstall "MySQL Database"
=============================================================================
 Package                 Arch       Version          Repository        Size
=============================================================================
Installing:
 MySQL-python            i386       1.2.1-1          base               82 k
 libdbi-dbd-mysql        i386       0.8.1a-1.2.2     base               17 k
 mysql                   i386       5.0.22-2.1.0.1   updates           3.0 M
 mysql-connector-odbc    i386       3.51.12-2.2      base              142 k
 mysql-server            i386       5.0.22-2.1.0.1   updates            10 M
 perl-DBD-MySQL          i386       3.0007-1.fc6     base              147 k

Transaction Summary
=============================================================================
Install      6 Package(s)
Update       0 Package(s)
Remove       0 Package(s)
(略)
Complete!

初期設定はコマンドでやってもいいのだけど、phpMyAdminを利用することにして、とっとと起動。

# chkconfig --level 2345 mysqld on
# service mysqld start
(初回起動時はいろいろメッセージが出てくるが気にしない)
Starting MySQL:            [  OK  ]
# service mysqld status
mysqld (pid 21994) is running...

phpMyAdminの設置

さて続いてはphpMyAdminの設置。へぇ、もう2.11までリリースされてるんだ。

臨時にユーザ「apache」に対してシェルを与える。邪道だよな。

# vi /etc/passwd
apache:x:48:48:Apache:/var/www:/bin/bash
# chown -R apache:apache /var/www/html
# su - apache
$ cd html
$ wget http://prdownloads.sourceforge.net/phpmyadmin/
 phpMyAdmin-2.11.1-all-languages.tar.gz?download
$ gunzip -c phpMyAdmin-2.11.1-all-languages.tar.gz | tar xvf -
$ mv phpMyAdmin-2.11.1-all-languages myadmin

これだけだとまだ何か足りなかったような。

php-mysqlほかいろいろインストール

# yum list php*
Installed Packages
php.i386                                 5.1.6-15.el5           installed
php-cli.i386                             5.1.6-15.el5           installed
php-common.i386                          5.1.6-15.el5           installed
php-ldap.i386                            5.1.6-15.el5           installed
php-pdo.i386                             5.1.6-15.el5           installed
Available Packages
php-bcmath.i386                          5.1.6-15.el5           updates
php-dba.i386                             5.1.6-15.el5           updates
php-dbase.i386                           5.1.6-12.el5.centos    extras
php-devel.i386                           5.1.6-15.el5           updates
php-gd.i386                              5.1.6-15.el5           updates
php-imap.i386                            5.1.6-15.el5           updates
php-mbstring.i386                        5.1.6-15.el5           updates
php-mcrypt.i386                          5.1.6-12.el5.centos    extras
php-mhash.i386                           5.1.6-12.el5.centos    extras
php-mysql.i386                           5.1.6-15.el5           updates
php-ncurses.i386                         5.1.6-15.el5           updates
php-odbc.i386                            5.1.6-15.el5           updates
php-pear.noarch                          1:1.4.9-4              base
php-pear-Auth-SASL.noarch                1.0.2-4.el5.centos     extras
php-pear-DB.noarch                       1.7.6-7.el5.centos     extras
php-pear-Date.noarch                     1.4.7-2.el5.centos     extras
php-pear-File.noarch                     1.2.2-1.el5.centos     extras
php-pear-HTTP-Request.noarch             1.4.1-1.el5.centos     extras
php-pear-Log.noarch                      1.9.11-1.el5.centos    extras
php-pear-MDB2.noarch                     2.4.1-1.el5.centos     extras
php-pear-MDB2-Driver-mysql.noarch        1.4.1-1.el5.centos     extras
php-pear-Mail.noarch                     1.1.14-1.el5.centos    extras
php-pear-Mail-Mime.noarch                1.4.0-1.el5.centos     extras
php-pear-Net-SMTP.noarch                 1.2.10-1.el5.centos    extras
php-pear-Net-Sieve.noarch                1.1.5-2.el5.centos     extras
php-pear-Net-Socket.noarch               1.0.8-1.el5.centos     extras
php-pear-Net-URL.noarch                  1.0.15-1.el5.centos    extras
php-pecl-Fileinfo.i386                   1.0.4-3.el5.centos     extras
php-pecl-memcache.i386                   2.1.2-1.el5.centos     extras
php-pgsql.i386                           5.1.6-15.el5           updates
php-readline.i386                        5.1.6-12.el5.centos    extras
php-snmp.i386                            5.1.6-15.el5           updates
php-soap.i386                            5.1.6-15.el5           updates
php-tidy.i386                            5.1.6-12.el5.centos    extras
php-xml.i386                             5.1.6-15.el5           updates
php-xmlrpc.i386                          5.1.6-15.el5           update

そうだよね、groupinstallの状態だといろいろ足りないんだった。必要なのは強調してあるやつだけなんだが、面倒なので全部入れとく。

# yum install php*
(略)
Complete!

Apacheもapxsとか入ってないはずなので追加インストールしとく。

# yum install httpd-devel
(略)
Complete!

ではApacheを起動してみる。

# chkconfig --level 2345 httpd on
#service httpd start

ではブラウザでhttp://ip.address/myadmin/にアクセスしてみよう。きっと怒られるから。

!お使いの設定ファイルに MySQL のデフォルト特権アカウントに相当する設定 (root ユーザでパスワードなし) が含まれています。お使いの MySQL サーバはこのデフォルト設定で動作しているため不正アクセス可能な状態になっています。このセキュリティーホールはかならず閉ざしてください

だから今から設定するんぢゃねーか…と、その前に肝心なことを忘れてた。UTF8のままだとデータが化けるのよね。

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
old_passwords=1
default-character-set = ujis
skip-character-set-client-handshake

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

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

この後は旧鯖からexportしたtableを新鯖でimportすればたぶんおk。便利な時代になったもんよ。

おっとapacheのログインシェルはちゃんと戻しておかないと。

vsftpdの設定

proftpdばっかり使ってたおかげでvsftpdの設定の罠に引っ掛かった夏の日の悪夢を忘れるところだった。

# vi /etc/vsftpd/vsftpd.conf
ascii_upload_enable=YES
ascii_download_enable=YES

この部分がデフォルトでコメントアウトされてるおかげでFTPでファイルを転送した際に改行コードが狂いまくる→CGIが動かにゃないわけよ。ついでにTimeOutを120→600秒にしとく。