UbuntuにGoogle Chromeをインストール

headless chromeをさくっと試すかと思って、Docker上のUbuntuにGoogle Chromeをインストールしてみました
Dockerコンテナは ubuntu:xenial を使いました

パソコン版 Chrome
からダウンロード..とすると依存するものが全然足りませんでした

Ubuntu なので apt におまかせで

$ wget -q -O – https://dl.google.com/linux/linux_signing_key.pub | sudo apt-key add –
$ echo “deb http://dl.google.com/linux/chrome/deb/ stable main” | sudo tee /etc/apt/sources.list.d/google-chrome.list
$ sudo apt-get update
$ apt-get -y install google-chrome-stable

でうまくいきました

$ google-chrome –version
Google Chrome 63.0.3239.108

go-wkhtmltoxでウェブサイトのキャプチャを取ってみた

ウェブサイトのスクリーンショットを取りたかったので、headless chromeかな..と調べていたら

gogap/go-wkhtmltox: A web service for wkhtmltopdf and wkhtmltoimage

を見つけたので試してみました。

git clone すると docker-compose.yml が用意されているので docker-compose up -d するだけで
試せました。

curl -X POST \
  http://localhost:8080/v1/convert \
  -H 'accept-encoding: gzip' \
  -H 'cache-control: no-cache' \
  -H 'content-type: application/json' \
  -d '{
    "to" : "image",
    "converter":{
        "uri": "https://jitan-3.com",
        "crop":{
            "h": 1024,
            "w": 667
        },
        "width": 375,
        "height": 667
    },
    "template": "binary"
  }' --compressed -o test.png

な感じでtest.pngにPNGで保存できました

ただ取りたかったのはスマホで見たときのキャプチャだったのですが、それは取れない様子..
widthを小さくしても効きませんでした

ネットワーク設定ではまった話(MTU)

フレッツ光マンションタイプに入ってて、ルーターを変えた時にはまったのでメモ

古いルーター使っていて5GHz帯に対応していなかったので、買い替えました
PPoE設定しても確認..と思ったら全然つながらない..いろいろ確認して
MTUを適当に小さくしたらつながりました

フレッツ光公式|NTT西日本|フレッツ・光プレミアム(FTTHアクセスサービス)のPPPoE機能について

ここをみると、MTU 1438Bytes以下にする必要がありそうです。
知識ないと厳しいですね

phpのfile_get_contentsのタイムアウト時間を設定する

phpでfile_get_contentsを使って、WebサイトのHTMLを取得していたのですが、
URLの指定を間違えたときに、かなり待ってタイムアウトしてたので短くしてみました

$url = 'http://sample.com';
$context = stream_context_create([
    'http' => [
        'timeout' => 2
    ]
]);
$html = file_get_contents($url, false, $context);

contextを渡してあげればいいようで、試したところ指定したtimeoutは秒数っぽいです

PHP: file_get_contents - Manual