サーバ管理 - 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秒にしとく。