Sierra に インストールした server に Roundcube と MySQL 追加

Roundcube

  1. Roundcube_for_OS_X_Server_1.1.4.zip をインストール。
  2. サイトの詳細設定で、topickdesk-Roundcube にチェックを入れるだけ。再度感謝。
  3. ブラウザからサイトの /webmail/ にアクセス。
  4. メールサービスを有効にしているアカウントでログイン
  5. 受信、送信をテスト

MySQL

mac 用のインストーラーから、まっさらなサーバにインストールのは初めて。
今までは先にインストールしたものがあった。
ソケットでパスを通すとか、起動項目とかすっかり忘れていて、途中うろうろしたけど、手順は以下の通り。

  1. mysql-5.7.15-osx10.11-x86_64.dmg にてインストール
    20161009初期パスワードをコピーしておく。
  2. インストールの確認
    ファインダーで隠しファイルを表示する状態で目視
    /usr/local/mysql、mysql-5.7—
  3. システム環境設定から start MySQL server
    20161009b
  4. root のパスワードを変更。
    ターミナルにて
    /usr/local/mysql/bin/mysql -u root -p (自動でふられた初期パスワード)
    SET PASSWORD FOR root@localhost = PASSWORD(‘****’);
  5. ローカルサーバへパスを通す
    ターミナルにて
    sudo mkdir /var/mysql;
    sudo ln -s /tmp/mysql.sock /var/mysql/mysql.sock
  6. phpMyAdmin をwebサイトにドラッグ&ドロップ
  7. ブラウザから接続、ユーザ:root パスワード:****
  8. ログインできた。

mysql のエラーログとシステム環境設定に不安材料あり。少し様子見。

ここまでで、Apache や php の設定ファイルはいじっていない。
Sierra server 5.2 では、SSL 証明書のインストールがまだ不十分(判定B、中間証明書を認識できていない)なので、ほかの server を Sierra にアップグレードできないでいる。

Apache log

server 5.1.7 の Webサイト サービス。

  • log は2種類保存されていて、Proxy と、Proxy でないもの。これらの差分を比較したけど、ほぼ同じ(数行の違い)なので、アクセス解析には、Proxy でないものを利用している。
  • log は21メガ程度になるとアーカイブされる。
  • アーカイブは直近の10個まで。

10.6 server では1週間ごとのアーカイブで、1ギガを超えるログが記録されたこともある。これでいくと、1日に300メガのログに相当するので、1日に1回以上はログのバックアップが必要になる計算。
アクセスが多くなるシーズンに向けて準備が必要だ。

PostgreSQL 再チャレンジ

EC CUBE を使うにあたって MySQL から PostgreSQL 利用で、なんだかんだで、2か月もかかってしまった。もちろん誰もいない野原を進んでいるわけではない。
そもそも2009年ごろから同じようなことをやっている。ちょっとは進歩したのかな?

  1. brew doctor
    El Capitan では、これがそもそもひっかかる。
    パーミッションなどエラーをつぶしていく。
  2. brew search postgres
    homebrew/versions/postgresql93
    server.app を使いながらなのでバージョンを合わせる。
  3. postgresql のセットアップ
    initdb /usr/local/var/postgres -E utf8 –no-locale
    最初のデータベースを作る。大切な情報が出る。
    設定ファイルもできる。
  4. postgresql カスタマイズ
    ポートを空いている番号に設定。
    デフォルトだと、もともと El Capitan で使っているものと混乱する。
  5. 起動スクリプト
    ln -sfv /usr/local/opt/postgresql93/*.plist ~/Library/LaunchAgents
    生成されているスクリプトだと、システムログがメタメタ。
    mysql の起動スクリプトに習って調整。
  6. phpPgadmin 接続
    /phpPgAdmin-5.1/confconfig.inc.php
    ポートやユーザ制限を調整。
  7. phpPgadmin ロール設定
    ロール設定して、データベース作成の順番

ひとつ進めるたびに問題が出る。El Capitan , postgersql の情報の少なさで、こんな風にに設定できるはず!の思考と、参考サイトのおかげでセットアップできることができました!!!
php.ini やhttp.conf の設置は変更せず。
サーバの再起動もなし。

homebrew メンテナンス。mcrypt、ACP をインストール。

mcrypt をインストール1

brew install homebrew/php/php55-mcrypt

Agreeing to the Xcode/iOS license requires admin privileges, please re-run as root via sudo.

→APP から Xcode を起動して agree

undefined method `desc’ for Php55Mcrypt:Class

→brew update で大量のエラー

homebrew メンテ

→ brew doctor
Warning: The /usr/local is not writable.
sudo chown $(whoami):admin /usr/local

→sudo brew update
Warning: /usr/bin occurs before /usr/local/bin

→echo ‘export PATH=”/usr/local/bin:$PATH”‘ >> ~/.xxx
source ~/.xxx

mcrypt, ACP をインストール2

sudo を付けずにインストールしてしまったのでいろいろ不具合がありそう。
Error: You must `brew link libpng freetype unixodbc php55 mhash mcrypt` before homebrew/php/php55-mcrypt can be installed

→sudo brew link libpng freetype unixodbc php55 mhash mcrypt
→sudo brew reinstall homebrew/php/php55-mcrypt

* /usr/local/etc/php/5.5/conf.d/ext-mcrypt.ini was created,
* /usr/local/etc/php/5.5/conf.d/ext-apcu.ini was created,

で、ソケットを見ると、
[mcrypt]
extension=”/usr/local/opt/php55-mcrypt/mcrypt.so”

[apcu]
extension=”/usr/local/opt/php55-apcu/apcu.so”
apc.enabled=1
apc.shm_size=64M
apc.ttl=7200
apc.mmap_file_mask=/tmp/apc.XXXXXX
apc.enable_cli=1

これを php.ini に記述。APC動かず。

システムログがいっぱい

その一、

/System/Library/Caches/com.apple.coresymbolicationd/data does not exist, resetting cache

あるはずの「Caches」がない。
ディレクトリを作ったりするのがとても面倒そうなので、
ダウンロードしたインストーラーで、OS を上書きインストールして解決。

その二、

ReportCrash[2165]: Removing excessive log: file:///Library/Logs/DiagnosticReports/postgres_real_2016-01-03-203743_mtgp.crash

レポートのファイルを見ると、server.app で問題を起こしているらしい。
server.app プロファイルマネージャ 修復して解決
https://support.apple.com/ja-jp/HT202523

その三、

mds[75]: (DiskStore.Warning:127) Failed messaging flag writer
情報が少なく、見当がつかない。再起動で記録されなくなった。

とり急ぎ MySQL 5.7 にアップグレード

10工程くらいになるけれども、MySQL を 5.6から5.7にした。

手順概要

  1. 直前に、既存データをphpMyadmin からエキスポート
  2. インストールする前に、使用中のMySQLをストップ
    sudo launchctl unload /Library/LaunchDaemons/com.mysql.mysql.plist
  3. 停止の確認、アクティブモニタで確認
  4. インストール
    [Note] A temporary password is generated for root@localhost:******
  5. インストールの確認
    /usr/local/mysql -> mysql-5.7.10-osx10.9-x86_64
  6. 既存の起動スクリプトを削除
    sudo rm /Library/LaunchDaemons/com.mysql.mysql.plist
  7. MySQL 起動
    システム環境設定から
  8. root のパスワードを変更。
    /usr/local/mysql/bin/mysql -u root -p (自動でふられたパスワード)
    SET PASSWORD FOR root@localhost=PASSWORD(‘/-/-/-/-‘);
  9. phpmyadmin からデータのインポート
    今回は、php.ini の設定でアップロードできる容量を増やせたが、次回はきっと無理だから、sequel Pro でデータベースごとエキスポート、インポート。
  10. ユーザのインポート
    事前にphpmyadminのユーザからエキスポートで書き出されたコマンドを、mysql に流す。改行があってもすべて流し込める。
  11. 運用サイトをチェック

パスワードの有効期限があるそうで、これは、どこかで設定が必要。あるいは、推奨通りに、期限日までにパスワード変更などのメンテナンスを行うか?
phpmyadmin に簡単なGUIが出てくるか?

やっちゃった!

Workgroup Manager.app では設定できなくなっていた。

メールアカウントとして、
「ユーザ名」だけで今までは、メールの受信ができていたのに、「ユーザ名」+「ドメイン」をショートカットに追加しないと、メールの受信ができなくなっていた。

server.app のユーザ設定からできる。

ドメインを、いくつも使う場合は、当然といえば当然なんだけど。これで、info@~を複数のドメインで、個別に受信できるね。

サーバのCPU使用率が高い

サーバの CPU 使用率は、通常20%を超えることが少なかったのに、数日前に、乱高下を繰り返し始めました。MySQL が多く消費していることがわかっていた。
MySQL の「何が」までは追いかけなかったが、たぶん「アレ」というのは見当がついていたので、MySQL を使っているCMSをメンテナンス。とりあえず落ち着いた。

SSL証明書

デフォルトの証明書が邪魔をしているようで、

https://ssltools.websecurity.symantec.com/checker/views/certCheck.jsp

で忠告される。ただし、デフォルトの証明書のおかげな部分もある。

You have 1 error
Multiple certificates were found with the same common name.
The certificate installation checker cannot determine which certificate is correct. Remove the incorrect certificate and try again.

Recommendations
Root installed on the server.
For best practices, remove the self-signed root from the server.
Update your certificate chain.
Your certificate chain is valid, but some older browsers may not recognize it. To support older browsers, download and install the missing intermediate certificate

下記ではB判定、ブラウザのカバー率が低い。10.6サーバはC判定、上記のチェックツールはOK。ただし This server may be vulnerable: SSLv3 is enabled。

https://www.ssllabs.com/ssltest/

逆引き設定 成功

/Library/Server/named

にて、設定ファイルを編集。DNSのログを確認しながら。

***.in-addr.arpa/IN/com.apple.ServerAdmin.DNS.public: has no NS records
***.in-addr.arpa/IN/com.apple.ServerAdmin.DNS.public: not loaded due to errors.

シリアル番号を上げながら、
設定ファイルを上書きしたら、DNSを再起動。

DNS を GUI で編集した場合は、書式が変わるので、再編集の必要あり。

1年半も放置していた。

 

webmail Roundcube

roundcubemail-1.1.0-complete をダウンロード

  • MySQL
  • roundcube をウェブサーバーに展開してブラウザからアクセス
  • logs temp に書き込み権

**/installer/

Fatal error: Class ‘PEAR’ not found in /**/program/lib/Roundcube/bootstrap.php on line 100

めげずに再読み込み!

項目で、 NOT AVAILABLE があっても必要最低限「OK」があれば良い。2015-03-07 13.40.17

SMTP と IMAP はデフォルトのまま

IMAP のテストで NOT OK

Roundcube のメッセージ
Temporary authentication failure.

IMAP のログ
Disconnected (auth process communication failure): user=<>, method=DIGEST-MD5,

メールの認証で DIGEST-MD5 をオフにすることで解決。

参考 DIGEST-MD5 OFF

http://topicdesk.com/downloads/roundcube

SSL下で使うときは、ssl:// tls:// ポート 995 993で調整

メモリ交換終了。SSL証明書更新。

無事メモリ交換できました。最大メモリを積んだ。
所要時間数分ほど。
作業しながら、アクティブモニタで見ていると、
すぐに目いっぱい使いだした。

SSL周辺の仕様更新が激しい。証明書も値上がり。
ドメインも値上がり。痛いなあ。

せっかくメモリ交換したけど、いろいろが追い付いていない。

server 3.1.2 でSSL証明書

以前に比べてとても楽になっていました。
CSRの設定項目も必要最低限になっている。ポート指定はできない。
証明書や、中間証明書も放り込むだけだった。このとき、キーチェーンに登録される証明書の項目もチェックしながらの作業がいいだろう。

(10.6 のサーバでも同様にできるかもしれないが、再起動時に書き換わる設定ファイルをいちいち設定している。)

簡単にはなったけれど、

  • デフォルトのSSL サーバが削除できない。
  • デフォルトのSSL サーバのポートを変更できない。

ので、サーバに割り当てたドメイン以外の、ドメイン認証型の証明書を導入しても、チェックサイトでエラー表示になる。しかし、ブラウザでは、コンテンツをちゃんと表示できる。

SSL で接続した際は、まず、ドメイン(A)が目指す IP アドレスを使って、デフォルトのポートで接続が可能か調べるとのこと。このあと、ドメイン(B)に対して証明書を使った通信がはじまる。チェックサイトでは、サーバのドメインとweb サイトのドメインで、証明書が複数あることを問題にしている。けれどもブラウザは、ドメインで使える証明書があり、暗号化をスタートできれば、web サーバとの通信を始めることができる。

現状 A、Bの証明書のあるサーバに、Cも使えるか検証するのが次のステップ。

Server Diagnostics Mac OS X

「Apple Server Diagnostics では、サーバをテストして、ハードウェア
に関する問題を診断できます。」
8年も使っていて、こんなツールがあるのを初めて知った。
新規購入時にはセットアップされているらしいが、ソフトウェアレイドで構成しなおすことで消えてしまう。

  1. インストールディスクで起動用のメディアを作成
  2. 1.の起動用メディアに新規インストール(細かい手順がある。マニュアル参照)
  3. インストールしたOSのアプリケーションフォルダに「AppleServerDiagnostics.app」を入れる。(Admin Tool にある)
  4. この起動用メディアから起動すると「AppleServerDiagnostics.app」が立ち上がる
  5. 新規、テスト
  6. テスト項目で「失敗」の箇所を特定する。

途中のハードディスクチェックで引っかかったので7時間程度で終了。スペアの機体がなかったら、サーバサービスの運用がこの時間できないから、実機のみの場合は使えない。

Sandbox ログ

kernel[0]: Sandbox: xscertd-helper() deny file-read-metadata /private/var/db/DetachedSignatures
kernel[0]: Sandbox: xscertd-helper() deny file-read-data /private/var/db/DetachedSignatures
kernel[0]: Sandbox: xscertd() deny file-read-metadata /Library/Preferences/com.apple.security.plist
kernel[0]: Sandbox: xscertd() deny file-read-data /Library/Preferences/com.apple.security.plist

sandbox でアプリを包んで使用する過程で記述されているログらしい。

古いソフトを見直し。→効果なし

記録が10分おき。メールの受信間隔と一致。thnderbird で出る。Mac Mail, Windows Live Mail では出ない。

ホスト名にドメインを設定したところ、thanderbird でも記録されなくなった。(解決)
Windows Live Mail は受信ができるが、送信ができない。サーバの証明書が、ホスト名の変更によってうまく認証できていない様子。Windows Live Mail でのサーバ証明書のキャッシュの削除方法がわからない。thanderbird では以前の記事の様子で対応した。

サーバ証明書をメールソフトで使う