サイト内の広告が異常

全てのサイトを見ているわけではないがIT関に従事して仕事関連のサイトや、個人の趣味のゲームなどのサイトを中心に見ているとだんだん広告の枠が増えてきてよもやスマートデバイスではどこが広告で何を見て良いのかわからないサイトも増えてきています。

iPhoneで以下のサイトなどのように上にも下にも場合によってはフローティングで広告が出てきて何を読んでいるのかわからなくなるようなサイトが増えてきている気がします。広告収入が必要なのはわかりますがこの記事でもとりあげているように広告ブロックの機能などと相まってそろそろ新しいスタイルの形式が出てくる必要がありそうです(これまで見た中で、本来の記事が三行くらいしか読めないサイトにも出会ったことがある)

また子供達などが見るには有害であろうサイトも表示されており(正直、そういったサイトが見えること自体は良いと思うのだが家族で見ているサイトがそういう広告でうまるという、昭和の時代にふと回したチャンネルでその手の下ネタが披露されていて気まずくなるのと同じ現象が産まれている)単に広告ブロックだけではなく合わせて有害サイト防止も含めて対策が必要になってきている状況かと思います(また子供達の端末だけに限って言えば、学校の支給の端末は千差万別で色々完全に防ぐのは難しいですね)

広告関連のブロックとして、家には、DNSサーバとして pi-hole を導入しておりDHCPで取得した場合には強制的にDNSサーバに向くように設定しています。ただこれらもモバイル通信で家のネットワークを迂回した場合には利用ができなくなるので、TailSacle経由でモバイル通信の際にも家のDNSを参照できるように設定をしています。

まぁ大体は私が使っているのだが家族が利用しているトラフィックも含まれているのだが世の広告がいかに多いかが窺い知れる。

WordPressの特定のURLがIPアドレスでのアクセスになっている場合

症状
テーマファイルの幾つかで https://IPアドレス/xxx とアクセスを行ってしまい、結果的にブラウザ側でセキュリティに問題があるサイトと認識されてNot foundになってしまいテーマが崩れる事象が発生していました。(ブラウザの、開発ツールなどでアクセスすると確認できます)

原因
get_template_directory_uri ()関数を利用して、テーマファイルがCSSを読み込んでいる場所があったのですがこの場合に、IPアドレスを含むURIが返却されてしまっていました。

対処
Mysqlのデータベースを確認すると 以下のようになっていたのでこちらの値をUpdateコマンドで更新します。(IPはダミーです)

mysql> SELECT option_name, option_value FROM tblog_wp_options WHERE option_name = 'siteurl' OR option_name = 'home';
+-------------+------------------------+
| option_name | option_value |
+-------------+------------------------+
| home | https://roguer.info |
| siteurl | https://111.111.111.111 |
+-------------+------------------------+
mysql> UPDATE tblog_wp_options SET option_value = 'https://roguer.info' WHERE option_name = 'siteurl';

これで無事にNot foundにならずに正しくスタイルが表示されるようになりました。何度も引っ越しをしているとだんだんゴミが溜まってしまってこのような状態になったもよう。ちなみに wp-config.php 側では正しく指定している状態でした(DBが優先されるのですね)

nginx のアップロードサイズ制限の変更(client intended to send too large body)

画像をアップロードしようとしたら「返答が正しいJSONレスポンスではありません」というエラーが表示されました。ログを見てみると client intended to send too large body: というエラーが nginxで表示されてました。

server {
    listen 80;
    listen [::]:80 default_server ipv6only=on;
    server_name localhost;
    root /usr/share/nginx/html;
    index index.php index.html;
    client_max_body_size 10M;
(略)

nginxの設定で初期は1Mになっているのでこの部分を変更しておきます。(PHP側でもサイズのUpload制限があるので変更をしておきますがNginx側でも必要なことをすぐに忘れてしまいます)