さくらVPSにLAMP環境をつくる【Apache2.2, PHP5.3, MySQL5.5】

備忘録として失敗から成功に至るまで全部のせてます。
成功パターンは「php53で再インストール」の項から

CentOSデフォルトのyumレポジトリではApache, PHP, MySQLのバージョンが古いので、epelとremiレポジトリを設定する。

# rpm -ivh http://dl.fedoraproject.org/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm
# rpm -ihv http://rpms.famillecollet.com/enterprise/5/remi/x86_64/remi-release-5-7.el5.remi.noarch.rpm
# yum repolist

確認

# yum info httpd --enablerepo=remi
# yum info php --enablerepo=remi
# yum info mysql --enablerepo=remi

yum-cronの設定

yum-cron のすすめ
http://www.sssg.org/blogs/naoya/archives/748

# yum -y install yum-cron

自動的にパッケージがインストールされてしまうので、更新パッケージを確認するだけの設定する。

# vi /etc/sysconfig/yum-cron

CHECK_ONLY=yes
DOWNLOAD_ONLY=yes

# service yum-updatesd stop
# chkconfig yum-updatesd off
# service yum-cron restart
# chkconfig yum-cron on

キャッシュのクリア

# du -h /var/cache/yum
# yum clean all

apacheのインストール

# yum -y install httpd --enablerepo=remi

PHPのインストール

# yum -y install php php-devel php-pear php-mbstring php-gd php-mysql --enablerepo=remi

UTF-8に設定

# cp -pi /etc/php.ini /etc/php.ini_20120226_higuchi
# vi /etc/php.ini

date.timezone = "Asia/Tokyo"
mbstring.language = Japanese
mbstring.internal_encoding = UTF-8
mbstring.http_input = UTF-8
mbstring.http_output = UTF-8
mbstring.encoding_translation = On
mbstring.substitute_character = "?"
default_charset = "UTF-8"

MySQLのインストール

# yum install --enablerepo=remi mysql-server

UTF-8に設定する

# cp -pi /etc/my.cnf /etc/my.cnf_20120226_higuchi
# vi /etc/my.cnf

[mysqld]
character-set-server = utf8
skip-character-set-client-handshake
[mysql]
default-character-set=utf8

起動開始するも失敗!!?

# service mysqld start
Timeout error occurred trying to start MySQL Daemon.
Starting MySQL: [FAILED]

ログを確認するとシステムテーブルがないと言われる

# tail -f /var/log/mysqld.log
120226 16:54:58 mysqld started
120226 16:54:58 InnoDB: Started; log sequence number 0 1595675
120226 16:54:58 [ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist
120226 16:54:58 mysqld ended

初期化する

# mysql_install_db

再度起動を試みる

# service mysqld start
Starting MySQL: [ OK ]

成功した!!

# chkconfig mysqld on

起動と文字コードの確認、DB・ユーザ作成

# mysql -u root
mysql> status;
mysql> show variables like 'character_set%';

mysql> create database testdb character set utf8;
mysql> grant all on testdb.* to testdb_user@localhost identified by 'パスワード';

rootパスワード設定

# mysqladmin -u root password パスワード


サーバ設定終わり!
いざCakePHPを動かそうとすると…

Fatal error: Call to undefined function mysql_query() in 〜/cake/libs/model/datasources/dbo/dbo_mysql.php on line 613

あれ、mysqlの関数を実行できない。。

# ps aux | grep msyql

プロセスは立ち上がっている。
rpmphp-mysqlがインストールされているかチェック。

# rpm -qa | grep php
php-cli-5.3.10-2.el5.remi
php-devel-5.3.10-2.el5.remi
php-common-5.3.10-2.el5.remi
php-pdo-5.3.10-2.el5.remi
php-mbstring-5.3.10-2.el5.remi
php-pear-1.9.4-3.el5.remi
php-gd-5.3.10-2.el5.remi
php-5.3.10-2.el5.remi

あれ、入ってない…?
再インストール

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

remiにあるphp-mysqlは5.3じゃないことが判明…!
じゃあ別のレポジトリ!

# rpm --import http://www.jasonlitka.com/media/RPM-GPG-KEY-jlitka
# yum -y --enablerepo=utterramblings --disablerepo=remi,base,epel,extras,updates install php-mysql

同じくダメ…
とちょっとググったらphp53なるパッケージがCent標準のリポジトリで提供されてるww
無駄な時間つかったw

まずはリムーブ

# yum remove php php-devel php-pear php-mbstring php-gd php-mysql --enablerepo=remi

php53で再インストール

# yum install php53 php53-mbstring php53-mysql

これで正常に起動!
ちなみにチェックとかははっしょてます。

phpmyadminmcryptが必要だったので追加インストール

# yum install php53-mcrypt