Joomlaを2.5で運用している。本当は最新の3.5にしたいんだけど、サーバがCentOS6.8でデフォルトのMySQLやPHPが3.5に対応していない。そこで、MySQLを5.5に、PHPを5.6に変更してみた。
まず、MySQLは本家本元が用意してくれているリポジトリからとってくる。yum install http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm yum install yum-utilsこれは簡単だった。データベースがあれば、mysql_upgradeして必要なデータベースの変更を行う。失敗することもあるらしいので、データを予めダンプするなりして置くことはいうまでもなく必要。
yum-config-manager --disable mysql56-community
yum-config-manager --enable mysql55-community
yum install mysql mysql-devel mysql-server mysql-utilities
つぎは、PHP。自分でソースからコンパイルするのも有りだけど、とりあえずメンテナーのしっかりしているところから持ってくる方が得策。で、REMIのリポジトリからとってくることにした。
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpmこれで良かったはずだったのが、Joomlaのホーム画面をブラウズする と、
yum install --enablerepo=remi,remi-php56 php php-devel php-mbstring php-pdo \
php-gd php-xml php-mysqlnd
Database connection error (2): Could not connect to MySQL.
が出てしまった。これはどうもmySQLへのアクセスに使うアカウントが使えない際に発生するとJoomlaの人たちが言っている。でも何もいじってないし。で、調べてみた。となっていて、パスワードの長さが16だった。PHP5.5からはmySQLとのアクセスにphp-mysqlnd (mysqllnd)を使っていて、 どうも昔の短いパスワードが使えなくなったらしい。本来なら、
mysql -uroot -p mysql -e 'select User,length(Password) from user;'
Enter password:
+----------+------------------+
| User | length(Password) |
+----------+------------------+
| root | 16 |
| joomla | 16 |
| web | 16 |
+----------+------------------+
となるらしい。これを解決するには、もし、/etc/my.cnfに"old_password=1" があるなら、0に変えて、その後リスタート。そして、パスワードを変更してやる。それでオーケー。のはず。mysql -uroot -p mysql -e 'select User,length(Password) from user;'
+----------+------------------+
| User | length(Password) |
+----------+------------------+
| root | 41 |
| root | 41 |
0 件のコメント:
コメントを投稿