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

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

Apache公開ディレクトリのphp.iniが読み込まれた

はまったのでメモ

既存案件のカスタマイズで、Apache+phpで動作しているソースコードをもらったので開発環境を構築したら
mysqliが動かないとかエラー

普段使っていたDockerイメージを使ってたので、使えるはず
単独で起動してphpinfoをみるとちゃんとmysqliがある..もらったソースコードで起動するとない..

犯人はここでした

/var/www/html/php.ini とか読み込んでる!

注意:
Apache web サーバーは、スタート時にディレクトリをルート に変更するので、ファイルシステムのルートに php.ini が存在する場合、PHP はそれを読もうとします。

引用) PHP: 設定ファイル – Manual

知らなかった..時間を取りました
phpバージョンが違ったからか、うまく動作してないようでした

SiteGuard WP PluginがNginxに対応していないのでWP Cerberを使ってみた

kusanagiで運用しているWordpressにSiteGuard WP Plugin | 国産WAFのJP-Secureを入れたかったのですが、
Nginxに対応してないということで別の手を考えてみました

実現したかったのは

  • 管理者ログイン画面のURLを変える
  • reCAPTCHA的ななにかを入れる

です

SiteGuard WP PluginをNginxで動くようにする

mod_rewriteの動作をNginxでかけばできるかと思ったのですが、そうでもなさそうなので断念
(動きを把握しきれていません)

別のプラグインを使う

こちらの案を採用しました

WordPress Cerber Security and limit login attempts plugin
が良さそうだったので、こちらをインストール、プラグインを有効化します

MainSettingで

Limit login attempts > Site connection にチェック

Proactive security rules > Redirect dashboard requests にチェック
Proactive security rules > Request wp-login.php にチェック

Custom login page > Custom login URL を入力
Custom login page > Disble wp-login.php にチェック

で、保存
これで、wp-adminやwp-login.phpにアクセスできなくなり、入力したCustom login URLでしかログイン画面が表示されなくなりました

次にログイン画面に reCAPTCHA を加えてみます

GoogleにreCAPTCHA用のkeyを発行してもらわないといけないので、Googleアカウントで
https://www.google.com/recaptcha/admin
にアクセスしてkeyを発行します

必要な情報を入力

キーが発行されます

キーを控えて、Wp Cerber > Antispam のメニューを開きます
控えたキーを入力、
Login form > Enable reCAPTCHA for WordPress login form にチェック
設定を保存します
これで、reCAPTCHA が表示されるようになりました

便利なプラグインです

reCAPTCHA のキーのとり方はこちらを参考
How to set up reCAPTCHA – WordPress Cerber Security and limit login attempts plugin