はてなブログ : アーカイブページをテーブルレイアウトの一覧表示にする

0
はてなブログのアーカイブページは、標準では各記事の日付・タイトルに加えてアイキャッチ画像・本文冒頭が表示され、一覧性に劣る。これを、日付・タイトル(・カテゴリ)のみをテーブルのように一覧表示するように、スタイルシートを変更する。

変更後のイメージ


例示するはてなブログでは、デザインテーマ「メモ帳」を使用している。これに後述のカスタムCSSを追記し、アーカイブページを以下のように変更する。

デザインCSSの内容

デザイン>カスタマイズ>デザインCSSを編集する。以下は、必要部分のみを示す。
.archive-entry-header {
    display: table;
    width: 100%;
    border: none;
    padding: 0;
}
.archive-entry-header .date {
    display: table-cell !important;
    padding: 2px 0 !important;
    margin: 0 !important;
    width: 86px !important;
    text-align: right !important;
}
.archive-entry-header .entry-title {
    display: table-cell !important;
    padding: 2px 0 2px 1em !important;
    margin: 0 !important;
    font-size: 100% !important;
    font-weight: normal !important;
}
.archive-entry {
    position: relative;
    margin-bottom: 0 !important;
}
.archive-entry .categories{
    position: absolute;
    right: 0;
    bottom: 2px;
    margin: 0 !important;
}
.archive-entry .entry-thumb-link, 
.archive-entry .archive-entry-body {
    display: none !important;
}

※補足※

上記CSSは、ブラウザにAutopagerizeプラグインを使用している場合に、2ページ目以降の表示にも同じスタイルが適用されるよう考慮されている。具体的には、CSSの最下層の要素のみでスタイルを定義する。

VPS : logwatchの導入

VPS : logwatchの導入

0
2016/05/16 付録を追記

Serversman@VPSに簡易ログレポートのためのlogwatchを導入する。

(※以下のコマンドではsudoを省略している)
  1. MTAであるSendmailを停止
    1. service sendmail stop
  2. MTAとしてPostfixをインストール
    1. yum install postfix
    2. chkconfig postfix on
    3. service postfix start
  3. MTAを切り替える
    1. alternatives --config mta
  4. aliasにメールアドレスを設定(root宛てのメールを全てUSER_NAMEに転送)
    1. vi /etc/aliases
      1. root: USER_NAME
      2. 【挿入】USER_NAME: MAIL_ADDRESS
    2. :wq
    3. newaliases
  5. logwatchをインストール
    1. yum install logwatch
  6. logwatchの設定
    1. vi /etc/logwatch/conf/logwatch.conf
      1. Detail = High OR Med OR Low OR 0-10
      2. MailTo = USER_NAME
    2. :wq
  7. Cronの確認
    1. ll /etc/cron.daily
  8. logwatchの動作確認
    1. logwatch --mailto root

付録

筆者の環境では、自ドメイン宛てのメールをGoogle AppsのGmailに受信している。上記の設定ではこのVPSサーバからの送信アドレスはローカルドメイン(@HOST_NAME.localdomain)となるため、迷惑メールと判定される場合がある。

Gmailにて、from:@HOST_NAME.localdomain を条件に、処理を「迷惑メールにしない」と設定したフィルタを作成しておくことを推奨する。

リファレンス

防災・災害対応リンク集(2016/5 暫定版)

防災・災害対応リンク集(2016/5 暫定版)

0
2016/05/22 更新

暫定まとめ。

備える

速報

事後対応

企業・団体


リファレンス

VPS : ServersMan@VPSサーバの初期設定

VPS : ServersMan@VPSサーバの初期設定

0
2016/05/14 hostsおよびip6tablesの設定を追記
2016/05/22 SSH Port番号の変更を追記

ServersMan@VPSを新規契約したので初期設定のメモ。

Web申込み完了から10分程度で環境が構築され、アクセス可能となる。
  1. SSHログイン
    1. ssh -l root -p 3843 HOST_IP
  2. rootユーザのパスワードを変更
    1. passwd
  3. 一般ユーザを追加
    1. useradd USER_NAME
    2. passwd USER_NAME
  4. "新しい"(別の)ターミナルウィンドウを開き、追加したユーザでSSHログイン
    1. ssh -l USER_NAME -p 3843 HOST_IP
  5. ログインに成功を確認した後、rootでログインしている(3)のセッションを切断
    1. exit
  6. (4)のセッションで、root権限に昇格
    1. su -
  7. rootログインできないようsshd_configを編集
    1. vi /etc/ssh/sshd_config
      1. #PermitRootLogin yes
      2. 【挿入】PermitRootLogin no
    2. :wq
  8. sshdを再起動
    1. 【CentOS 7】systemctl restart sshd.service
  9. "新しい"(別の)ターミナルウィンドウを開き、rootでSSHログイン
    1. ssh -l root -p 3843 HOST_IP
      1. Permission denied, please try again.
      2. rootユーザでログインできないことを確認
  10. 管理用ユーザをwheelグループに追加
    1. usermod -G wheel USER_NAME
  11. 確認
    1. id USER_NAME
      1. groups=NNN(XXX), 10(wheel)
  12. wheelグループユーザがsudoを使用できるよう設定変更
    1. visudo
      1. 【コメントアウトを解除】%wheel ALL=(ALL) ALL
    2. :wq
  13. パスを設定
    1. vi .pash_profile
      1. PATH=$PATH:$HOME/bin
      2. 【挿入】PATH=$PATH:/sbin
      3. 【挿入】PATH=$PATH:/usr/sbin
      4. 【挿入】PATH=$PATH:/usr/local/sbin
    2. source .bash_profile
  14. ホスト名をhostsファイルに設定
    1. sudo vi /etc/hosts
      1. 127.0.0.1 HOST_NAME localhost.localdomain localhost
      2. ::1 HOST_NAME localhost.localdomain localhost
    2. :wq
  15. SSHポート番号を変更
    1. sudo vi /etc/ssh/sshd_config
      1. Port SSH_PORT
    2. :wq
    3. sudo sshd -t
    4. sudo service sshd restart
  16. iptablesを設定
    1. sudo iptables -P INPUT DROP
    2. sudo iptables -P FORWARD DROP
    3. sudo iptables -P OUTPUT ACCEPT

    4. sudo iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
    5. sudo iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
    6. sudo iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP

    7. sudo iptables -A INPUT -i lo -j ACCEPT
    8. sudo iptables -A INPUT -p icmp -j ACCEPT
    9. sudo iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

    10. sudo iptables -A INPUT -p tcp -m tcp --dport SSH_PORT -j ACCEPT

    11. sudo service iptables save
    12. sudo service iptables restart

    13. sudo iptables -v -L
  17. "新しい"(別の)ターミナルウィンドウを開き、SSHログイン
    1. ssh -l USER_NAME -p SSH_PORT HOST_IP
      1. SSHログインできることを確認
    1. ip6tablesを設定
      1. sudo ip6tables -F
      2. sudo ip6tables -X
      3. sudo ip6tables -Z

      4. sudo ip6tables -P INPUT DROP
      5. sudo ip6tables -P FORWARD DROP
      6. sudo ip6tables -P OUTPUT ACCEPT

      7. sudo ip6tables -A INPUT -i lo -j ACCEPT
      8. #sudo ip6tables -A INPUT -p icmpv6 -j ACCEPT
      9. sudo ip6tables -A INPUT -p ipv6-icmp -j ACCEPT
      10. sudo ip6tables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

      11. sudo ip6tables -A INPUT -p tcp --dport SSH_PORT -j ACCEPT
      12. sudo ip6tables -A INPUT -p tcp --dport 80 -j ACCEPT

      13. sudo service ip6tables save
      14. sudo service ip6tables restart

      15. sudo ip6tables -v -L
    2. 接続または拒否を確認
      1. yumアップデート
        1. sudo yum update
          1. 【注意】CentOS 7環境において、不具合対応のため、instscriptsパッケージはUpdateされないようになっているらしい。instscriptsパッケージのエラーについては無視すること。
          2. CentOS7 yum update 後、VPSサーバーにアクセスができなくなった-  FAQ | 会員サポート:ユビキタスプロバイダ DTI
      2. (続く)

      リファレンス


      Blogger:New Minima Colored Redesign テンプレートを適用

      Blogger:New Minima Colored Redesign テンプレートを適用

      0
      2016/05/08 GitHub管理に移行

      デザインテンプレート「New Minima Colored Redesign」を適用してみる。

      ※注意※

      筆者の環境ではブラウザにAdblock plusを適用しているが、このせいでSNS関係の画像や広告の表示がブロックされるため、表示確認のときは(そもそも自分のブログぐらいは)ブロック解除しておくこと。

      また、テンプレート変更後は、バックアップ>ダウンロードして保存しておくことを推奨。

      [追記] 修正内容をGitHub管理に移行

      [追記] IssueをGitHub管理に移行


      WordPressからはてなブログへのお引越し

      WordPressからはてなブログへのお引越し

      0
      前記事と同じ理由で、このブログとは別のとあるブログ(非公開)については、はてなブログに移行した。

      引越し手順

      はてなブログはWordPressのXMLファイルフォーマットを直接インポートできるようになっている。神か。
      1. WordPress管理画面にて、ツール>エクスポート
        • XMLファイル(WXR形式)が出力される。
      2. はてなブログ管理画面にて、インポート

      付随作業

      こちらも同様に、画像ファイルのパスや自サイト内向けのリンクを修正しなければならない。

      今回は、下記サイトで公開されているRubyスクリプト「wp2hatena」を利用する。これは旧サイトの画像ファイルを自動ダウンロードして、はてなフォトライフに再アップロードし、パス/リンクを自動で書き換えてくれる。神か。(2人目)
      ただし、このスクリプト(Rev. 0.2.0)を使ってみて、以下の点で修正が必要と分かった。
      • 変換される行の、変換部分の前(行頭?)にXMLタグがある場合、XMLタグまでも削除される
      • imgタグを使わない場合、単なる画像ファイルへのリンクだけの場合は、無視される
        • aタグのリンク先画像とimgタグの参照画像が異なる場合、aタグリンク先画像を参照する決め打ちでよいか。理解が必要
      • aタグがhref属性で終了しない(後ろに別の属性がある)場合、無視される
      • タグが大文字で書かれている場合、無視される
      • title属性は考慮されない
      • 外部サイトの画像を参照しているとそれらもDL/ULされる
      • URLエンコード処理を統合したい。複数回実行すると2重エンコードされる

      おまけ

      参考までに、スクリプトの意図せぬ動作でデータが壊れたりした場合(必要な部分が削除されてしまったなど)に、XMLの構文チェックツール「xmllint」を使うと、問題のある場所を探し当てるのに役に立つ。
      Macの場合、xmllintは標準でインストールされているので、そのまま実行できる。

      リファレンス

      WordPressからBloggerへのお引越し

      WordPressからBloggerへのお引越し

      0
      2016/05/08 更新

      もう数年も更新停止していたこのブログ、自営のWordPressを放置しきっていたためセキュリティ的にもサーバ費用的にもいい加減に整理してしまわなければと決断し、Google Bloggerに移行することにした。

      引越し手順

      記事の引越しには、それぞれのインポート/エクスポート機能が使えるが、ファイル形式を変換する必要がある。
      1. WordPress管理画面にて、ツール>エクスポート
        • XMLファイル(WXR形式)が出力される。
      2. ファイル形式を変換
        • 例えば、下記のサイトが変換ツールを提供していただいている。
        • syasudaのツール (WordPress→Bloggerへの移行)
        • ※記事データを送信するわけなので、利用の是非はご自身で判断ください。
      3. Blogger管理画面にて、設定>その他>インポート

      付随作業① 画像再アップロード

      これだけでは、画像ファイルのパスやリンクは古いまま、旧WordPressの方を参照していることになるので、それらを修正しなければならない。今回は手作業で修正することにするが、ネットの前例を探してみると、移行を簡単にするためのいろいろな工夫(と苦労)が見つかり参考になる。

      筆者環境では、写真は記事毎に再編集して再アップロード、添付ファイルは(過去に無料提供されていた時に申し込んだ)Google AppsのGoogle Siteにブログ添付用のサイトを作成して、そこにアップロード&リンク編集することとした。手作業である。

      付随作業② リダイレクト設定

      さらに、URL構造が変わってしまうのでリダイレクト設定の必要がある。Blogger
      管理画面>設定>検索設定>カスタムリダイレクトにて設定できる。手作業である。せめてCSVで一括登録できるように要望したい。

      なお、RSSフィードのリダイレクト設定も忘れないように。

      ※注意※

      以上の手順で移行したところ、記事の投稿日時にタイムゾーンが反映されなかった。(出力の方法が間違っていた可能性もある。)

      あとでやる

      • テンプレートのカスタマイズ
      • AutoPagerで表示する2ページ目以降が全文出力
      • プレビューにスタイルを反映できないか
        • blockquote
        • table
        • iframe
      • 検索機能
      • カテゴリ整理、階層化
      • Sitemap登録(ドメイン移行後)
      • 独自404ページ
      • コメント機能外部化(?)
      • 関連記事機能
      • 履歴管理(?)
      • Code Syntax Highlight
      • アクセス解析
      • CSS @print

      リファレンス