tohokuaikiのチラシの裏

技術的ネタとか。

Ubuntu server を14から16にアップグレードしてPostgresを9.5にする

Postgresqlの9.5を使いたくなったのだけど、Ubuntu14だと9.3なのでUbuntu16にアップデートしてPostgresを9.5にしようということに。

あ、UbuntuはもちろんUbuntuサーバーです。

とりあえず、Ubuntuのアップデート

死ぬほど簡単だった。

$ sudo do-release-upgrade -d

これだけ。色々とY/Nはあったけど。

Postgres9.5のインストールと起動

とりあえず、

$ sudo apt-get install postgresql-9.5
$ sudo apt-get install postgresql-client-9.5

ほんで、

$ sudo service postgresql stop
$ sudo service postgresql start

とすると、9.3と9.5が同時に立ち上がる。ポートが違う。

postgres@localhost:~$ psql -p 5432
psql (9.5.3, server 9.3.13)
Type "help" for help.

postgres=# select version();
                                                   version
--------------------------------------------------------------------------------------------------------------
 PostgreSQL 9.3.13 on x86_64-unknown-linux-gnu, compiled by gcc (Ubuntu 4.8.4-2ubuntu1~14.04.1) 4.8.4, 64-bit
(1 row)

postgres=# \q
postgres@localhost:~$ psql -p 5433
psql (9.5.3)
Type "help" for help.

postgres=# select version();
                                                 version
----------------------------------------------------------------------------------------------------------
 PostgreSQL 9.5.3 on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 5.3.1-14ubuntu2) 5.3.1 20160413, 64-bit
(1 row)

こんな感じ。

9.3は普通に使わないので

Ubuntuの機能として、Postgresのバージョン違いとかクラスタにして管理するとかがあるらしい。

lets.postgresql.jp

この同居機能もその1つなので、OFFにしてやる。

$ emacs /etc/postgresql/9.3/main/start.conf
manual

として、通常のinitでは起動しなくする。

disabledとすると通常のinitどころかUbuntuのPostgres制御コマンドのpg_ctlclusterでも使えない。ただし、pg_ctlclusterではなく通常のPostgresコマンドを使えば問題なく起動できる。*1

ついでにポートを通常値にしておく。

9.3が5432ポートを使ってたので、9.5がそれを使うようにする。 /etc/postgresql/9.5/main/postgresql.conf

port = 5432

/etc/postgresql/9.3/main/postgresql.conf

port = 5433

とする。

# /etc/init.d/postgresql restart
# su - postgres -c "psql"
psql (9.5.3)
Type "help" for help.

postgres=# select version();
                                                 version
----------------------------------------------------------------------------------------------------------
 PostgreSQL 9.5.3 on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 5.3.1-14ubuntu2) 5.3.1 20160413, 64-bit
(1 row)

*1:通常のコマンドを使うというのはかなりのメンテナンスモードなので誤操作防止のための設定値。

auでテザリングするとHTTPのIPアドレスとSSHのIPアドレスが変わってしまって困る件

何で困るかというと、iptablesでWEBからアクセスしたIPアドレスを一時的にiptablesSSH許可リストに入れるようなバッチを組んでいて、それがうまく動作しないからである。

misc/add_ip_tables at master · tohokuaiki/misc · GitHub

auの公式情報

www.au.kddi.com

を見ると、現時点の使用IP帯域を教えてくれるのだけどこれを一括OKにするのはガバガバすぎる。

ということで、上記のスクリプトを80番ポートではなくほかのポートで提供することにした。

apacheでバーチャルホストを8887番で立てる

ports.confで、8887(一例)をListenし、バーチャルホストを立てる。

Listen 8887
NameVirtualHost foo.example.com:8887
<VirtualHost foo.example.com:8887>
        ServerName foo.example.com
        DocumentRoot /xxxxx/public_html/
</VirtualHost>

という感じ。

80番ポートでなければProxyされないで同じIPで接続していくのでこれでOK.

Wgetでサイトを丸ごと保存する際のオプション

こんな感じかな?

$wget -r -E -p -k --restrict-file-names=windows http://example.jp/
オプション 説明
-r 再帰取得
-E HTML拡張子で保存
-p jsやcss、画像なども保存
-k jsやcss、画像などを相対パスに書き換える
--restrict-file-names=windows Windowsで使えるようなファイル名にして保存

WordPressでテーマのcommon.cssがロードされてなくて焦った件

WordPressをバージョンアップしたらCSSが崩れた。

ん~~~~、ってHTMLをdiffして見てみたら

Before

<link rel='stylesheet' id='common-css'  href='/wp-content/themes/xxx/css/common.css' type='text/css' media='all' />

After

<link rel='stylesheet' id='common-css'  href='/wp-admin/css/common.min.css' type='text/css' media='all' />

ってなってた。

なんで管理画面のCSSなんかがロードされてるんじゃ。。

原因を探ってみる

とりあえず検索する。 こんなのがあった。 its-office.jp

んー、コアがCSSのロードを上書きしたっポイ。どっかなと探すと、、、

wp-includes/script-loader.php

ここで、

<?php
    // Admin CSS
    $styles->add( 'common',              "/wp-admin/css/common$suffix.css" );

ってされてた。

これによりテーマ内の function.php にて

<?php
wp_enqueue_style( 'common', get_template_directory_uri().'/css/common.css' );

してたのがダメになっちゃったんだね。

原因を探ってみる2

しつこい僕はこの互換性を破壊してそうなコードを誰がコミットしたのか調べてみた。

このコミット。 CSS: Stop using `wp-admin.min.css` and instead queue the individual s… · WordPress/WordPress@987ce83 · GitHub

まぁ、他のedit, aboutなんかをみてると、wp_enqueue_styleするのには自分のオレオレPrefixでも付けておけって感じなのかな。

影響を受けたバージョンも調べてみた

このコードを混入採用したのはどのバージョンからかっていうと・・・

WordPress Versions « WordPress Codex

によると4.4.2からってことみたい。

・・・・随分とWordPressをUpdateするのをスルーしてきたのがばれてしまうではないか・・・。

Google Chromeの新規タブに現れる「トップアクセス」みたいなサイトのサムネイルに不思議な画像

Google Chromeの新規タブに「よく行くサイト」みたいなのがあるじゃないですか。

あそこに見覚えのないものが・・・。

f:id:tohokuaiki:20160614093513p:plain

いや、サイト自体はLive Dowango Readerで、別に変じゃないんだけどなんだろうこの右側の画像は・・・。 この選択中のフィードに行ってもそれらしき画像は無いし・・・。

ということで、ちょっと調べたらこの画像はVirtualBoxの仮想ハードディスク追加ウィザードの画像っぽい。

手元のVirtualBoxで確認してみる。 なるほど、これか。

f:id:tohokuaiki:20160614093701p:plain

といっても、このウィザードだとちょっと違うなー。他のPCで使ったChromeのサムネイル共有されたのかな?