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
- Alias /webmail/ /var/www/html/roundcubemail/
- <Directory /var/www/html/roundcubemail/>
- DirectoryIndex index.php
- </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 作成する
- mysql> create database `roundcubemail`;
- mysql> use mysql;
- 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 で
な、なげえよ……