Bloody Mary - blog

Bloody Mary 別館

roundcubemail から始まるアップグレード祭り

RoundCubeMail の インストール

見栄えが良い WebMail と評判の RoundCubeMail を使ってみることにした。

RoundCubeMail は、 squirrelmail と同じようにブラウザ上でメールを閲覧するシステムだ。個人的に POP に対応していないのが残念なところ。 POP に対応していれば、 ISP のメールを取得しに行けたのだが。

インストール自体は簡単で、解凍してインストールウィザードを走らせるだけ。システム要件を満たしていればそのまま終了するし、満たしていなければ不足分を教えてくれる。

不足している PHP モジュールをインストールしようとしたのだが、何を思ったか PHP もバージョンアップしようかと考えたのが運の尽き。

RoundCubeMail の インストール (未完)

※ CentOS 系の環境です

1. DocumentRoot にファイルを配置

# cd /usr/local/src/roundcube/

名前を指定してダウンロード
# wget -O roundcubemail-1.0.2.tar.gz http://sourceforge.net/projects/roundcubemail/files/roundcubemail/1.0.2/roundcubemail-1.0.2.tar.gz/download

解凍
# tar zxf roundcubemail-1.0.2.tar.gz

所有権の変更 (インストールディレクトリにログとか書き込みたいので)
# chown -R apache:root roundcubemail-1.0.2

ディレクトリ配置
# mv roundcubemail-1.0.2 /var/www/html/
# cd /var/www/html/
# ln -s roundcubemail-1.0.2 roundcubemail

Apache 設定
# vi /etc/httpd/conf.d/roundcubemail.conf
  1. Alias /webmail/ /var/www/html/roundcubemail/
  2.  
  3. <Directory /var/www/html/roundcubemail/>
  4.     DirectoryIndex index.php
  5. </Directory>
Apache 設定読み込み
# service httpd reload

2. インストールウィザードを走らせる

ブラウザでアクセス。
https://localhost/webmail/installer/

エラーになったところを抜粋
Mcrypt: NOT AVAILABLE(See http://www.php.net/manual/en/book.mcrypt.php)
Intl: NOT AVAILABLE(See http://www.php.net/manual/en/book.intl.php)

「モジュールが足りないなら入れよう」

「そうだ、ついでに PHP もバージョンアップしてしまえ」

⇒ 悪夢の開まりw

MySQL のアップグレード (5.1 ⇒ 5.6)

※ PHP を 5.5 にアップグレードをする前に MySQL を 5.6 にアップデートする必要がある

※ 影響範囲が postfix にまで広がる ⇒ 悪夢以外の何物でもない

1. 現在の MySQL を確認

# rpm -qa | grep mysql
mysql-libs-5.1.73-3.el6_5.x86_64
mysql-5.1.73-3.el6_5.x86_64
mysql-server-5.1.73-3.el6_5.x86_64
php55u-mysqlnd-5.5.16-2.ius.el6.x86_64

2. 新しい MySQL バージョンの確認

# yum list | grep mysql56u
mysql56u.x86_64                 5.6.20-2.el6  ius
mysql56u-bench.x86_64           5.6.20-2.el6  ius
mysql56u-common.x86_64          5.6.20-2.el6  ius
mysql56u-debuginfo.x86_64       5.6.20-2.el6  ius
mysql56u-devel.x86_64           5.6.20-2.el6  ius
mysql56u-embedded.x86_64        5.6.20-2.el6  ius
mysql56u-embedded-devel.x86_64  5.6.20-2.el6  ius
mysql56u-libs.x86_64            5.6.20-2.el6  ius
mysql56u-server.x86_64          5.6.20-2.el6  ius
mysql56u-test.x86_64            5.6.20-2.el6  ius

3. 新しい MySQL インストール

MySQL 停止
# service mysqld stop

MySQL サーバの削除
# yum erase mysql-server mysql

MySQL ライブラリの削除 (ここから postfix 等への影響)
# yum erase mysql-libs

Removing:
 mysql-libs                 x86_64  5.1.73-3.el6_5    @updates              4.0 M

Removing for dependencies:
 cronie                     x86_64  1.4.4-12.el6      @base                 174 k
 cronie-anacron             x86_64  1.4.4-12.el6      @base                  43 k
 crontabs                   noarch  1.10-33.el6       @anaconda-CentOS(略)  2.4 k
 mrtg                       x86_64  2.16.2-7.el6      @base                 1.9 M
 perl-DBD-MySQL             x86_64  4.013-3.el6       @base                 338 k
 postfix                    x86_64  2:2.6.6-6.el6_5   @updates              9.7 M
 sysstat                    x86_64  9.0.4-22.el6_5.1  @updates              823 k

Transaction Summary
Remove        8 Package(s)

mysql56 インストール
# yum install mysql56u-server mysql56u mysql56u-libs
※ ORACLE 社サーバの通信速度が遅くて 20 Mbytes 程度のファイルに 20 分近く待たされる

mysql-libs アンインストール時に remove されたパッケージを再インストール
# yum install cronie cronie-anacron crontabs mrtg perl-DBD-MySQL postfix sysstat

Postfix 起動
# service postfix start
⇒ 失敗
Sep 25 18:40:47 xxxxxxxxxx postfix/sendmail[6134]: fatal: parameter inet_interfaces: no local interface found for ::1
Sep 25 18:40:47 xxxxxxxxxx postfix[6136]: fatal: parameter inet_interfaces: no local interface found for ::1

hosts ファイルの ::1 をコメントアウトする
# vi /etc/hosts
#::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

postfix 起動
# service postfix start
⇒ 成功

postfix の config ファイルが書き換わったので戻す
# cd /etc/postfix
# mv main.cf main.cf.20140926
# mv master.cf master.cf.20140926
# mv main.cf.rpmsave main.cf
# mv master.cf.rpmsave master.cf
# service postfix reload

mrtg の config ファイル (DocumentRoot) が書き換わったので戻す
# cd /etc/httpd/conf.d/
# rm mrtg.conf
# mv mrtg.conf.rpmsave mrtg.conf
# service httpd restart

MySQL の起動
# service mysqld start
⇒ 失敗

ログを見ると以下のエラー
[ERROR] InnoDB: auto-extending data file ./ibdata1 is of a different size

lib から始まるファイル名のログを削除する
# cd /var/lib/mysql
# rm ib_logfile0 ib_logfile1 ibdata1

MySQL 起動
# service mysqld start
⇒ 成功

mysql にログインするところでエラー
# mysql -u root -p
Enter password:
ERROR 2049 (HY000): Connection using old (pre-4.1.1) authentication protocol refused (client option 'secure_auth' enabled)
⇒ 今まで使っていたのが短いタイプのパスワードハッシュのため、 root でログインできない

PW を再設定する
# service mysqld stop
# mysqld_safe --skip-grant-tables 
  CTRL+z でサスペンド
# bg

MySQL のパスワード再設定 
# mysql -u root mysql
mysql> update user set password=PASSWORD('xxxxxxxxxxxxxxxx') where user='root';

mysql_safe を強制終了してから MySQL を起動
# ps aux | grep mysql
# killall <プロセス番号>
# service mysqld start

root ユーザでログイン
# mysql -u root -p
⇒ OK

データベースのアップグレード (mysqld は起動したまま)
# mysql_upgrade -u root -p

MySQL の自動起動設定 (忘れがち)
# chkconfig mysqld on

PHP のアップグレード (5.4 ⇒ 5.5)

1. インストールされている PHP パッケージ確認

# rpm -qa | grep php
php54-5.4.32-1.ius.el6.x86_64
php54-common-5.4.32-1.ius.el6.x86_64
php54-cli-5.4.32-1.ius.el6.x86_64
php54-mysql-5.4.32-1.ius.el6.x86_64
php54-mbstring-5.4.32-1.ius.el6.x86_64
php54-pdo-5.4.32-1.ius.el6.x86_64
php54-xml-5.4.32-1.ius.el6.x86_64
php54-xmlrpc-5.4.32-1.ius.el6.x86_64
php54-gd-5.4.32-1.ius.el6.x86_64

2. PHP アップデート開始

※ もしかすると httpd を Stop する必要があるかも

php54 の削除
# yum erase php54 php54-common php54-cli php54-mysql php54-mbstring php54-pdo php54-xml php54-xmlrpc php54-gd

php55 のインストール
# yum install php55u php55u-common php55u-cli php55u-mysql php55u-mbstring php55u-pdo php55u-xml php55u-xmlrpc php55u-gd

※ roundcubemail 用モジュールのインストール
# yum install php55u-mcrypt php55u-intl

httpd 再起動
# service httpd restart

3. php.ini の設定

・ タイムゾーン設定
# vi /etc/php.ini
date.timezone = Asia/Tokyo

# service httpd restart

RoundCubeMail の インストール (続き)

1. MySQL 接続情報

データベース名 roundcubemail
ユーザ名 roundcubemail
パスワード xxxxxxxxxxxxxxxx

2. mysql から DB 作成する

  1. mysql> create database `roundcubemail`;
  2. mysql> use mysql;
  3. mysql> grant all privileges on `roundcubemail`.* to 'roundcubemail'@localhost identified by 'xxxxxxxxxxxxxxxx';

3. mime.type の更新

設定の続きをしようと以下の URL にアクセスしたら、
https://localhost/webmail/installer/

mime.type が古いと言われた。

# cd /tmp
# wget http://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types
# cp mime.types /etc/
# service httpd reload

以上でだいたいエラーはつぶすことができた。

https://localhost/webmail/ にアクセスして、 Linux ユーザとパスワードでログインできた。

今後 installer ディレクトリは不要になるので、パーミッションを削除するか、丸ごと削除しておく。

# chmod 000 installer/

※ さらに細かい設定は config/defaults.inc.php で

な、なげえよ……

Updated: 2014/10/1 水曜日 — 8:22:05

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

Bloody Mary - blog © 2008 - 2021