さくら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
自動的にパッケージがインストールされてしまうので、更新パッケージを確認するだけの設定する。
# 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
キャッシュのクリア
apacheのインストール
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.inidate.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のインストール
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
プロセスは立ち上がっている。
rpmでphp-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
あれ、入ってない…?
再インストール
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で再インストール
これで正常に起動!
ちなみにチェックとかははっしょてます。
phpmyadminでmcryptが必要だったので追加インストール