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

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の画像リンクなどをサブドメインのものへ書き換えればいいので、ダウンタイムなしでもいける。むずかしい条件のときはサブドメインで考えるといいだろう。

●まずはドメインとサーバーを用意する(初心者はそんなことすらもわからないのである。)
サーバーはなんでもいい。さくらサーバーのスタンダードでもいいし、マネージドみたいな高級なやるでもいい。あるいはさくらサーバーじゃなくてもいい。自宅サーバーでもいいって感じだね。
もしくは、持っているのであれば、ドメインが、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サイト設定する、と始めるのが初心者ってもんだ。

「公開ドメイン名」が大事。wwwつけるかつけないかも含めて正しいドメインを設定する。
「オリジンサーバ」はサーバーのコンパネの「サーバー情報」にあるドメインまたはIPアドレス
「デフォルトのキャッシュ期間」は、特別な理由が無い限りは無効にしておくようだ。最後の確認のときにx-cache:がHITになってくれなくてMissになってしまったのはこれが理由のようだった。

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

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

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

が必要になる。

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

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

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

●サイトを設定すると、DNSは3ついじるように、赤字で表示される。
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」へ。
これまた見つけにくい「追加」ボタン。右上に「+追加」ってあるやつ。緑色。もうちょっと真ん中にでっかく置いてくれよ。

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

設定したら「反映」ボタンを押す。そうしないと反映されない。
だがしかし!この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となっていると、なにかがおかしい。確認しなおそう。
「デフォルトのキャッシュ期間」有効になっていないだろうか?無効にしてみよう。

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

イラストレーター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

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)を動かそうとするも、500internal server error。
古くから使っているからいい加減エラーなく設定できるようになりたいが、毎度毎度ひっかかる。perlってどうしてこうも繊細なんだろ。KYともいえるが。
要因はこんな感じ。全部試してみる価値ありです。

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

・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とのこと。

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

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