WordPressでデフォルトのフォントを変更する

WordPressの標準のテーマではデフォルトのフォントがセリフ付きなので日本語のサイトとしては微妙なこともありデフォルトのフォントを変更したくなる。検索すると多く出てくるのはスタイルシートを書き換えると変更できるってやつなのだが実際それだとテーマがアップデートされるたびに書き換える必要が出てくる。

もっと良いやり方は子テーマを作るほうなのだ。テーマを作るというと大変そうだが実際には非常にシンプルで既存のテーマのスタイルシートを直接編集するより簡単なのではと思う。

簡単に説明すると、wp-content/themes/に新しいディレクトリを作りstyle.cssに参照するテーマを書く。そのあとで変更したい部分だけcssの設定を書けばよいのだ。変更点も非常に明確でわかりやすい。

このブログでは本文のフォントの設定を “游ゴシック”, YuGothic, “メイリオ”, Meiryo, “ヒラギノ角ゴ ProN W3”, “Hiragino Kaku Gothic ProN”, sans-serif に変更している。

linuxのコマンドラインからGoogleドライブにアクセスする

万が一に備えてデータをバックアップしたというときに、別のマシンにバックアップするとか外付けディスクやリムーバブルデバイスにバックアップするとかいろいろあるけれど、クラウドストレージが発達した昨今ではクラウドにバックアップするのが便利だと思うわけです。

クラウドストレージの筆頭のひとつとしてGoogleドライブがあるわけですが、無料で15GBも使えてブラウザでのアクセスも簡単で分かりやすく言うことなしですが、サーバのバックアップにも使えると便利だなと思います。

そこでgdriveです。実行ファイルひとつでインストールも簡単で初回実行時に認証情報を保存しあとは普通のlinuxのcliツールとしてファイルが操作できます。大変便利ですね。

https://github.com/prasmussen/gdrive

firewall-cmdで特定のアドレスからのアクセスを許可する

CentOS 7からアクセス制御の設定方法がiptablesからfirewall-cmdに変更になっています。firewall-cmdも慣れてくると基本的な設定が簡単に出来ていいなと思ってきますが、特定のアドレスからのアクセスを許可する設定となるとiptablesの時と同じような設定方法になるようです。以下の例は192.168.1.0/24からのみproxyサーバへのアクセスを許可する場合の設定です。

firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="3128" accept'

WordPressでバッククォートを表示する

WordPressには入力された特殊文字を自動変換するおせっかいな機能がデフォルトであるようです。バッククォートで文字をくくるとそこは<code>タグでくくるように変換されてしまいます。「`こんな感じ`」です。ではバッククォートでくくりたいときにはどうすればいいの?ということになります。しかもこの自動変換は管理画面から設定を変更することもできない。解決方法を検索すると自動変換はwptexturizeという関数で処理されているのでテーマに以下の処理を追加すればOKとのこと。

add_filter( 'run_wptexturize', '__return_false' );

バッククォートを表示するために全ての変換をやめるのもいかがなものかと思いつつ、背に腹は代えられないと思い設定をします。今使っているテーマのフォルダにfunctions.phpを作成しそこに上記のコードを書くだけです(もちろん最初に<?phpのタグは必要です。)。ここではテーマのカスタマイズのために子テーマを使っていることを想定しています。子テーマの説明はまた別の機会にします。

上記の変更により確かにダッシュなどは変換されないようになりましたが肝心のバッククォートの変換はそのままです。それじゃあどの関数をいじればいいんだとwp-includes/formatting.phpを読み始めるもあえなく挫折、どうしようかと困っていた時にふと思いつきました。文字参照を使えばそもそも解決ではないかと。

文字参照というのはあれです。「&」と書く代わりに「&amp;」と書くやつ。バッククォートをなんて書けばいいのか検索するも出てこない。どうやら数値で書くしかないようです。というわけでようやく「&#096;」と書けば解決ということに行きつきました。「`こんな感じ`」です。

muninのインストール

サーバのリソースなどを監視してグラフにできるmuninをインストールします。公式サイトは以下の場所です。

Cent OSの公式リポジトリには入っていないので、ソースから入れてもいいのですが、依存しているperlのモジュールなどを手動で準備するのは大変なのでepelからインストールすることにします。

サーバの情報を収集するエージェント部分のmunin-nodeと集計して表示するmuninの二つのパッケージに分かれています。メインのサーバには両方をインストールして、他のサーバにはmunin-nodeのみをインストールすることにします。epelから両方をインストールするには以下のように実行します。

yum --enablerepo=epel install munin munin-node

デフォルトの設定でそのまま起動するとだいたい使える状態になっています。設定ファイルは/etc/munin/以下にあり、集計側の設定ファイルがmunin.conf、エージェントの設定ファイルがmunin-node.confです。

起動方法は集計側はcronで、エージェントはserviceスクリプトです。chkconfigをonにしておきます。

集計側の設定は基本はデフォルトでエージェントの設定のところを編集します。まず、自分自身のエージェントのエントリ名の名前を書き換えます。そして他のエントリを追加します。

エージェントのみを動かすサーバはmunin-node.confを編集して、allowのアドレスを集計しているサーバのIPアドレスに変更します。また、iptablesでtcpの4949ポートを忘れずにあけておきます。

epelを使用する

これまでCent OSの公式のリポジトリにないものはソースからインストールみたいな方針でやってきましたが、あるものは使おうということでepelも設定しておきます。epelとはExtra Packages for Enterprise Linuxの略らしく、Red Hat系のLinux用に追加のパッケージを提供しているリポジトリです。ウェブサイトは以下の場所です。

ページの真ん中のあたりにあるepel-releaseパッケージをダウンロードしてrpmコマンドでインストールします。例えばCent OS 5の場合は以下のような感じです。

wget http://download.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm
rpm -ivh epel-release-5-4.noarch.rpm

続いてデフォルトでは使用しないように設定ファイル/etc/yum.repos.d/epel.repoを編集します。

enabled=0

epelのリポジトリからパッケージをインストールする場合には以下のようにyumを実行します。

yum --enablerepo=epel install hoge

postfixのTLSの設定

続いてpostfixでTLSを使う設定をします。

postfixは25番ポートでの配送のやりとりと587番でのsubmissionを行っているわけですが、サーバ間の配送に使われる25番ポートは基本的に認証などは行いません。ただし、リレーは行わず自分宛のメールのみ受け取ります。

一方587番のsubmissionはメールの送信を受け付けます。ここでは認証が必要です。認証はSASL AUTHで行いますが、このときパスワードを平文で渡しても問題ないようにSTARTTLSによるTLSの使用を必須とします。

まずpostfixの設定ファイルは/etc/postfix/の下にあります。main.cfに以下の設定を行います。TLSに使うサーバ証明書の指定と、AUTHはTLSのときにしか行わないという制限です。証明書はdovecotに使用したものと同じものを使います。

smtpd_tls_cert_file = /etc/pki/dovecot/certs/mail.crt
smtpd_tls_key_file = /etc/pki/dovecot/private/mail.key
smtpd_tls_auth_only = yes

次にmaster.cfのsubmissionの行に以下のオプションを追加します。これはTLSを必ず使うと言う設定です。これで587番ポートでのsubmissionの接続は必ずTLSで行われることになります。

  -o smtpd_tls_security_level=encrypt

postfixにもクライアント認証の設定があるようですがThunderbirdでクライアント認証の設定方法が見当たらないので今回は見送ります。

 

dovecotのIMAPSの設定

オレオレ証明書ならいくらでも作成できる環境になったので、メールサーバもSSLを使って通信をするように変更します。

証明書は普通のサーバ証明書を使用しますが、メールサーバには別の名前(mailなど)を使用している場合には、そのサーバ名をCNにした証明書を用意します。

dovecotの設定ファイルは/etc/dovecot/conf.d/の下にありますが、10-ssl.confがSSLの設定です。

以下の設定でSSLが有効になります。/etc/dovecot/dovecot.confでprotocolsとしてimapが有効になっていると、これでimapsが有効になります。

ssl = required

次に以下の証明書の設定を行います。これで再起動すればIMAPSでアクセスが可能になります。

ssl_cert = </etc/pki/dovecot/certs/mail.crt
ssl_key = </etc/pki/dovecot/private/mail.key

IMAPSでのアクセスが可能になったら、10-auth.confのdisable_plaintext_authはyesに戻してもよいかもしれません。最後にiptablesでimapの143を閉じて変わりにimapsの993をあけたら完了です。

また、当然ながらオレオレ証明書の場合はメールソフト側で警告が出ます。

さらにdovecotの設定ファイルでは認証にクライアント認証を使うこともできるようですが、Thunderbirdでクライアント認証を使う方法が分からないので今回は保留とします。Thunderbirdの認証方式の設定でTLS証明書というのがそれっぽく見えますが、証明書も指定できないしどうも違うみたいです。