作成者別アーカイブ: ジジイ

Search Everything WordPressの検索機能をカスタムフィールドなども含めて強化できる。

WordPressの検索機能をカスタムフィールドなども含めて強化するためのプラグインがあります。

Search Everything
配布先:http://wppluginsj.sourceforge.jp/i18n-ja_jp/search-everything/

・タグ名を検索
・カテゴリー名と説明を検索 ←これ結構やりたいのではないでしょうか。
・コメントを検索
・コメント投稿者を検索
・承認済みコメントのみを検索
・抜粋を検索
・下書きを検索 ←これ実用的じゃないけど、どんな使い方できるんでしょ。
・メディア (アップロードファイル) を検索
・カスタムフィールドを検索 ←これ結構やりたいのではないでしょうか。
・投稿者を検索
・検索キーワードをハイライト ←これ結構やりたいのではないでしょうか。
・指定した ID の投稿・固定ページ・カテゴリーを検索しない

すごい使えるので、一応メモ。

BEDROCK SERVER にiPadのワールドをコピー、移行できないときの設定。MINE CRAFT

MINECRAFTのBEDROCK SERVERを立てて、楽しんでおられる方も多いはず。
さらに慣れ親しんだワールドをサーバーに移行してみんなと楽しみたい!などなど思う人もいると思います。
あたしの場合、iPadにMINECRAFTをインストールして遊んでいたので、ワールドはiPadの中。
「ファイル」アプリでWorldをフォルダごと取り出すところまではできたのだけれど、それをBEDROCK SERVERに移して、フォルダ名とワールド名を編集して、さあ接続しようとしても、つながらない。
「サーバーに接続できませんでした」
となってしまうのだ。
悪戦苦闘した結果を以下にiPadのワールドをコピー、移行できたときの設定をメモしておきます。

【ワールドを移すところからのプロセス】
1.iPadからワールドを取り出す。圧縮してどっかに送ったり、、工夫して取り出してね。
2.解凍してサーバーの「worlds」フォルダに移す。
3.「worlds」内のワールドのフォルダ名(hogeとします)と
server.propertiesファイルのlevel-nameを

level-name=hoge

というように同じくする。
4.levelname.txtも

hoge

にする。
これで出来上がりのはずなんだけれど、これだけではどうしても接続できないので、今度はlevel.datを編集する。
ただ、ダイレクトに編集してしまうと壊れてしまうので、MCC TOOL CHEST PEを使用すると便利。
level.datの項目を以下の数値にする。

baseGameVersions:*
LANBroadcast:1←これだけでもOKかも。
MultiplayerGame:1
XBLBroadcastIntent:0
showcoordinates:1

実はLANBroadcastを1とするだけでもいいのかもしれない?完全には確かめてないので一応のメモです。
それでもできないときは5項目全部合わせてみてくれ。
これで接続できるはず。できなかったり、別の方法でクリアした場合はコメントにでもあげてくれるとみんな助かります。

sassとcompassをさくらのレンタルサーバーで使いたい。しかしRuby1.8。アップグレードはrbenvがカギ。

sass(scssで書いたものをコンパイルしてくれるアプリって言えばいいかな)を前々から使いたかったのだが、なかなか導入できず。
しかし思い立って、そのおざなりにしていたSassにやっと手を出したのだ。だが簡単な道のりではなかったので、ここにその解消した方法を記しておきたい。

基本参考にしたページ
「さくらのレンタルサーバー上でsass&compassをインストールして使う」

さくらのレンタルサーバー上でsass&compassをインストールして使う

だが、このページの例と違って、私がさくらサーバーを契約したのがだいぶ前なので、Rubyが古い。
1.8系がインストールされているのだ。これが大問題。

【さくらのレンタルサーバ】基本仕様
https://help.sakura.ad.jp/206053142/
「※2018年12月5日以降に新規で提供しているスタンダードプランは、2.5.xです。」

Rubyのバージョンが1.8だとSassだのCompassだのがインストールできないのだ。
2018年12月5日以降に借りた人にとってはすごい簡単、すんなり行けるはず。新しい契約で借りた別のサーバーで試したら即できてしまった。めんどくさけりゃ借り換えてしまうというのも一つの手だ。
後から考えりゃそうも思いつくのだけれど、古いサーバーでなんとかしようとしてしまうのが人間の業というもの。なので「Rubyのバージョンをあげて」から、「SassとCompassのインストール」をする、ということになり、これがまた長い長い旅になるのだ…。

準備の準備
・まずはさくらサーバーの「スタンダードプラン」以上であることを確認。「スタンダードプラン」以上でない場合は断念かな。いや、それでもやっている人はいた。
http://hanikami.sblo.jp/article/103892887.html
あきらめずやってみよう。私にはその気力はない…。
・SSHでサーバーに接続。そしてvimの使い方をちょっと覚える。
接続とvimの使い方は、上に挙げたページを参照してほしい。

SSHでサーバーに接続できたら、さて、ここからが大変なところなのだ。とにかく進めてみよう。

コマンドアレルギーの治療のためと思って…
サーバーに接続できると

%

というだけのまっくら画面になってると思う。
もし

[xxxxx@xxxxxx]$

みたいな場合はシェル(操作方法)がbashになっているということだ。なにかの過程でログインシェルをbashに変更したのでしょうけど、記憶にない場合は、cshに変えたほうがいいかもしれない。どちらでもいいのだけれど、さくらサーバーのデフォルトシェルはcshで、bashに切り替える手間が一つ減るので。よくわかっている人はbashで出来るだろうし、そこそこの経験者だろうから迷いもないはず。
「bash csh 変更」みたいなキーワードで調べてみてくれ。

しかしこのコマンドまっくら画面が嫌いな人も多いだろう。たしかに普段サーバーを触っていない人にはわけがわからないはず。サーバーを触っている私でさえも、別のサーバーとなるとわからないことが多い。だが、アレルギーと思い込んでいるだけかもしれない。コマンドを何回も打っているうちに気にしなくなる時がくる。それまでの辛抱だから、ちょっと頑張ってみようぜ。

rubyのバージョン確認
えーっと、まずはrubyのバージョン確認をしよう。

ruby -v

と打って、ENTER。

ruby 1.8.7 (2012-10-12 patchlevel 371) [amd64-freebsd9]

やっぱりruby 1.8.xと出てきてしまったら長旅を覚悟。
ruby 2.x.xと出てきたら新しい契約のサーバーなので、SassとCompassのインストールをそのまま進めてもらってOK。

ここからは長旅覚悟になってしまった方へ。
ではサーバーの設定ファイルとでも言える「.cshrc」ファイルをvimで開いてみよう。
「.cshrc」はログインしたときにcshシェルが走るイニシャルコマンドファイルってとこかな。
開くために次のコマンドを入れる。

vi ~/.cshrc
もしくはログインしたまんまだと$HOMEディレクトリから始まるので、
vi .cshrc
と打ってもOK。とにかく、ユーザールートのディレクトリにある.cshrcを開ければOKってこと。

viって先頭につけると、vimっていうエディタでファイルを開く、ってことなわけだね。vimはLinuxで使いなれているから抵抗はなかったけど、さくらサーバーのvimは使い勝手がちょっと違って困った。なんかvimにもいくつか種類があるんだよね。ま、いいや。使えない人は調べてみてくれ。慣れるまで大変だけれどさ。

で、「.cshrc」を開くとこんなふうになっていると思う。

alias h history 25
alias j jobs -l
alias la ls -a
alias lf ls -FA
alias ll ls -lA

# A righteous umask
umask 22

set path = (/sbin /bin /usr/sbin /usr/bin /usr/local/sbin /usr/local/bin $HOME/bin)

setenv EDITOR vi
setenv PAGER more
setenv BLOCKSIZE K
setenv PKG_DBDIR ~/db/pkg

if ($?prompt) then
# An interactive shell -- set some stuff up
set filec
set history = 100
set savehist = 100
set mail = (/var/mail/$USER)
if ( $?tcsh ) then
bindkey "^W" backward-delete-word
bindkey -k up history-search-backward
bindkey -k down history-search-forward
endif
endif

これに書き足しながら、Rubyバージョンアップを行っていくわけだ。
Rubyはデフォルトでサーバーに準備されているが、共用サーバーなので、みんなでつかうRubyはバージョンアップはできない。やっちゃったら困る人も出てきちゃうだろうね。マンションの共用部分みたいなもんだ。
なのでカスタマイズできるのは自分ちだけってことで、己のディレクトリにRubyをインストールしていく。

ちょっと雑だが、~/ディレクトリにダイレクトにrbenvを置く方法で行ってみる。もちろん/local/フォルダなんかにインストールしてもOK。

cd ~/

念のため、カレントディレクトリをホームディレクトリに移す。
そんで、/tmpフォルダを作る。これはダウンロードするときに必要になるのだ。

mkdir ~/tmp

そんでrbenvっていうのをダウンロードしてインストールする。
rbenvはRubyを管理できるアプリと思っていいかな。
まずはダウンロード。

% git clone https://github.com/rbenv/rbenv.git ~/.rbenv

そしたら

% vi ~/.cshrc

で.cshrcを編集。追記したところは太字の部分。

alias h history 25
alias j jobs -l
alias la ls -a
alias lf ls -FA
alias ll ls -lA

# A righteous umask
umask 22

set path = (/sbin /bin /usr/sbin /usr/bin /usr/local/sbin /usr/local/bin $HOME/bin $HOME/local/bin $HOME/local/rubygems/bin)

setenv EDITOR vi
setenv PAGER more
setenv BLOCKSIZE K
setenv PKG_DBDIR ~/db/pkg
setenv GEM_HOME $HOME/local/rubygems
setenv RB_USER_INSTALL true
setenv TMPDIR ~/tmp
setenv RUBY_CONFIGURE_OPTS --with-openssl-dir=/usr/local/ssl

setenv RBENV_ROOT $HOME/.rbenv
setenv PATH $RBENV_ROOT/shims:$RBENV_ROOT/bin:${PATH}

rbenv init -

if ($?prompt) then
# An interactive shell -- set some stuff up
set filec
set history = 100
set savehist = 100
set mail = (/var/mail/$USER)
if ( $?tcsh ) then
bindkey "^W" backward-delete-word
bindkey -k up history-search-backward
bindkey -k down history-search-forward
endif
endif

と記入。viを使いなれていないと大変かもしれないが頑張ろう。右クリックでペーストできるはず。
保存してviから出たら以下を続ける。(viの使い方は調べてね。)

% source ~/.cshrc
% mkdir -p ~/.rbenv/plugins
% git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build

このページを参照した。ありがとうございます。
https://qiita.com/takemaro/items/7e2b4b7770aff4e0aa93

記述の解説
以下、めんどくせえ時は読み飛ばしてもらってもOK。
この2行は先に紹介したページにある通り。
setenv GEM_HOME $HOME/local/rubygems
setenv RB_USER_INSTALL true

これは
setenv TMPDIR ~/tmp
インストールのテンポラリフォルダを指定する。インストールするときに作業用のフォルダが必要になるのだが、共用サーバーなのでルートのものは使えず、しかたなく自前で作った~/tmpでインストール作業はしていいよ、という意味になる。さっき作ったよね。

長ったらしいこいつは、
setenv RUBY_CONFIGURE_OPTS --with-openssl-dir=/usr/local/ssl
opensslのバージョンが1.0を使われているために、インストールでエラーになったのでRubyの設定を書き換えるために書き足したもの。インストールが終わってしまえばいらない1行か。
このページを参照。

さくらサーバーにはopensslの1.0.2がインストールされているそうなので、そっちを使いますよ、という記述だ。
参考ページのように
RUBY_CONFIGURE_OPTS="--with-openssl-dir=/usr/local/ssl" rbenv install 2.6.1
とコマンドを1行で済ませられればよかったのだが、そうはいかなかったのでこれを書く羽目に。うまくいくならなくていい1行だ。
というように、困ったときにはsetenvでパスを設定しちゃえる、ってことがわかったのは怪我の功名ってやつだよね。

そう、話の途中だが、ときどきこんな感じで

export RBENV_ROOT=$HOME/local/rbenv
export PATH=$RBENV_ROOT/bin:$HOME/local/bin:$PATH

exportから始まる記述を見かけるが、これはbashのやり方で、cshとは違うので注意。
調べていると.bash_profileとか.bashrcみたいなファイルを作ってやる方法があるでしょ。それは別の方法で悪いわけじゃないからわかっていればいいんだけれど。でもまったく参考にならないかというとそうでもなくて、
export RBENV_ROOT=$HOME/local/rbenv
がbashだとしたら、cshでは
setenv RBENV_ROOT $HOME/local/rbenv
などと書き表せる。どちらを使ってもいいけど、さくらサーバーはcshでやった方が手数が少なくて済みそうだ。
混同しやすいのでメモ。

これはこれからインストールするrbenvのパス。
setenv RBENV_ROOT $HOME/.rbenv
setenv PATH $RBENV_ROOT/shims:$RBENV_ROOT/bin:${PATH}

これを記述することで、自前でインストールしたrbenvが働くようになってくれる。
これがない、あるいはうまくいってないと、ルートの/usr/にあるRubyを使用することになってしまうので、自前でインストールするには必要になるわけだ。
そして最後の
rbenv init -
これは、rbenvの再起動だね。bashでやる例にはよく
eval "$(rbenv init -)"
と書かれているやつだね。いろいろありすぎでわからねえや笑

rbenvを使う。
とにかくrbenvが使えるようになっているはず。ならば

rbenv -v

でバージョンを確認してみよう。rbenv 1.1.2-61-g585ed84みたいなのが出ればOK。
rbenv: Command not found.
と出てしまったらパスが通っていないかなにかでrbenvが使えない状態。見直してみよう。
確認するだけなら、rbenvをインストールしてあるところまでのパスを直接書いてコマンドにしてもOKだよ。例えば

~/.rbenv/bin/rbenv -v

でもとりあえずのコマンドは使えてしまうのだ。ただ毎回「~/.rbenv/bin/rbenv」と打つのは大変なので、パスを通してあげて「~/.rbenv/bin/」にあるアプリは「rbenv」みたいな省略形で叩けるようにしてあげるってわけだね。

rbemvのコマンドが使えるようになったら、では1.8系のrubyとおさらばするために、2系のバージョンをインストールする。
その準備体操として、以下を行っておいてくれ。アップデートだ。

cd ~/.rbenv
とディレクトリを移動して、
git pull
と打つ。アップデートが始まるはず。
あともう一個も。
cd ~/.rbenv/plugins/ruby-build
git pull

よし。ではインストールできるrubyのバージョンを探してみる。そういうコマンドがあるのは便利だね。

rbenv install --list

ずらずらっと出てくるが、2.7.0が最新のようなので

rbenv install 2.7.0

とインストールを試したが…だがしかし

BUILD FAILED (FreeBSD 9.1-RELEASE-p24 using ruby-build...

と出てしまいダメ。なんか2.7だとなんかがダメみたいなので欲張らず2.6.1でいってみます。

rbenv install 2.6.1
Downloading ruby-2.6.1.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.6.1.tar.bz2
Installing ruby-2.6.1...
Installed ruby-2.6.1 to /home/hogehoge/.rbenv/versions/2.6.1

おお、できた!では使えるように反映しよう。しかし…

rbenv global 2.6.1

と打つと反映される、的なことがよく書いてあるのだけれど、反映されない。

ruby -v

と確認するも、ruby 1.8.7 (2012-10-12 patchlevel 371) [amd64-freebsd9]のまま。

rbenv rehash

もよく書かれているので試すも同じ。
そう、それもそのはず。まだ新しいバージョンがインストールされたこと自体がサーバーには認識されていないのだ。

source ~/.cshrc

こいつでシェルを再読み込みしてあげる。中に書かれているrbenv init -がrbenvを再起動するのだ。

ruby -v
と打つと…
ruby 2.6.1p33 (2019-01-30 revision 66950) [x86_64-freebsd9.1]

みごとバージョンがあがった。
これでやっと、SassとCompassのインストール準備が整ったというわけ。準備だけでもくたくただぜ。

エラー
途中にこういうエラーもでた。

BUILD FAILED (FreeBSD 9.1-RELEASE-p24 using ruby-build 20200115-8-g73b926b)

ruby-build: TMPDIR=/tmp cannot hold executables (partition possibly mounted with `noexec`)

なので「.cshrc」に
setenv TMPDIR ~/tmp
setenv RUBY_CONFIGURE_OPTS --with-openssl-dir=/usr/local/ssl

を記述したんですね。/tmpフォルダが使えないのと、OPENSSLのバージョンが低いのが原因なので。
もしエラーが出たら、この2行を見直してみてくれ。あるいはこれをカギに調べてみるといいかもね。とにかくエラー文をコピーしてGoogleにぶっこむ。これが基本だ。

SassとCompassをインストール
そんでは行ってみようか。Sassからインストールだ。

gem install sass

ここでERRORが出たらRubyが古いとか問題がある。

ERROR:While executing gem .....
You don't have write permissions for the /usr/bin directory.
とか
ERROR: Could not find a valid gem 'sass' (>= 0), here is why:
Unable to download data from https://rubygems.org/ - SSL_connect returned=1 errno=0 state=SSLv2/v3 read server hello A: tlsv1 alert protocol version (https://rubygems.org/latest_specs.4.8.gz)とかが出るみたい

エラーはそのままエラー文をGoogleにぶちこんでもらうと解決の早道。それでもなかなかうまくいかないんだけれどね。
SSLを使わないでインストールすると成功する、なんていうのも見かけた。どうやるんだろか。わからないけどなんか方法はあるかもね。
成功しているときはこんなのが出てくるけど、このなかにERRORがあると完了できていないことがあるので注意深くチェックだ。

Successfully installed ffi-1.15.1
Successfully installed rb-inotify-0.10.1
Successfully installed sass-listen-4.0.0
...
4 gems installed

お次はCompassをインストール。Compassっていうのはscssを保存するたんびに、cssに書き出してくれる装置と思えばいいね。マイクラだったらオブザーバーブロックだね。

gem install compass

これもエラーが出まくる。.cshrcの設定をしてあればたぶん大丈夫。みなおしてみてくれ。
成功っぽかったら、.cshrcを読み込みなおしだ。

source ~/.cshrc

確認のため、ヴァージョンを確認する。

sass -v

Ruby Sass 3.7.4とか出てきたらOK。
もしsass: Command not found.が出てしまったら、こいつを確認。
Sassの入っている場所が読み込まれていないので、それを探す。

find ~/ -name sass

これでファイル検索を行う。/www/内も探し始めるのでちょっと時間かかるかも。気長にまとう。
検索結果の中に、この一例のような

/home/hogehoge/local/rubygems/bin/sass

ものが出てきたら、これがアプリの実行ファイルがあるところだ。そこにパスを通してあげよう。この例の場合は、
「.cshrc」のこの部分に

set path = (/sbin /bin /usr/sbin /usr/bin /usr/local/sbin /usr/local/bin $HOME/bin $HOME/local/bin $HOME/local/rubygems/bin)

$HOME/local/rubygems/binというパスの記載があるからsassのコマンドが使える。もし別の場所だったら、その場所にパスを通すためにパス記述してあげてくれ。
ふいー、ではCompassも確認だ。

compass -v
Compass 1.0.3 (Polaris)
Copyright (c) 2008-2021 Chris Eppstein
Released under the MIT License.
Compass is charityware.
Please make a tax deductable donation for a worthy cause: http://umdf.org/compass

こんな感じでバージョン情報が出てくればOK。
ここまで出来たら、やっとコーディングに移れるのだ。長いよ。さくらサーバーがこれをサポートしてくれたら最高なんだけれどな。管理画面からボタン一個でインストールとかバージョン変更とかさ。

SassとCompassを使ってみる。
SassとCompassの使いかたは調べてみてくれ。先に出しているこのページでも十分だ。

さくらのレンタルサーバー上でsass&compassをインストールして使う

Compassの「watch」コマンドは便利だなあ。ただ、毎度シェルログインしないといけないのはめんどくせえ。なんか方法ないのかな。たとえばCGIとかでスイッチつくるとかか。。考えてみよ。

使ってみたらエラーが出たので一応メモ。
「SCSSをコンパイルしようとしたらInvalid US-ASCII character って言われた – SCSS」

SCSSをコンパイルしようとしたらInvalid US-ASCII character って言われた – SCSS


このページにあるように、CSSを書き出してくれる時に、エンコード指定してない場合に出てしまう。CSSファイルの頭にはキャラセットをちゃんとしておこう。もうエラーは嫌だからね。

間違ってたらごめんクサい
作業を追いながら書いたので、追い切れているかわからないです。もしこの手順で出来なかったりしたらコメントください。修正しますー

パソコンのログから出勤時間、退勤時間を知る方法

パソコンのログから出勤時間、退勤時間を知る方法がある。前提は、
・出勤したらパソコンのスイッチを入れ、退勤時にはパソコンのスイッチをオフにしていること
・WINDOWSっていうこと
が条件だ。

1.マイコンピュータのアイコンの上で右クリック
2・管理→システムツール→イベントビューワ→アプリケーション→

「セキュリティーセンターの起ち上がる時間」が電源入れた時間。
「セキュリティーセンターのクローズする時間」が電源切った時間ということになるかな。

1年間程度をさかのぼれることもある。
あの日、電源を何時に切ったっけ?なんていうだけのヒントもゲットできるので、なにかの役には立つかもね。

the_post_navigationで「次へ」や「前へ」が表示されない、もしくは飛ぶ!

the_post_navigationで「次へ」や「前へ」が表示されず、もしくは何記事も飛ばしてページングする!ということがあったらこれが原因かも。

the_post_navigationは「投稿日の時間」で次の投稿を探します。同じ「時間」の記事は飛ばしてしまうという性質があるんです。…です…です…です…です…です…………………

つまり、プラグインなんかで記事を「複製」すると、投稿日の時間が同じ記事が出来上がってしまい、the_post_navigationでは飛ばされてしまうわけですな。
なので1分でもいいから、「投稿日」を変えてやるといいです。

the_posts_paginationで多くページを出力してしまう。WP_queryとか使っているときなんか特に。

the_posts_paginationで多くページを出力してしまう。WP_queryとか使っているときなんか特に起こりやすいね。
そんなときは、$GLOBALS['wp_query']で解決できるそうだ。下のコードを参考にして、$GLOBALS['wp_query']の行を追加してみるといい。$the_queryはおぬしの環境に合わせてね。どっかからコピペしてくると$queryとかになってるときもあるでしょ。なんでもOKなんだけれどさ。

$paged = get_query_var( 'paged' ) ? get_query_var( 'paged' ) : 1;
$args = array(
'post_type' => 'xxx',
'posts_per_page' => 10,
'tax_query' => array(
array(
'taxonomy' => 'xxx_cat',
'field' => 'slug',
'terms' => 'common',
),
),
'paged' => $paged
);
$the_query = new WP_Query( $args );
while ( $the_query->have_posts() ):
$the_query->the_post();
get_template_part( 'template-parts/post/content', "xxx" );
endwhile;
$GLOBALS['wp_query']->max_num_pages = $the_query->max_num_pages;
the_posts_pagination();

Mac リカバリー再インストールで「サーバーが見つかりませんでした」になったので固定IPを設定した件

Mac リカバリー再インストールで「サーバーが見つかりませんでした」になった。
固定IPを設定したいと思ったのだが、躓きまくったのでメモ。

Macのインターネットを使ったリカバリ手順はおよそ以下のようになる。

1.再起動直後にOption + Command + R ボタンを同時に押す。

2.地球儀が出てくるので、Wifiを選ぶ。
ここで固定IPとかプロキシとかを設定している環境だと、Macのサーバーが見つからないのか、地球儀が回り続ける現象に笑
ルーターをDHCP接続できるように設定すると通じるらしい。でも固定IPとか設定してると、それはちょっと、、めんどくせえ、ってなるのよ。
しかたないので、iPhoneのテザリングで接続。500MBくらいの通信量が発生するので注意だそうだ。

3.20分くらいかな、それが終わると、ログインを促され、macOSユーティリティなるデスクトップが出てくる。簡素なもんだ。

4.さてここで「macOSを再インストール」を選んで先に進みたいところだが、iPhoneのテザリングだと通信量が半端なくなるので、Wi-fiに変えよう。
iPhoneのままでいい、って人はそのまま行っちゃってください。制限過ぎちゃって低速通信になっちゃってヤバい人は、以下に続け。

5.まずはWifiをつなげる。いつもと同じく、画面右上の扇型のWIFIアイコンをクリックして、SSIDとパスワードを入れてつなげる。
よし、つながった、ということで「macOSを再インストール」を進めてみると、どうだろう。進めばOK、そのままいってくれ。

「サーバーが見つかりませんでした」

となって進められない場合は、固定IPやプロキシを設定している環境下と思われる。こっからちょっとまた手間がかかるが、つながるかもしれないので希望を持っていこう。

6.まずは「ディスクユーティリティ」を選択して、「Macintosh HD」を選んでマウントする。マウントしておかないと、ターミナルでコマンドが使えないためだ。
「ディスクユーティリティ」は終了する。(左上のとこから終了するやつね)

7.上のバーにある「ユーティリティ」の中から「ターミナル」を選ぶ。
白いウィンドウが出てきて、

bash3.2#

みたいなことが表示されているかな?俺のときはそうだった。なんでもいい。
CUIを見慣れていない人には、げげ、なんじゃこりゃ、ってなるやつだからね、焦らなくてOKだよ。

8.ここでWifiの設定をしようってんだが、これもまたちょっとクセあり。
ネットで調べていくと「networksetup」っていうコマンド使えばいい、ってよく描いてあるんだけれども、

bash3.2# networksetup

って入力すると

Command not found

となってしまい、進めないのだ。そこで、さっきマウントしたHDの中にあるコマンドを使うわけだ。
この記事を参照した。助かるねえ。
https://kitani3.blogspot.com/2019/07/macos-usb-ethernet-lan.html

# /Volumes/Macintosh\ HD/usr/sbin/networksetup -listnetworkserviceorder

と入力してみ?おお、通じた!

# /Volumes/Macintosh\ HD/usr/sbin/networksetup -listnetworkserviceorder
(1) Wi-Fi
(Hardware Port: Ethernet, Device: en0)

みたいなのが出てきたと思う。
現状のネットワーク状況を出してくれるわけだが、俺が用があったのはWi-Fiだ。
そんだら、コマンドでネットワークの設定をしてみよう。ここのページを参照してもわかりやすいかも。
https://qiita.com/kitayamablue/items/a0a71a8455cfffe39021

固定IPの設定

# /Volumes/Macintosh\ HD/usr/sbin/networksetup -setmanual "Wi-Fi" xxx.xxx.xxx.xxx(固定IP) xxx.xxx.xxx.xxx(サブネットマスク) xxx.xxx.xxx.xxx(デフォルトゲートウェイ)
俺の場合は適当に
# /Volumes/Macintosh\ HD/usr/sbin/networksetup -setmanual "Wi-Fi" 192.168.1.20 255.255.255.0 192.168.1.1
とした。

DNSの設定

# /Volumes/Macintosh\ HD/usr/sbin/networksetup -setdnsservers "Wi-Fi" xxx.xxx.xxx.xxx(プライマリ) xxx.xxx.xxx.xxx(セカンダリ)
俺の場合は適当に
# /Volumes/Macintosh\ HD/usr/sbin/networksetup -setdnsservers "Wi-Fi" 192.168.1.1 8.8.8.8
とした。

networksetup を使えばいいという記事は多いのだけれど、
ディスクをマウントして、「/Volumes/Macintosh\ HD/usr/sbin/」というパスをつけてコマンドするっていう記事はなかったので、メモしましたよっと。

フォートナイトでボイスチャットするのにヘッドセットはいらない。スマフォかタブレットでOK!

子供がフォートナイトボイスチャットしたいってことになって、買ってほしいとせがまれた。
ヘッドセットとかマイク付きのイヤフォンだのは手元にはなかった。
ゲーミング用ヘッドセットとかのジャンルになるんだろうけど、どれを買おうか、とか、なるべくワイヤレスにしたいからBluetoothのものを探していたんだけれども、Switchが音声Bluetoothに対応していないので別途ドングルを買ったりしないといけないようだ。
そもそもBluetoothは電子レンジで干渉するし、ここはひとつ子供が使うし、利便性も考えてやって別途スピーカーとマイクを自作するかなあ、なんてことまで考えていたわけだ。
(ヘッドセットだと会話がわからないので、変なやつが乱入してきてエログロなこと言ってきたらまずいしな、と思ったりもしてたので。エコーしちゃうけどまあいいか。)

でも実はヘッドセットはいらない(笑)
スマフォタブレットで代用OK!

やり方は簡単。

1.フォートナイトのアプリを入れる。4GBくらい使うので空けといて。

2.IDでログインする。何回か失敗した…なんでいつもログインで間違うんだろうなあ、合っているはずなのに(笑)

3.アプリにパーティハブという機能がついてくる。そいつを使えばOK。
アプリ上では「フレンドリスト」というアイコンボタンで表示されている

4.フレンドリストに行くと、パーティハブの表示が出てくる。マイクを使用していいかを聞いてくると思うので、もし来たら「許可」。

5.設定のところに「ボイスチャットのデバイスを切り替える」とか小さく書いてあるので、それをタップして完了。

これでヘッドセット買わずに済んでよかった!

そもそもアプリを入れたのは別の理由で、招待されたパーティーを見失ってしまったので、なんとか辿れないかと思っていたら”アプリ入れればできるよ”みたいなQRコードが出てきたので、誘われるがままにアプリを入れてみたってわけ。
ただアプリが4GB以上と、デカい(笑) 容量喰うので、他のアプリ削除しまくったわ。
やれやれ。

さくらのウェブアクセラレータ設定 やり方や注意点、エラーなど。

さくらのウェブアクセラレータ設定はすごい知識が必要、とかではないのだけれど、初心者がやるにはけっこう難しい。
マニュアルはあるのだけれど、すんなり出来る人が書いた感じた。ちゃんとは書いてくれているんだけれど、ちょーっと初心者にはわからない感じかな。
https://manual.sakura.ad.jp/cloud/webaccel/manual/usage-guidance.html

今回の例は、独自ドメインでSSLを使って行うものだ。
SSLがなければかなり簡単。ウェブアクセラレータのアカウント作って、DNSをいじって、サーバーに.htaccessを置くってだけ。
SSLがあるとハードルが上がる。順番とか間違えるとウェブアクセラレータの設定が有効にできない。
サブドメインにするならもっともっと簡単だ。画像とかJSファイルだけをサブドメインに置いて、そこにキャッシュさせるわけだ。それなら本ドメインではHTMLの画像リンクなどをサブドメインのものへ書き換えればいいので、ダウンタイムなしでもいける。むずかしい条件のときはサブドメインで考えるといいだろう。

※以下の説明で、「xxxx」とあらわされている部分は、自分の環境に合ったものが入るという前提です。

おし、んでは、しまっていこう。

●まずはドメインとサーバーを用意する(初心者はそんなことすらもわからないのである。)
サーバーはなんでもいい。さくらサーバーのスタンダードでもいいし、マネージドみたいな高級なやるでもいい。あるいはさくらサーバーじゃなくてもいい。自宅サーバーでもいいって感じだね。
もしくは、持っているのであれば、ドメインが、wwwなどがついているサブドメインになっているかどうかを確認してくれ。
どうやらwwwなどがついていないとCNAME設定ができないので、独自ドメインのままの利用はできないようだ。その場合は独自ドメインのままでない、他の方法でやろう。(画像とかのリソースファイルだけを、サブドメインを作ってそこに置く、とか。ぜんぜんやりようはある)wwwをつけとくとDBの書き換えなんかのときもけっこう役立つので、できるだけつけるようにした方がいいね。昔はつけない方がカッコイイとか思っちゃってたけど。

ゾーンアペックス(example.jpのようなサブドメインがない状態のURL)で運用中の場合CNAME設定ができないのでこの方式は利用できません。
https://manual.sakura.ad.jp/cloud/webaccel/manual/usage-guidance.html

もう一つ、サーバーの、ドキュメントルートに.htaccessを置けるか確認。ファイル内の記載はこんな感じ。

<Files ~ "\.(gif|jpe?g|png|ico|svg|css|js)$">
Header set Cache-Control "s-maxage=86400, public"
</Files>

この記述で、画像とスタイルシートとJavascriptなんかのリソースファイルをキャッシュさせます。もちろんhtmlもキャッシュさせてもいい。ただ、動的なものがあるときはやめた方がいい。フォームとかは記述したものがキャッシュされてしまうので大変だ。
86400というのは24時間の秒数です。1日の期限でキャッシュさせますってことですね。1日過ぎてアクセスがまたあったらキャッシュしなおします、ってことね。
もしhtaccessが使えなかったら使用は厳しい。他に方法があればいいのだけれど。

●とにかくドメインをサーバーに当てる。
さくらを例にするが、サーバーのコンパネでサーバーにドメイン設定をするとき、wwwありなしとか複雑なことはしないで、プレーンにドメインを素直に充てておこう。普通に設定すると、wwwがあってもなくてもアクセスできるよ、っていう設定になるはずだ。もう出来ている人は飛ばしてOK。
へんなことやるとウェブアクセラレータとつながらない。httpsへリダイレクトしたいなら、ウェブアクセラレータの設定にある「httpsリダイレクト」に任せればいいよ。
特にさくらサーバーでwwwありsslありでリダイレクトするとき、ドメインを2個設定するとかやるじゃん?あれがよくないみたいなのよ。
そしてドメインが染みるまでしばらく待つ。(20分くらいでいいかな)

●SSLを使うなら、設定する。無料のでもOK。
SSLを使うなら、ドメインが”染みた”ことを確認できたら設定しておこう。さくらの無料のSSLでもぜんぜんOK。証明書をゲットするのがちょーーっと面倒だけれど。もう出来ている人は飛ばしてOK。

●アクセラレータのアカウントを準備
しばらく待っているあいだに、アクセラレータのアカウントを準備する。
ウェブアクセラレータのサイトに行き、コンパネに入る。さくらの「会員情報」が必要になるね。サーバーのログイン情報じゃないやつ。けっこう間違えるんだわ。

まずはサイトを追加する。アカウントと呼ばれてるね。サイトだとかアカウントだとかわけがわからなくなってくるよ。つまりはアカウントを作ったら、そのアカウントにサイトを複数登録できるわけだ。プロジェクトごとに複数のサイトがるときは、プロジェクト用にアカウントを作って、サイトどもを管理するということもできる。そんな予定がないなら、1アカウント作って、そのアカウントに1サイト設定する、と始めるのが初心者ってもんだ。

そうすると「さくらのクラウド」にアカウントが作られたと思う。
用があるのは「ウェブアクセラレータ」なので、クラウドのTOPへ行って、「ウェブアクセラレータ」のボタンをクリックする。

設定が促されるはず。どんどん進み、設定をするわけだが、わけがわからない(笑)

「公開ドメイン名」が大事。wwwつけるかつけないかも含めて正しいドメインを設定する。
「オリジンサーバ」はサーバーのコンパネの「サーバー情報」にあるIPアドレス(IPv4:000.000.000.000って感じの数だけのやつ。000.000.000.000の部分を使う)、またはホスト名(xxxx.sakura.ne.jpみたいなやつ)。IPの方が確実っぽい。ホスト名にIPが振られている場合もあるが、それは使えない。IPアドレスのIPv4を使用する。
「デフォルトのキャッシュ期間」は、特別な理由が無い限りは無効にしておくようだ。最後の確認のときにx-cache:がHITになってくれなくてMissになってしまったのはこれが理由のようだった。

SSLを設定するなら、少し時間が経ってからの方がいい。ドメインが設定されたばかりだと、ドメインとサーバーが結びついているか確認できないから?かは、よくわからないけど、とにかく落ち着いて進めるのが確実。

●SSLのサーバー証明書をゲットする。
SSLのサーバー証明書は、さくらの新しいデザインのコンパネの方がとりやすい。

●サーバー証明書(server.crt)
●中間証明書(chain.crt ※これはなくてもよい。中間証明書があるなら必要。さくらでSSL取ってたらあるよね)
●秘密鍵(server.key)

が必要になる。

ウェブアクセラレータの管理画面の、サイトを選んで、そのサイトの設定に入る。
「SSLを登録」みたいなボタンを押す。
証明書を貼り付けて登録する。エラーが出るときがある。
未知の機関で発行された証明書だとか、証明書の発行に失敗しました、とか。
こういうときは、

●設定した公開ドメインがまちがっている。wwwがついてない、とか。
●なんかしらの理由でサーバーに到達できない。wwwあるなしでリダイレクトしてしまっているとか、DNSの設定を先にやっちゃってるとか。
 作業の順番は、「サーバーでSSLの設定」、「ウェブアクセラレーターでSSLの設定」、「サーバーのDNSの変更」、「ウェブアクセラレーターを有効にする」というのが大まかな流れか。
●DNSをいじってて失敗してる。
●証明書と秘密鍵が間違ったもの使っている。さくらサーバーだったら管理画面から取得する。旧デザインだと証明書のダウンロードが表示されない。新デザインならあるんでそっちから取ろう。ブラウザから証明書をゲットする方法もある。そのときはBASE64で書き出す。
●SSLが実は設定した公開ドメインと違うものだったりする。SSLを一回サーバーから削除して、一から設定しなおしてみよう。

などなどを見直してみてくれ。

●サイトを設定すると、DNSは3ついじるように、赤字で表示される。
DNSっていうのは(今更だけれどさ)、アクセスするときに「このドメインはどのサーバーに行けばよいか」っていう住所録みたいなものを持ってくれているサーバーのことね。「変更しますよ」ってDNSサーバーにお知らせすると、世界中のDNSサーバーたちが順々に変更かけていくので、48時間とか72時間とかの時間がかかるってわけね。
ドメインの管理画面からDNSの設定ができるものもあれば、さくらは会員情報の管理画面から入るし、自宅サーバーなんかを使っていたらフリーDNSとかの管理画面から使うことになるでしょう。
とにかくDNS設定とか、そういう画面。設定する値はウェブアクセラレータの画面に表示されている3行。
DNSの設定は、さくらの場合だけれど、こんな感じ。

1.CNAME これは元からあるwwwを変更
エントリ名 www
タイプ CNAME
データ(値) xxxxxxxx.user.webaccel.jp. ←最後にドットがついてるから注意ね。
TTL 300

2.TXT これは新しく新規登録
エントリ名 @
タイプ TXT
データ(値) webaccel=xxxxxxxxx.webaccel.jp
TTL 300

とここまで。「エントリ名 @」なんてわかりづらいよね。これはさくらのゾーンっていう中での設定だから、他のサービスの場合はどうなるのかはアタシではわからない。。。
TTLはDNSの更新がされているかどうかをどんのくらいの感覚で確認するか、の秒数。ここでは5分ごとに更新するにしてある。1秒とかにしていると、セキュリティとしてよくないらしい。かと言って、3600とかになってて、1時間ごとになっちゃうと、変更するときに1時間後に確認、ってことになってしまうので遅すぎるのもよくない。すべての設定がうまくいって、めったに書き換えない、ってことになったら3600でも86400でもいいかもね。とりあえず何回もやることになるかもしれないので、300にしておくがよいね。

↓さくらの例なので参考までに。

エントリ名 タイプ データ(値)
 @  NS  ns1.dns.ne.jp.
 NS  ns2.dns.ne.jp.
 A  1xx.1xx.2xx.1xx
 MX  10 @
 TXT  "v=spf1 a:wwwXXXX.sakura.ne.jp mx ~all"
 TXT  "webaccel=XXXX.user.webaccel.jp" (TTL:300)
 www  CNAME  XXXX.user.webaccel.jp. (TTL:300)
 mail  CNAME  @
 ftp  CNAME  @

3つのもう一個は、違うとこのDNSをいじる。これが見つけづらいんだ。
ここからログイン。
https://secure.sakura.ad.jp/cloud/
アカウントを選んで、「ウェブアクセラレータ」へ…と行きたくなるところ、「グローバル」っていう方へ。これがマニュアルだとわからねえんだよ。
そんで「グローバル」「DNS」へ。
これまた見つけにくい「追加」ボタン。右上に「+追加」ってあるやつ。緑色。もうちょっと真ん中にでっかく置いてくれよ。

ゾーン名は必ずドメイン名で。(www.とかもあるなら含める)
タグとかアイコンは特に設定不要。

そしたら一覧にゾーンが追加されるので、それの「詳細」を見る。
これまた見づらいんだが、右端にプルダウン用の下向き三角ボタンがあるので、そっから「詳細」を選べる。もうちょっと見やすくしてくれー。
そしてさらに見づらい!「リソースレコード」っていうタブが左上にあるので、それをクリック。
右下の緑の「追加ボタン」で設定しよう。
値に入れるドメインは、ウェブアクセラレータを設定したときに、「ドメインの所有権を確認するため、有効にする際は事前に以下のいずれかを設定してください。」と赤く出るやつの中にあるはずだ。

名前 _webaccel
タイプ TXT
値 webaccel=xxxxxxxxxx.user.webaccel.jp
TTL 300

設定したら「反映」ボタンを押す。そうしないと反映されない。
だがしかし!この「グローバル」からのDNSは設定してなくても使えたから、いらないのかも? これの設定の必要性があったらコメントで教えてください。
アクセラレーターの画面に赤く出る「ドメインの所有権を確認するため、有効にする際は事前に以下のいずれかを設定してください。」というアラートでも、”いずれか”、と言ってるから、全部やらなくていいのか。逆に言えば、1個やればいいだけなのか?わからない。ダメなときは全部やるっきゃないと。

設定したらしばらく待とう。DNSとかそういうのは数時間かかったりするので焦らず、次の日とかにでも確認する。それまでにできる他の仕事はあるはずだ。

●もしできないとき
できないときは、見直すことも大事なんだけれども、もう一回最初から、丁寧にやりなおした方がいいかも。
DNSとかSSLとか間違っていると、根本の問題になってしまうので原因がつかめない。それをごちゃごちゃやるよりも、やり直した方がいい場合がある。

●まずはウェブアクセラレータのドメインを登録したアカウントを削除。
●そしてサーバーの、ドメインにつけたSSLを削除。ドメインも削除してやりなおしたほうがいい。しかしさくらの管理画面で、新デザインだと削除したSSLがずっと残ってしまって再作成がなかなかできないことがあったのだが、旧デザインの方だとそんなことはお構いなしで再作成できた。新・旧の画面で、都合のよいほうを使うことになるのはちょっとまどろこしいが、全くできないよりは、どちらかに逃げ道があるという方がまだマシだ。
●DNSも元に戻す。履歴があるはずだから、見ればわかるはず。

1時間くらい休憩をしてから再度とりかかる。この1時間の休憩は大事。休憩あけは信じられないくらいうまくいくことが多い。魔法みたいに効く。

●確認
晴れてDNSの設定によりウェブアクセラレータも有効に出来て、SSLも登録できて、htaccessもセットしたなら、試しにサイトを見てみて、キャッシュされているか見てみよう。
ChromeかFirefoxで見るといいね。開発者ツールが使いやすいから。
F12キーを押して開発者ツールを開き、タブにある「Network」のところを開いてから、サイトを読み込む。
するとどんどんファイルだのが読み込まれていくのがわかるだろう。
そして画像のなんでもいい、一つ選択してみる。プロパティが出てくるはずだ。
「Request URL: https://.....」とか
「Request Method: GET」とか書いてある一覧が見えるだろうか。
その一覧の一つにx-cache:という項目がHITになっていれば成功!というわけだ。
MISSとなっていると、なにかがおかしい。
だが焦らなくていい。もう一回リロードしてみよう!一回目は請求しただけで、その後設定され、2回目のアクセスから有効になるっていうことはよくあるもんだ。
それでもダメなら面倒でも初めから確認しなおそう。
「デフォルトのキャッシュ期間」有効になっていないだろうか?無効にしてみよう。

自動更新証明書
そして問題なく使えるようになったら、「Let's Encrypt 自動更新証明書を使用する」を有効にしておこう。Let’s Encryptなら使えるようだね。こうしておかないと、手動で更新するようになってしまい、更新するときに一回WEBサイトを閉じないといけなくなる。Let's Encryptの有効期限が3か月だったと思うから、3か月ごとにサイトを閉じて、SSLの更新をしないといけないのは致命的だ。ダウンタイムなしで更新してくれるようになるのでぜひ設定したい。(2021.01.28から使えるようになってたんだって。)

EWWWプラグインであるページ・ある時だけLAZYLOZADを無効にしたい。

EWWWプラグインを使っていて内部リンクなんかを利用すると、アンカー位置がうまくとれなくてずれてしまうことがあります。
後読みにしてある画像が読み込まれていないときは、ページの高さが正しく出ていない状態なので、ずれてしまうんですね。これまた、原因に気が付くまでに数時間、その対処を考えるのに数時間、解決策を正常化させるのに数時間…と、二日もかかってしまった。もっと見積もり高くしておけよかった、、なんてことは良くありますね笑

と、そんなこんなで「あるページ」「ある時」だけLAZYLOZADを無効にしたいときがありますね。
そんなときはfunctions.phpにこんな記述でも対応できました。ちょっとどんくさいかもですが、参考になるとよいです。

function skip_lazyload(){
if(is_page()){
//固定ページのときとしてある。ここで条件を変えればいろいろ対応できる。
add_action('the_content','content_add_class_skip_lazy');
//the_contentでEWWWWの出力前にいじります。
//いじる内容は↓content_add_class_skip_lazyという関数を作りました。
}
}
add_action('wp','skip_lazyload');

function content_add_class_skip_lazy($content){
$dom = new DOMDocument;
//PHP5から使えるようになった、HTMLパースができる機能。知らなかった…便利だ!
//だが文字化けがヒドイ!
@$dom->loadHTML(mb_convert_encoding($content, 'HTML-ENTITIES', 'utf-8'));
//なのでエンコード
$imgs = $dom->getElementsByTagName('img');
//EWWWはimgタグにskip-lazyとclassを付ければ無視してくれる。
foreach($imgs as $img){
$class = $img->getAttribute('class');
//一回、現状のclassを取得
$img->setAttribute('class', $class." skip-lazy");
//現状のclassに" skip-lazy"を追加。
}
$content = mb_convert_encoding($dom->saveHTML(), 'utf-8', 'HTML-ENTITIES');
//saveHTML()で変更を保存して、さらにエンコード。
return $content;
//ほんでリターン。
}

EWWWは使いやすいプラグインなので、もうちょっと使いやすいOverrideを用意してほしいな。
他に使いやすい画像軽量化のプラグインあったら、コメントしてください。