ブログのメッセージを英語にし、かつ検索時の複数ワードの区切りに全角スペースをOKにする。

私は数ヶ月前からブログに英語の記事を書き出しました。海外から来る人のため、wordpressの言語設定を英語にしていました。そうすると「コメントをどうぞ」みたいな所が自動的に英語になります。しかし、この設定での問題点を今日発見しました。wordpressのテーマには大抵検索機能が付いています。この検索機能で、複数ワードでAND検索を行う場合、半角または全角スペースで区切ればOKです。これ実は、wordpressを入れただけの状態では半角スペースのみOKで、全角スペースはダメです。全角でもOKにするには、WP Multibyte Patchという今は最初から入っているプラグインを有効にしないといけません。
で、言語を英語に設定した場合ですが、この場合も全角スペースが効かなくなることを今日発見しました。今は仕方なく日本語の設定に戻しています。

→ これについては、WP Multibyte Patchの作者の方のページを見て解決しました。
WP Multibyte Patchの設定ファイルの最後に、
add_filter(‘override_load_textdomain’, create_function(”, ‘return !is_admin();’));
というのを一行追加し、ファイル名をwpmp-config.phpにして、/wordpress/wp-contentに置けば、大丈夫で管理画面のみ日本語で後のメッセージは英語のままになり、かつ検索での全角スペースもOKになりました。(ページの言語は日本語です。)

メモ:Jetpackの「関連投稿」の数を3から6に増やす。

テーマ(私の場合はtwentyeleven)のfunctions.phpの末尾に以下を追加。

function my_jetpack_relatedposts_filter_options( $options ) {
$options[‘size’] = 6;
return $options;
}
add_filter( ‘jetpack_relatedposts_filter_options’, ‘my_jetpack_relatedposts_filter_options’ );

(情報元はこちらです。)

ルーターを新しくしました

実に15年ぶりぐらいに、ルーターを新しくしました。ブロードバンドルーターについては最初に買ったのがバッファローのでこれは半年で壊れました。次が確かプラネックスだったかと思いますが、これも2年くらいで壊れました。どうせ壊れるなら安い奴でいいやと思ってCoregaのCG-BARFX3というのにしたら、これが実に丈夫で15年間まったく問題ありませんでした。とはいっても無線LAN機能がないので、別に無線LANアダプターを付けて使っていました。これに似たのを買い直そうとしても、もう有線だけのルーターってほとんどないですね。それでNEC Aterm WG1200HP2という無線ルーターに交換しました。これも新しい製品ですが、見た眼はかなり安っぽいです。
設定はポートフォワーディング含めて簡単に出来たんですが、何故か自分のWebサーバーにドメイン名でつなげるようになると、ローカルのIPアドレスではサーバーにつなげず、逆にローカルでつながる時はWebサーバーにドメイン名でつなげない、という現象が出て悩みましたが、FTP、メール、SSHのすべてでローカルのIPアドレスではなくドメイン名で呼ぶようにしたら解決しました。
逆にRainLoopはIMAP4でサーバーにつながらなくなったのですが、こちらは逆にサーバー名をローカルのIPアドレスに変えたらOKでした。変なの。まずはともあれルーター交換が成功して何よりです。
最後にルーター交換+セットアップに1時間半くらいかかり、その間アクセス出来ませんでした。その間に来られた方にはお詫び申し上げます。

RainLoopでアドレス帳を使えるようにする。

RainLoopは驚くべき事に初期状態ではアドレス帳がありませんでした。
意外とWeb上にも情報なかったんですが(使っている人少ないんでしょうか)、以下のようにして無事アドレス帳を使うことが出来るようになりました。

(1)mysqlでrainloopのアドレス帳用のデータベースを作る。
(mysqlを入れていない場合は、SQL Liteも設定できますが、アドレスデータがかなりの量あるなら、mysqlを使った方が無難です。)

# mysql -u root -p
Enter password:(パスワード入力)
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3577
(以下表示略)
mysql> create database rainloop;
mysql> create user hogehoge identified by ‘パスワード’; (’パスワード’の所は実際に設定するPWを)
mysql> grant all privileges on rainloop.* to hogehoge;
mysql> quit

(2)rainloopの管理画面にログインし、左のタブで「連絡先」をクリック。
「連絡先」の所で、「連絡先を有効化」をチェック。
「ストレージ」の所で「タイプ」で「MySQL」を選択。
DSNの所で、”mysql:host=127.0.0.1;port=3306;dbname=rainloop”を設定。
ユーザー名、パスワードを入力。
「テスト」ボタンを押して、ボタンが緑になればOK。

これでログアウトして、一般ユーザーで入り直せば、アドレス帳ボタンが新規作成ボタンの右に追加されている筈です。

RainLoop(Webメール)を自宅サーバーに入れる

自宅サーバーでのWebメールは、昔Squirrel Mailというのを使っていましたが、サーバーを更新して入れ直した時にいつからか文字化けが発生して使えなくなりました。それ以来Webメールは設定していませんでしたが、今回ググってみてRainLoopというWebメールを入れてみました。インストールは非常に簡単でした。しかし、管理画面には問題なくログインできましたが、そこでドメインを設定して、ユーザー名でログインしようとすると認証エラーでダメです。しかし、10回くらい繰り返してやっていたら、そのうちログイン出来るようになりました。しかし、次の問題は、メール受信はOKですが、送信がやはり認証エラーになりました。あれこれやって、結局ドメインのSMTPの設定で、”php mail() 関数を使用する” にしたら送信できるようになりました。

SSLのマルチドメイン証明書の申請手順、インストール手順メモ

今回、SSLの証明書はValueSSLという会社が提供するCOMODO社のポジティブSSL マルチドメインというものを使いました。以下、手順をメモしておきます。
私の環境は、
CentOS 7.4
Apache 2.4.6
OpenSSL 1.0.2k-fips
です。

(以下、.keyファイルの作成方法は省略しています。)

1. opensslでマルチドメイン証明書用のCSRを作成

以下は https://rms-digicert.ne.jp/howto/csr/openssl.html の記述の引用です。

/etc/pki/tls/openssl.cnfの[req]セクションで

[req]
req_extensions = v3_req
上記記述がコメントアウトされている場合は、有効にします。 記述がない場合は上記を追加してください。

[ v3_req ]セクションで

[ v3_req ]

basicConstraints = CA:FALSE
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
上記に続けて以下を追加してください。

subjectAltName = @alt_names

[alt_names]
DNS.1 = foo.com
DNS.2 = www.foo.org
上記は、Subject Alternative Names(サブジェクトの別名)に foo.com と www.foo.org を登録する例です。
DNS.1 =、DNS.2 = .. に続けて、Subject Alternative Names(サブジェクトの別名)に登録するホスト名を記載してください。

以下のコマンドで /etc/ssl/san_openssl.cnf を使ってコモンネーム www.foo.com の CSR を作成します。

openssl req -key yourkey.key -config /etc/ssl/san_openssl.cnf -new
この後は通常の openssl コマンドと同様に、対話的にデータを入力します。コモンネーム www.foo.com も入力します。

作成できた CSR は以下のコマンドで内容を確認できます。$CSR_FILENAME は内容を確認する CSR ファイルの名称です。

openssl req -text -noout -in $CSR_FILENAME
以下の様な内容が表示されるはずです。

Attributes:
Requested Extensions:
X509v3 Basic Constraints:
CA:FALSE
X509v3 Key Usage:
Digital Signature, Non Repudiation, Key Encipherment
X509v3 Subject Alternative Name:
DNS:www.foo.com, DNS:foo.com, DNS:www.foo.org

2.ValueSSL社のサイトで、ポシティブSSL マルチドメインを申し込み。その際に1.で作成したCSRの内容を貼り付けます。

3.SSL証明書の取得には、申し込んだドメインの正式な所有者であることを証明するため、そのドメインでのメールアドレス(ValueSSL社が何パターンか出してくる中から選ぶ)でメールを受信してその中にあるリンクをクリックして手続きする必要があります。(私が使っているvaluesslというサービスではメール認証が面倒な時には、ファイル認証もサポートしています。この方法はサービス会社が指定する内容のファイルを、サイトの特定のディレクトリーに置いて、サービス会社のクローラーがアクセスして読んで内容が一致すればOKというものです。)このため、

(1)DNSサーバーの設定でMXレコードを設定し、普段メールで使っているドメインでそのドメインのメールが受信できるようにします。
(2)/etc/postfix/virtual を編集し、以下を追加。
shochian2.com anything
admin@shochian2.com t-maru

max-weber.jp anything
administrator@max-weber.jp t-maru

この際に、/etc/alias に別の転送設定が指定されていないか注意します。

4.3.でメールを受信して手続きすると、1時間くらいで(私の場合作業したのが夜でイギリスのCOMODO社はたまたま営業時間内だったのでしょう)COMODO社から直接英語のメールで4つのcrtファイルが来ますが(本サイト1+バーチャルドメイン2の場合)、これは無視して何もしません。(私は最初この4つのcrtファイルをインストールしようとしてはまり、apacheが再起動しなくなってトラブリました。)

5.次の日くらいにValueSSL社から、メールでサーバー証明書1つと中間CA証明書1つがメール中に記載された形で来るので、それぞれを切り出して、.crt、.caファイルを作成します。

6./etc/httpd/conf.d/ssl.conf を編集して以下を書き換え+追加。(その前に、.key、.cer、.caファイルは、オーナーをroot、ファイル属性を400に変更しておきます。)

# Server Certificate:
# Point SSLCertificateFile at a PEM encoded certificate. If
# the certificate is encrypted, then you will be prompted for a
# pass phrase. Note that a kill -HUP will prompt again. A new
# certificate can be generated using the genkey(1) command.
SSLCertificateFile /etc/pki/tls/certs/shochian2.crt

# Server Private Key:
# If the key is not combined with the certificate, use this
# directive to point at the key file. Keep in mind that if
# you’ve both a RSA and a DSA private key you can configure
# both in parallel (to also allow the use of DSA ciphers, etc.)
SSLCertificateKeyFile /etc/pki/tls/private/shochian2.key

# Server Certificate Chain:
# Point SSLCertificateChainFile at a file containing the
# concatenation of PEM encoded CA certificates which form the
# certificate chain for the server certificate. Alternatively
# the referenced file can be the same as SSLCertificateFile
# when the CA certificates are directly appended to the server
# certificate for convinience.
SSLCertificateChainFile /etc/pki/tls/certs/shochian2.ca

#以下はファイルの末尾に記載追加。
#文字コードの指定は私の環境ではEUC-JPとUTF-8のドメインが混在していて文字化けが発生したため入れたもの。

NameVirtualHost *:443

<VirtualHost *:443>
DocumentRoot /var/www/wordpress
ServerName shochian2.com
SSLEngine on
SSLProtocol all
SSLCertificateFile /etc/pki/tls/certs/shochian2.crt
SSLCertificateKeyFile /etc/pki/tls/private/shochian2.key
SSLCertificateChainFile /etc/pki/tls/certs/shochian2.ca
<Directory “/var/www/wordpress/”>

</Directory>
# ErrorLog /var/www/domain1/logs/error_log
</VirtualHost>

<VirtualHost *:443>
DocumentRoot /var/www/html
ServerName shochian.com
SSLEngine on
SSLProtocol all
SSLCertificateFile /etc/pki/tls/certs/shochian2.crt
SSLCertificateKeyFile /etc/pki/tls/private/shochian2.key
SSLCertificateChainFile /etc/pki/tls/certs/shochian2.ca
<Directory “/var/www/html/”>

</Directory>
# ErrorLog /var/www/domain2/logs/error_log
</VirtualHost>

<VirtualHost *:443>
DocumentRoot /var/www/maxweber
ServerName max-weber.jp
SSLEngine on
SSLProtocol all
SSLCertificateFile /etc/pki/tls/certs/shochian2.crt
SSLCertificateKeyFile /etc/pki/tls/private/shochian2.key
SSLCertificateChainFile /etc/pki/tls/certs/shochian2.ca
AddDefaultCharset UTF-8
AddCharset UTF-8 .cgi .htm .html .pl
<Directory “/var/www/maxweber/”>

</Directory>
# ErrorLog /var/www/domain3/logs/error_log
</VirtualHost>

注:ValueSSL社のサイトにあった説明では<VirtualHost *:443>の*の所に具体的IPアドレスが記載されていましたが、その記述ではバーチャルドメインが機能しなかったので修正しました。

7.systemctl restart httpd.serviceでapacheを再起動します。

ブログをSSL対応にしました。

現在私の自宅サーバーでは1台で2つのドメインを管理していますが、そこに更に1つ付け加わることになりました。それもあって、SSLの正式な導入を決めました。
現在GoogleはすべてのサイトでSSLを採用するようにプレッシャーをかけてきており、既に検索順位では非SSLサイトはSSLサイトより順位が下になるようにされています。更に2018年夏にChromeで非SSLサイトにアクセスすると警告を出すそうです。今回導入したSSLの証明書は1つの証明書ファイルで3ドメインのすべてに対応するマルチドメイン証明書です。
このブログ自体のSSL化は、Really Simple SSLというプラグインで行いました。ボタンを押すだけでとても簡単でした。ただ投稿中のリンクは手動修正する必要があります。

 

今回新しくしたサーバーマシンのスペック

今回新しくしたサーバーマシンのスペックです。記録用。注目点はHDDで何と2TBもあります。こんなに必要ないのですが、前回HDDが飛んだのを考え、標準構成(1TB)だとどこのメーカーのかわからないので、別のを指定したらたまたま2TBになったというだけです。

 

 

 

 

CPUインテル     Core i5-7400 (3.00GHz-3.50GHz/4コア/6MBキャッシュ)
グラフィック機能   インテル HDグラフィックス630 (CPU内蔵)
電源         400W 静音電源 80PLUS
メモリ         8GB DDR4 SDRAM(PC4-19200/4GBx2/Dual Channel)
ハードディスク               SEAGATE 2TB HDD (ST2000DM006)
光学ドライブ     DVDスーパーマルチドライブ
マザーボード     ASUS PRIME B250M-A
(インテル B250 チップセット マイクロATXマザーボード)

サーバーダウンのお詫び / 自宅サーバーOSの変遷

ここのブログのサーバー、2018年3月20日から24日のほぼ5日間、ハードディスクの不良によりダウンし、新サーバーに交換するまでアクセスできなくなっておりました。この間に来られた方にお詫びします。
自宅サーバーを始めたのは2002年ですが、現在のサーバーで7代目です。
これまでのサーバーOSの変遷は以下の通りです。

2002年7月 2003年7月 Windows XP
2003年7月 2006年8月 Red Hat 9
2006年8月 2009年8月 FedoraCore 5
2009年8月 2012年8月 FedoraCore 5
2012年8月 2016年3月 CentOS 6
2016年3月 2018年3月 CentOS 7
2018年3月 CentOS 7.4