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

フォートナイトでボイスチャットするのにヘッドセットはいらない。スマフォかタブレットで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行。

xxxxxxxx.user.webaccel.jp.
webaccel=xxxxxxxxx.webaccel.jp
webaccel=xxxxxxxxxx.user.webaccel.jp
みたいなやつ

で、新情報
理屈としては、CNAMEに「xxxxxxxx.user.webaccel.jp.」っていうやつを設定するだけでOKとのこと。ただし、ダウンタイムが発生するのでものすごく注意。最低2時間はサイトがダウンすると思っていい。
TXTには、「webaccel=xxxxxxxxx.webaccel.jp」みたいなやつを設定するのは、事前承認のために使うらしい。つまり、稼働中のサーバーにウェブアクセラレーターを設定する場合、CNAMEが承認されるまでに時間がかかってしまいダウンタイムが発生するので、事前に承認できるTXTでウェブアクセラレーターに承認を通しておいて、それからCNAMEの変更をすればダウンタイムなしでウェブアクセラレーターを設定できる、っていうことのようだ。なので、TXTの設定は、ウェブアクセラレーターに通ってしまったら削除するのが好ましいということ。ちょっとのことでもみんながやるとDNSサーバーに負担がかかっちゃうからね。

このページが詳しい。サポートが教えてくれました。ありがとうございます。
【TIPS】ウェブアクセラレータをさくらのレンタルサーバで使ってみよう
https://manual.sakura.ad.jp/cloud/webaccel/manual/tips-settings-webaccel-for-rs.html
タイトルが「使ってみよう」なんていうノンキなものだから読み違えてしまうのだけれど、ダウンタイムなしに稼働中サイトにウェブアクセラレーターをあてがう手順書、というかなり重要ページなのだ。これでだいたい設定できるはずだが、スクリーンショットなんかが古いためにわかりづらいかもしれないが、手順は同じ。がんばってみよう

DNSの設定は、さくらのゾーンを使った場合だけれど、こんな感じ。
ダウンタイムを発生させないようにするには、上でリンクしたページの手順を熟読してみてくれ。
以下は公開前サイトの場合の設定例。

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

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

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

完了したらTXTの設定は削除してもよいそうです。

3つのもう一個は(webaccel=xxxxxxxxxx.user.webaccel.jpみたいなやつね)、DNSアプライアンス用のもので、ゾーンまたは他社DNSでCNAMEだけで設定するならいらないようだ。さくらのDNSを使用する際に必要になるようです。なんで、もしいじることになってしまったら、参考までに。
この3つめのやつは違うとこのDNSをいじる。これが見つけづらいんだ。
ここからログイン。
https://secure.sakura.ad.jp/cloud/
アカウントを選んで、「ウェブアクセラレータ」へ…と行きたくなるところ、「グローバル」っていう方へ。これがマニュアルだとわからねえんだよ。
そんで「グローバル」「DNS」へ。
これまた見つけにくい「追加」ボタン。右上に「+追加」ってあるやつ。緑色。もうちょっと真ん中にでっかく置いてくれよ。

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

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

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

設定したら「反映」ボタンを押す。そうしないと反映されない。
また、他社のドメインの場合は権限の移譲を明示しないといけないようで、ドメインに設定してあるDNSには

DNSサーバ名
[ns1.gslb×.sakura.ne.jp/ns2.gslb×.sakura.ne.jp]
※×は各DNSサーバに割り当てられた数字

と設定しないと1か月後に削除されることもあるようだ。
繰り返しになるが、このDNSの設定はCNAMEで出来ているならば不要ということで、ドメインのDNSが変更できて、DNSアプライアンスを使用する場合、という場合だ。ドメインのDNSが変更できるならば手軽な方法になるのかな。よくわかっておりません。

すべて設定したらしばらく待とう。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を用意してほしいな。
他に使いやすい画像軽量化のプラグインあったら、コメントしてください。

イラストレーターでファイルが開けない!合成フォントがなくなっちゃってたのが原因だった。。。

イラストレーターCC2020にいつの間にかアップデートされていて、問題なく使えているのに、ある日突然ファイルが開けなくなった。

こんなこと、イラストレーター使っていればよーくありますよね。
そういうときは、設定ファイルを初期化する、っていうのが一番手っ取り早いです。
さっそく設定ファイルの入っているフォルダの名前を適当に変えて、イラストレーターを再起動する。すると新しく設定ファイルが作られる。
※設定ファイルの初期化は↓下の方で解説しておきます。

初期化だけでほとんどの問題は解決できます。
そんなことは多くの人も知っています。
「もうすでに3回くらいやってるよ!なのに、イラストレーターの起動さえできない」
っていう人に、今回は辿り着いてほしいわけです。

まずは今回の解決までのプロセスを見ちゃってください。

1.ファイルをダブルクリックでイラストレーターを起動

2.イラレのソフトの外枠は出るけど、そのまま止まったままになって動かない

3.あきらめて強制終了。

4.ためしに他のファイルを開いてみると、あら、すんなり開く。

5.設定ファイルのフォルダ名を変えて、初期化。←【重要】もしここでフォルダを削除して初期化していたら、終わってた。

6.それでも症状は同じ。

7.勝手にアップデートがかかったか?と思ったので、Creative Cloudでイラストレーターのバージョンを落とす。便利な世の中になったもんだ!昔はCDから再インストールしてよぉ…ついでにOSも入れ替えとかになって…昔話はいいか(笑)

8.それでも症状は同じ。むむ、イラストレーターの起動不良ではこのあたりの対応で正しいはずなのに、なにか変だ。

9.こんなときはAcrobatで開いてみよう。…しかしPDFを含めると重くなるので、含めていなかった。「イラストレーターで作られたファイルなので開けません」と出てしまう。

10.1ファイルだけの問題なので、ソフトサイドの問題ではなく、固有ファイルの破損か? 最悪のパターンだぜ…。また作り直しか。もう校了寸前なのに、全く同じものを再現なんてできねえ…っていうか、同じものを作り直すっていうモチベーション上げるの無理。途方に暮れる。

11.あがきで、パソコンも再起動。イラストレーターも再起動。やっぱり同じ。

12.1ファイルの問題だろ?ってことは、そのファイルが特別ななにかを使っていたのか?と思い出そうにも思い出せない。なにしろ開けないのだ。

13.もう一台のノートパソコンに、イラストレーターをインストールして、そっちでも開けるかどうかを試してみようと思いたつ。Creative Cloudは2台までなら入れられるので、よかったあ。便利だなあ。月に5000円払ってるだけあるわ。もしもう1台用意できなければ、友達とかに送ってみて、開いてもらうしかなかったかもな。

14.ファイルを送って、イラストレーターを起動すると、開けた!おお、久しぶり!ではなにが問題なんだ??

15.もちろんもう1台のパソコンにはフォントが入っていないので、テキスト部分にはピンクの網掛けがかかってる。そう、環境の違いは、フォントのあるなし

16.テキストに合成フォントが使われているのを発見。もしフォントじゃなければ、スォッチとかも疑ったほうがいいかもな。とにかく環境の違いを探すことがヒントにつながるはずだ。

17.それじゃあ、合成フォントはどうなってんの? となったわけ。しかし合成フォントが、ソフト上でどう管理されているのか、ぜんぜん気にしたこともなかった。

18.調べてみると、合成フォントは設定ファイルの中にあるという。覗いてみたら、おお、丁寧に日本語のフォルダで「合成フォント」とあるじゃないか。のこのことしかも日本語で現れたから驚いた。まるでネギがカモ背負って来た感じ?逆だよね。

19.しかし「temp」というフォルダがあるだけで、なにもない。。。ここに自作した合成フォントがないといけないはずなのに。

20.おっと! フォルダ名を変えた古い設定ファイルの方にあるんじゃないかと覗いたら、あった! 何度か設定ファイルのフォルダを変えていたこともあって、前の前に変えたフォルダの中にあったのだ。

21.さっそく新しい設定フォルダの「合成フォント」というフォルダのなかにペースト。

22.起動してみると、ややもたついたので焦ったが、開いた!

まさか合成フォントが問題の原因だったとは…。
WINDOWSの場合の合成フォントの場所だ。

C:\Users\あなたのユーザー名ね\AppData\Roaming\Adobe\Adobe Illustrator バージョンの番号 Settings\ja_JP\x64\合成フォント

イラストレーターの設定ファイルを初期化する
重要なのは、初期化のときに、フォルダを削除するのではなく、フォルダ名の変更をするということだ。
これ、合成フォントなくなっちゃってたら、どうやって開けばよかったんだろ。そう思うとぞっとする。
設定ファイルの初期化の手順も記しときます。

C:\Users\あなたのユーザー名ね\AppData\Roaming\Adobe\Adobe Illustrator バージョンの番号 Settings

これを、

C:\Users\あなたのユーザー名ね\AppData\Roaming\Adobe\Adobe Illustrator バージョンの番号 Settings_org

とか、

C:\Users\あなたのユーザー名ね\AppData\Roaming\Adobe\Adobe Illustrator バージョンの番号 Settings_202003

とか日付打ってもいいので、いつでも戻せるようにフォルダの名前を変えればOKだ。

初期化はなんだかんだ利用することになるので、覚えておくといいね。
あと、メジャーアップデートがかかって、イラストレーターのバージョンが上がったときにもこの方法が必要になるかも。
特にアップデートされるたびにスクリプトがなくなってて、設定ファイルのフォルダに入れることになることがよくある。
Adobeにゃ、ここんとこ、どうにかしてほしいけど。

他の対処法も書いてくれている人がおりました。開くまでひたすら待つ、というのも一つの手なのかな。

Illustratorと合成フォントの悩ましい関係。
https://centree.net/2014-12-02/449

URLを正規化するやり方解説。SSLとWWWありのURL正規化はこの記述で決まり。

SSLが当たり前になってもうだいぶ経ちます。
ですが、まだ細かいケアは身についていなかったり。その代表格はSSLリダイレクトじゃないでしょうか?
いろいろ試しましたが、サーバーによってもまちまちで、毎回うまくいかなかったりでございますわねえ。
しかしとうとう決着。SSLとWWWありのURL正規化はこの記述で決まり。
.htaccessに以下を記述しよう。

RewriteEngine on
RewriteBase /
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]

WWWをつける、つけないはあると思いますが、WWWはつけておいた方が使いやすいです。
よくwwwついてりゃなあと思わされるときは、WordpressなんかのDBの書き換え。wwwがついていればメアドのドメイン部分が書き換えられてしまうことなくスムースだったり、なにかと必要です。
それでもwwwはいらねえ、っていう場合はこちら。

RewriteEngine on
RewriteBase /
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\.
RewriteRule ^(.*)$ https://example.com/$1 [R=301,L]

参考サイトはこちらです。ありがとー!
https://www.white-space.work/url-normalization-with-htaccess/
※よく読めばいいことなんですが、RewriteEngineとRewriteBaseを見落としがちなので、自分用にメモしたわけです。

ただ、さくらサーバーはこうはいかないはずなので、そのときはこちらのページを参考にするとよいと思います。
https://www.1-firststep.com/archives/3938

WordPressのマルチサイト(Multi site)でネットワーク管理画面(/wp-admin/network/)へログインできなくなってる場合

やっとわかった!
Wordpressのマルチサイトでサイトを作っていて、ネットワーク管理画面(/wp-admin/network/)へログインできなくなって長かったのだが、原因がようやくつかめた。
ログインができなくなっていた状況はというと、多数のリダイレクトが発生して、ブラウザがタイムアウトしてしまうのだ。

「このページは動作していません」
リダイレクトが繰り返し行われました

と表示される。
テスト環境に移しても同じような状態だ。テスト環境でもダメということは、サーバーの問題ではないようだ。プラグインも切ってみたが、変りない。
ただ、テスト環境を何度か作り直しているうちに直ったこともあった。やった!と思ったが、なにがどうやって直ったのかはわからずじまいで、本番環境を直すにはそこを知る必要がある。
テスト環境へ移すときに変更するのはドメイン名の変更だ。ドメイン名に問題がありそうだとだいたい目星はついていたが、長い間どう調べても糸口がつかめなかった。

[wordpress network redirect]などと検索していて、海外のサイトで以下のようなアンサーを何度か目にしていたのだが、よく読んでいなかった。
今日のような暇なときに腰を据えて読んでみると、ちゃんと説明してくれていることがわかる。

https://wordpress.stackexchange.com/questions/175728/redirect-loop-only-for-multisite-network-admin

There's another possible cause of the loop when trying to access:
/wp-admin/network/
There's a redirect triggered at the bottom of:
/wp-admin/network/admin.php
This checks that the current blog and current website have the same path and domain values, if they don't then the redirect occurs.
Double check that the path specified in the wp_blogs table is the same as the path set on the current site.
These values can end up out of sync, especially when installing the applications inside a directory, eg. /blog/

Andrew

簡単に要約すると「wp_blogs」にあるURLが正しくないとリダイレクトしてしまうよ、ということだ。
(the current blog and current website have the same path and domain values ここんとこね)

wp_blogs」がどこにあるかと言えば、データベースだ。テーブルの名前に「wp_blogs」というのがあって、Wordpressのリダイレクトは、そのURLと管理画面が同じパスであるかチェックするのだ。セキュリティの一つだね。

治し方 その1

データベースを編集する
phpMyAdminなどのデータベース編集ツールを使うのが早いだろう。サーバーの管理画面から使えることが多い。自前のサーバーだったらphpMyAdminからダウンロードしてきてインストールするとかになる。
もしくは、プラグインのバックアップツールなどでデータベースをダウンロードして、直接編集をしてもいい。シリアライズが必要な部分でもなさそうだからね。他の部分はダメだよ![s:4:...][s:12:...]みたいな記述があるところはシリアライズと言って文字数も関わってくるところなので、手で治すのは危ない。手間もかかるしリスクも大きいから、ツールを使った方が確実だ。

「wp_blogs」
phpMyAdminにて、データベースを覗いてみた。しかし「wp_blogs」には二つの行があるだけで、それぞれにドメインとディレクトリが正しく入っている…。問題はなさそうだ。いや待てよ、うーんやはりドメインとディレクトリが正しく入っている…。問題はなさそうだ。などと10回くらい繰り返したときだった。
ドメインに、wwwがついてねえ!
と気が付いたのだ。「www」つきのドメインに変えたら見事、ネットワーク管理画面に入れた。


↑赤くしたとこにあるドメインが間違っていないか確認。

ありがとう!Andrewさん!私のドメインの記述が間違っていました!どこでどうやって間違えたのかはわかりませんが、とにかく私が悪かったんです!ありがとう!…

「wp_site」
データベースを見て回ると、「wp_site」というテーブルも見つかった。ここにもドメインが「www」なしで記述されている。ついでにここも直しておいた。とくに影響はなさそうだ。もしなにかマズかったら、ここは元に戻そうと思う。

治し方 その2
こっちは治せるというよりかは、確認ができる、と言った方がいい。ちょっと力わざなものだ。

/wp-admin/network/admin.php

というファイルの中に、

wp_redirect( network_admin_url() );
exit;

という記述がある。一番下あたりだ。これを

//wp_redirect( network_admin_url() );
//exit;

と「//」でコメントアウトする。PHPはこれでとりあえず動作させないようにできる。
ここのプログラムは、Andrewさんが言ってた、同じドメインかチェックをするプログラムの部分なのだ。
とりあえずこの機能を切ってしまおう、ということだ。この2行をコメントアウトしたら、管理画面よりネットワーク管理画面に入ってみよう。とりあえずは入れるはずだ。

URLを確認
そこで「サイト」にあるマルチサイトで作った各ブログのURLを確認してみてほしい。どうだろうか?wwwがなかったり、正しいURLになっているだろうか?
もともとのブログは直せないが、追加したブログはURLの変更ができるはずだ。そこで治してもダメなら、やはりデータベースを直接直した方がいい。
URLが正しいか確認できるかできないかは心理的にはけっこうでかい。原因がわかれば進むことができる。

これでサイト全体にアップデートがかけられるようになったわけだ。アップデートをすると、サイトのアップグレードもしておこう。ネットワーク管理画面にあるから、探してくれ。すぐに見つかるはずだ。

さくらサーバーで枯れたCGIを動かそうとするも500エラー

さくらサーバーで枯れたCGI(perl)を動かそうとするも、500 internal server error。
さくらサーバーの管理画面からエラーログを見ても

AH01215: suexec policy violation: see suexec log for more details:

こんなことになっていないだろうか?suexec logってどこにあるのよ?

古くから使っているからいい加減エラーなく設定できるようになりたいが、毎度毎度ひっかかる。perlってどうしてこうも繊細なんだろ。KYともいえるが。
要因はこんな感じ。全部試してみる価値ありです。

・cgiファイルのエンコード形式をチェック。SJISで、改行形式がCRLFで動いたが、ご自身の環境に合わせてみる。
LF(ラインフィード)っていうのがLINUX形式で、CR(キャリッジリターン)LFとが混ざっているのがWindows形式なのかね。
通常はLF(ラインフィード)のLINUX形式にするといいみたいね。

・FTPでアップするときにASCIIとバイナリの両方式を試す。自動にしておけば通常良いのだろうけど、どうしてもダメなときは試す。
 ※ASCIIっていうのは、テキストファイルなんかをサーバーの形式(主にLINUXか)に合わせてアップするよ、っていう感じなのかな、簡単に言うと。CR+LFになっちゃっているときに自動でサーバーの仕様に変換してくれるのがASCIIなんだけど、これがうまくいかない場合があるっていう話みたいね。

・パーミッションは705か755。ほとんど755でOKだよね。そんなことないか。

・新しいPerl 5.26.3で動かすと、古いPerlではjcode.plにエラーが出ている可能性も。
「Can't use 'defined(%hash)' (Maybe you should just omit the defined()?)」
っていうエラーがサーバーのログでみるとあったりしない??
さくらサーバーなら、管理画面の「アクセスログの設定」にある「エラーログ」の一番下に出ているはずだよ。
その場合は、jcode.plの中の記述を
&init_z2h_euc unless defined %z2h_euc;

&init_z2h_euc unless %z2h_euc;

&init_z2h_sjis unless defined %z2h_sjis;

&init_z2h_sjis unless %z2h_sjis;
に変更するといいよ。詳しく紹介されているサイトはこちら↓
http://yasuda.homeip.net/insomnia/2017/09/perl-524-cant-use-defined-hash.html

・もうjcode.pl直すのもめんどくさかったら、サーバーのコントロールパネルから、Perlのバージョンを変えてしまうのも方法かも。私はPerl 5.12.5でOKだった。5.14でもだいじょうぶだったよ。

っていう感じか。
毎回失敗して、しぶしぶ上から順に試していくって感じ。だいたいこれで収まるね。

超大容量ハードディスクで警告: 操作の結果できるパーティションはアライメントが正しくないためにパフォーマンスがでません。UBUNTU(LINUX)

UBUNTU(LINUX)で6TBのハードディスクをフォーマットしようとしたけど、

警告: 操作の結果できるパーティションはアライメントが正しくないためにパフォーマンスがでません。

と出ちまったので解決したときのメモです。

まずはGNU partedを起動。設定したいハードディスクだかのデバイスを指定する。なにしろ2TB以上だとデカいので特別にパーティションを作らないといけないらしいんですよ。

parted /dev/sd?
あたしのときはparted /dev/sdd

そしたら↓こうなった?

GNU Parted 3.2
/dev/sdd を使用
GNU Parted へようこそ! コマンド一覧を見るには 'help' と入力してください。

次はpを打ってみるだけ。

(parted) p

するとまた「エラー: /dev/sdd: ディスクラベルが認識できません。」とエラーが。

エラー: /dev/sdd: ディスクラベルが認識できません。
モデル: TOSHIBA MD04ACA600 (scsi)
ディスク /dev/sdd: 6001GB
セクタサイズ (論理/物理): 512B/4096B
パーティションテーブル: unknown
ディスクフラグ:

そういうときはラベルを作成します。

(parted) mklabel gpt

でもう一回pを打つ

(parted) p
モデル: TOSHIBA MD04ACA600 (scsi)
ディスク /dev/sdd: 6001GB
セクタサイズ (論理/物理): 512B/4096B
パーティションテーブル: gpt
ディスクフラグ:

番号 開始 終了 サイズ ファイルシステム 名前 フラグ

すげえ、出来た。問題はここからです。
mkpartと打ってパーティションを作成するのですが、パーティションの開始位置を「0」と打つと、自動的に最小位置でやってくれようとするのですが、

番号 開始 終了 サイズ ファイルシステム 名前 フラグ
1 17.4kB 6001GB 6001GB ext4 primary

などと開始位置が「17.4kB」と半端になってしまって、フォーマットするときに

This may result in very poor performance, (re)-partitioning suggested.

って出ちゃうんですよ。パフォーマンスが乏しいよと。
なので、「4096s」とするのがいいと海外のサイトに書いてあったのを拝借。sをつけない「4096」だけだと4096MBの位置になっちゃうのでsはつけてくださいね。勝手にアレンジ禁止です。場合によっては「2048s」でもいいかもしれません。

(parted) mkpart primary ext4 4096s 100%
場合によっては
(parted) mkpart primary ext4 2048s 100%
でもいいかも。

おお、出来た。これでqと打てばパーティションの設定は完了。

(parted) q
通知: 必要であれば /etc/fstab を更新するのを忘れないようにしてください。

と表示されてご親切にfstabのことまで心配してくれる。たしかに助かるわ。こういうのを心配りというのだね。

でext4形式でフォーマット開始。

# mkfs.ext4 /dev/sdd1
mke2fs 1.42.13 (17-May-2015)
Creating filesystem with 1465129984 4k blocks and 183144448 inodes
Filesystem UUID: zxxxxxxxxxxxx-xxxxxxx-xxxxxxxxx-xxxxxxxx
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
102400000, 214990848, 512000000, 550731776, 644972544

Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

ためしにmountコマンドでマウントして、dfでデバイスの接続状況を確認すると

/dev/sdd1 5814214160 59336 5521112444 1%

ということでした。やったぜ!

イラストレーターでリンク画像がみつからない!とか探すのめんどくせえ時 二日酔いでそんな気になれない!

イラストレーター使っていると、リンク画像がみつからない、とか、探すのめんどくせえってときありますよね。
とくにクライアント支給のデータもらったときとかに、すげえ律義にフォルダ分けしてくれてたりとか、どこにあんだかわからない。
あるいは、ちょっと本気出せば見つけられるんだけれど、二日酔いでそんな気になれない、とかって言うときに便利な技です。

まず、イラストレーター開いて画像が見つからないと「置換」「無視」「キャンセル」って出てきますよね?「…というリンクファイルが見つかりません。」ってな感じで。
そしたら「置換」を選んでください。

エクスプローラーの画面が出てきますよね?出てこなかったら壊れていますよ。
えーっと、そしたらおよそ画像が入っているフォルダまでは進んでください。
フォルダはおおざっぱでいいです。そのフォルダ内のどっかに画像があればOKです。選んだフォルダの下の下の下の下の下の下の下の下の下の下に画像が入っている、とかでもOKです。なにせ検索で探すんで。

そう、右上にある検索ボックスありますよね?なければやっぱり壊れてますよ。
その検索ボックスに「.」半角ドットを入れて全ファイルを検索します。半角ドットは全ファイルを検索する、っていう呪文です。知らなかったらいろいろな場面で使えるので絶対覚えとけよぉ。

するとざざざーっとクライアントがよくもまあこんな画像だのepsだの使ってるわねえ、というくらい出てきますわ。
そのなかにきっと目的のファイルはある。
きっとあるヨ。
でもざざざーっといっぱい出て来ちゃったから、探すのめんどくさいです。
なので、探さなくていいです!
そのままで「置換」ボタン押しちゃってください!するとどうでしょう!

どんなにフォルダわけされちゃっていても、見つけてくれるはずです、しかも全部のファイルを一発で!

便利でしょう。
ぜひやってみてね。

Windows10どうしても消えないディレクトリ名・ファイル名を削除する

Windowsで、どうしても消えないディレクトリ名・ファイル名を削除する方法がわかったのでメモ。

客先からもらったZIPを解凍したところ、中にあったフォルダの様子が変だ。
中のファイルが開けなかったり、取り出せなかったりする。フォルダ自体のリネームさえできない。
よく見るとディレクトリ名の最後にスペースがある。果たしていわゆる半角スペースなのかどうかもわからない。
「Macの野郎…」
俺はそう思った。

そんなファイルやディレクトリは、コマンドプロンプトから削除する方法が、98や2000なんかの昔からよく使れている。
まずはこれを試してみてもらいたい。

●ディレクトリを消したいときのコマンド。
https://www.k-tanaka.net/cmd/rd.php

●ファイルを削除したいときのコマンド。
https://www.k-tanaka.net/cmd/del.php

懐かしいなあ、と思いながらコマンドを打つが、できない。
俺の場合だが、「指定されたファイルが見つかりませんでした」と出る。
そんなときは、↓こちらをすぐに試してくれ。すげえぞ。ありがとうatmarkit!!

https://www.atmarkit.co.jp/ait/articles/0501/29/news013.html
「¥¥?¥ドライブ名¥パス名¥ファイル名」

なんと、パスの書き方を変えただけで出来ちまった…頭に「¥¥?¥」これをつけるだけ。クォートで囲ってもOKとのこと。

ファイルのときの例。

del ¥¥?¥ドライブ名¥パス名¥ファイル名
del "¥¥?¥ドライブ名¥パス名¥ファイル名"

 

ディレクトリ(フォルダ)のときはこっち。

rd /s ¥¥?¥ドライブ名¥パス名
rd /s "¥¥?¥ドライブ名¥パス名"

すげえ時間くっちまったので、次はすんなり削除したいのでメモでした。