SASSでいろいろ嵌まったこと

ツレのWebサイトの仕事を手伝ったときにSASSで嵌まった。とても単純でまたどうせ嵌まりそうなので、自戒の意味でメモしておく。

Sass: Syntactically Awesome Style Sheets

まずはSASSのコード

#wrapper
margin: 0
padding: 0
width: 960px
height: auto

これをCSSにコンパイルするとエラーになる。こちらはインデントにタブと空白を混じっていたのが原因だった。CSSからSASS型式で逆変換したときにタブが入ったCSSをコピペしたときの原因。サイトのサンプルからコピペしてもタブが入っているのでこれも注意。結果的には何かエラーがあるとしたら、インデントの書き方が悪いとか、プロパティと値のコロン(;)の間の空白を疑うこと。

Successfully generated CSS: ・・・・・・・

となって今度はうまく行くと思っていたけど、正しく指定されたスタイルシートで表示してくれない。SASSのコードが間違えていると思ってドキュメントを見直したけど正しい。他のサイトを見たけどこれといった誤りもない。

しかしながら、「これからはスタイルシートをCSSではなくてSASSスタイルで書こう」とい言いながら、SCCSスタイルでサンプルを書いているサイトがなんて多いことか。これは関係ない話し・・・。

出力されたCSSファイルを見てみると、margin-paddingとかおかしなプロパティに変換されていた。

#wrapper  {
margin: 0;
margin-padding: 0;
width: 960px;
height: auto;
}

こちらもタブがまだ残っていたのが原因だった。このようにエラーなく変換されているのは、SASSの仕様上何かあるのだろうか?

使っているエディタはVisual Studio Codeだが、良いか悪いかわからないけどタブを入力すると自動的に空白にしてくれる。ただし、他のコードからコピー&ペーストしたときはタブはそのままになってしまうので注意が必要である。VS Codeでタブと空白を区別してくれる表示の方法がどこかにあるのだろうな。秀丸エディタならあった。

それにしてもSASSは楽チンだな。今までLESSを使ってたけど、直接CSSを書く気にはなれないな。

と書いたら、SCCSスタイルの方がSASSスタイルの後に出てきたとか記事が出てきた。今までのCSSのように{}で囲むからタブとか空白でコンパイルエラーがなさそうだし、SCCSスタイルの方がいいのかな?

北海道で発生した地震でのさくらインターネットデータセンターについて

今日未明、北海道で大きな地震がありました。現在利用しているさくらインターネットでは北海道石狩 にデータセンターを持っていますので、状況を確認しました。以下がさくらインターネットから出しているリリースです。現在、石狩のデータセンターは停電していますが、自家発電でデータセンターは正常に稼働しているようです。

私のところでは、いくつかのサービスをさくらインターネットのサーバーを使って動かしています。どこのデータセンターで動いているかは以下の方法でわかります。

利用開始が古いサービスが多く、最近契約したサービスを含めて幸いにもすべて大阪のデータセンターでした。今回の地震の影響はデータセンターに関してはなさそうです。ちなみにさくらインターネットでは、契約時にどのデータセンターを使うかを選ぶことができないようです。

しかしながら、北海道全域が停電というのは辛いものがあります。被害に遭われた皆さまには、無事にすごされるように願っています。

さくらインターネットのメールサーバーを移行する

さくらインターネットのメールボックスを設定していると、レンタルサーバーに同じドメインを設定できないようなので、メールボックスをやめてレンタルサーバーにメールを移行する。面倒な仕様だと文句を言いながら作業を始める。

さくらインターネットにDNSゾーン削除依頼をする

メールアドレスを新しくレンタルサーバー側に設定してからメールボックスのドメインを削除する。これでレンタルサーバーにドメインを新規登録できるので、新登録してからお名前.comにあるDNSのMXレコードをレンタルサーバーに設定する。ドメインの新規登録をするときに、確認画面で送信ボタンを押し忘れて、ずっとメールが届かないと悩んでしたのは内緒の話し・・・。

以上の作業で、10~20分ほどでメールサーバーの移行は完了する。テストメールを送ってメールが受信できるか確認しておく。

現在WordPressで会社のサイトを作っているけど、全くプログの更新とかしないサイトだし、次回はbaserCMSでサイトを作ってみようと思う。WordPressからbaserCMSのサイトの移行はどうせできないと思うので、コピペでページを作っていく。サイトデザインをどうするかとかあるけど、最初はbaserCMSで最初に用意しているテーマにしておこうかと思う。

これで当初も目的のLet’s EncryptのSSL証明書を使ったSSL化の第一歩となる。会社のサイトだから、本来ならば実在証明型のSSL証明書にしたほうがいいのだけど、一日10アクセスくらいしかないサイトだから、ドメイン認証型の無料SSL証明書にしておく。

追記(2018年9月3日)

迷惑メールも広告メールも受信できるようになったから、無事にメールサーバーの移行ができたんじゃないかな。

追記2(2018年9月3日)

さくらインターネットのレンタルサーバーのメールアドレス設定で、メールを「転送専用にする」にしていたらfetchmailができなかった。「メールボックスに残す」にしないといけない。 考えてみれば 当たり前だけどな。

さくらインターネットのサポートは一日一回

現在、さくらインターネットのサポート担当と、以下についてメールでやり取りをしている。

さくらインターネットゾーン削除依頼

メールだと、翌日に回答があるのよね。なかなか進まない。

ということで、結局自分で調べて自分で対応してしまいます。電話をかけたほうが速かったかな。でも、電話はつながらないしな。

この一日一回の回答は、もしかしたらユーザーをサポートに頼らず鍛えるための方策かもしれないな。

さくらインターネットにDNSゾーン削除依頼をする

下記のサイトのように、まさしく「指定されたドメイン名は登録されています」が表示されたので、さくらインターネットにゾーン削除の依頼中。

それにしても、いつ登録したのかな?

さくらインターネットでドメイン設定ができない

追記(2018年8月30日)

さくらインターネットから回答があった。

さくらのメールボックスのほうにゾーンが登録があったのが原因だった。そう言えばメールはメールボックスで受信していた。さくらインターネットのDNSなんて使っていないし、こちらとしてはどうでもいいようなエラーだな。メールボックスとレンタルサーバーの両方で同じドメインは使えないということか。

メールボックスをやめて、メールをレンタルサーバーに移行しないといけないのか。まともに考えれば一つにしてしまったほうがいいけど、メールアドレスもたくさんあるし、これはめんどくさいな。

さくらインターネットのレンタルサーバーには、メールアドレスの一括登録というのがないのね。やはり個人用のレンタルサーバーということなのかな?

追記(2018年9月1日)

もう一つの解決策としては、ドメインを含めてDNSをすべてさくらインターネットに任せてしまう方法。しかしながら、ドメイン更新料が高くなるし、そもそそもサーバーとドメインを一つの会社に握られたくないというのもある。

メールサーバーで受信しているのはツレくらいだし、あとのメールアドレスは他に転送しているくらいだから、メールサーバーを移行しても問題ないと思うが・・・。

SSL証明書の認証レベル

今作業しているお客さんの病院サイトがSSL化が完了。SSL化は自分のところが作業していないけど。

どんな認証レベルを使っているかを見てみたら企業認証(OV)を使っていた。お金の関係でドメイン認証(DV)だと思っていた。EVまでは使っていないが、頑張ったな。

他の競合する国立の病院のサイトを見たら、こちらはドメイン認証だった。まあ、他の地域の中核病院なんてSSLにも対応していいないから、そんなもんかな?

しかしながら、EVは組織名がブラウザのアドレス出てきて頑張っている感があるけど、DVとOVの違いはパッと見ただけではわからない。OVを使っているぜ、を見た目でもっとアピールできたらいいのにと個人的な感想。

WebサイトのSSL証明書の違いとサイトにあった証明書の選び方

Gutenbergが動き出した

今までは保存できないといる障害がありました。一番怪しいのがテーマだと思ってWordPress謹製のテーマに変えてみましたけど、結局同じでした。

ふと設定項目を見てみると、URLがhttp:///www.5cho-me.com/のままでした。先日SSL化したので、https://www.5cho-me.com/にしないといけないのでした。きちんとHTTPSに設定したら、Gutenbergが正常に動き出しました。

そう言えば、プレビューもできなかったし、管理者用のツールバーが表示できないという問題もありました。これらすべてHTTPSのURLを設定していなかったのが原因のようです。

ディスクの残容量が少なくなったので

Cドライブの残りの容量が少なくなってきてエクスプローラーで「デバイスとドライブ」でドライブ一覧を見ると赤くなっていた。

使っていなさそうなアプリケーションを消してもそんなに変わらない。チマチマとフォルダのプロパティで使用量を見て、いらないフォルダを削除しても埒が明かない。

そこで簡単にフォルダごとの使用量をビジュアルで表示してくるアプリケーションを使う。

「DiskInfo」フォルダー内のファイル占有率を表示 – 窓の杜

やはり、占有しているフォルダが見つかる。今回はGoogleドライブだった。DドライブにGoogleドライブを移動していたのに、Cドライブが残ったままという失態。差分をCからDにファイルをコピーして、CドライブのGoogleドライブを削除する。

ついでにDドライブも見てみたら、こちらは古いDropboxのファイルが見つかった。以前違うフォルダに移動していたのに削除し忘れていたみたい。

以上で、だいぶディスクを整理できた。Cドライブは半分空いた。

BackWPupプラグインでエラーが出るので

BackWPupプラグインでエラーの通知が来た。BackWPupはWordPressの自動バックアッププラグイ。実はエラーを出ていても、しばらく放っておいたけど。

エラーが出ていると何か気持ち悪いので対応する。BackWPupの管理画面に入ると、「mysqliがどうしたこうしたと」警告が出ていた。これを手がかりに対応する。

BackWPupのジョブを直接実行すると

「エラー: ステップを中止: 回数が多すぎます」

とエラーメッセージが表示する。こちらを手がかりにしたほうが簡単に対応方法が見つかった。

要はPHPのバージョンが古くてmysqliのPHP拡張モジュールを対応していないからMySQLに接続しようとするとタイムアウトになっているとのことだった(だいぶ意訳)。

このWordPressのサイトはさくらインターネットのレンタルサーバーを使っているけど、最初にPHP7を入れたはずだけどと思ってphp -vを打ってみると5.6だった。つまりPHPのバージョンが古いのが原因だった。

さくらインターネットのサーバーコントロールでPHPのバージョンを7.2に切り替えてみる。実はこれは危険。思いつきで切り替えてはダメ。案の定WordPressのサイトにアクセスすると、画面が真っ白になってしまう。

「ああ、やってもうた・・・」と思ったけど気を取り直して、さくらインターネットのサーバーコントロールからPHPのバージョンを5.6に戻してみる。これは無事にアクセスできて元通り。この辺りはレンタルサーバーの気軽で簡単なところ。もし、専用サーバーだったら、PHPのバージョンを元に戻すは大変だろうな。

おそらくプラグインが悪さしているのだろうと思って、めぼしいプラグインを無効にしておく。PHPを7.2に切り替えると、今度は無事にアクセスできる。

一つづつプラグインを有効にしてみて、PHP7.2に対応していないプラグインを探してみる。インストールしていて対応していていないプラグインは、

  • Google+Blog
  • spam-byebye

の2つだった。

spam-byebyeは、もう古いしWordPressのJetPackでスパムコメントの対応はできていそうなのでもう必要ない。

痛いのはGoogle+Blogである。こいつはいくらかお金を払ってインストールしたもの。Google+(みなさん使っていないと思うが、実は自分が利用している唯一のSNS)から記事を自動的に取得して投稿してくれる連携プラグインである。このままではGoogle+Blogプラグインを有効にするとサイトにアクセスできなくなるので、したかないけど無効にしておく。Google+Blogプラグインのサポートサイトを見てみると、Error 502になるので、既にサポート終了になってしまっている。WordPressからG+へは自動投稿できているからよしとする。

以上でPHP7.2の対応完了。本件の始まりだったBackWPupプラグインのエラーはなくていた。ジョブを直接実行してみると正常にバックアップができていた。

ThinkPadの携帯ネットワークが不安定なので

まだまだThinkPadの携帯ネットワークが不安定である。これはThinkPadを買ったのが失敗したかと思った。わざわざWAN対応でカスタマイズしたのにな。

と、言ってられないので再度対応を考える。レノボのサポートサイトに行っても快活方法は見つからない。Q&Aのサイトはあるけど、サポートはユーザーコミュニティでやっているみたい。

ここから余談。

レノボにすればサポートは、「何かあったらユーザーコミュニティで質問しろよ。詳しいパワーユーザーが答えてくれるぜ。」って感じなのかな。しかし、パワーユーザーっていうのが曲者で、回答内容を見てみると、「あんたの質問内容じゃあ情報が足りない。」とか「あんたの質問は何を言っているかわからない」とか「そのそもこのコミュニティで質問するべきことではない。」とか、初心者からだと凹むような回答が多い。しかもこんな回答とするのが上位の回答数のユーザーと来たもんだから始末が悪い。

まあ、こんなユーザーコミュニティに頼らないで、自力で解決しなければいけないかと思ってしまったりする、これはレノボによる”ユーザースキルパワーアッププログラム”かもしれないな。

さて話しは戻るが。

結局、今のところの解決策として、最新のWANドライバをアップデートすること。2018年7月24日リリースのワイヤレスWANドライバにアップデートしておいた。とりあえずこれでまたまた様子を見ておく。

ドライバの置き場所とかは以下のレノボのサポートサイトで

https://support.lenovo.com/jp/ja/solutions/ht117260

自分のThinkPadの必要なドライバは、ここのリンクからダウンロードできるようだ。あらかじめレノボのユーザーアカウントを作成して、自分のThinkPadをマイプロダクトに登録すること。登録まで多少わかりにくくて手間取るかもしれないけど、がんばって登録してね。

ダウンロードサイトでドライバの自動更新ができるみたいだけど、あらかじめLenovo Service BridgeというThinkPadのシリアルナンバーとか中身をスキャンするソフトをインストールする必要がある。しかしながら、あらかじめインストールされていても、どういう訳かLenovo Service Bridgeが起動してくれない。そのときは、仕方ないので一度Lenovo Service Bridgeを削除してから再インストールしたら無事にスキャンが始まった。

ThinkPadは何かあったら解決が難しいと痛感した。まだまだ問題があるかもな。

追記(2018/07/31)

やはりWANでつながらない。つながっているけどスリープから復帰したときとか、明示的に携帯ネットワークをOFFにするとつながらなくなる。携帯ネットワークでつなぐためには、ThinkPadの再起動が必要になる。再起動すれば、二回に一回はつながるようになる。

さて、Lenovoのサポートをお願いしようかとサポートサイトに行ってみると、連絡先の電話番号が見つからない。自分のThinkPadを登録したマイプロダクトのぺーじには、ユーザーコミュニティと有償サポート、国際サポートのリンクしか出てこない。散々探してみると、どうやら購入後30日しかレノボからテクニカルサポートを受けられないようだ。30日以降は有償になる。とにかくレノボのサポートサイトはわかりにくい。Q&A情報からは必要な情報を取得できなかった。

どうやらレノボは技術的なユーザーサポートは、ユーザーコミュニティに任せてしまっているようだ。ユーザーコミュニティを覗いてみても、そんなに満足できるような回答をされていない。レノボもこのユーザーコミュニティはレノボが運営しておらず、レノボからの回答ではないと謳っている。これではThinkPadを買ってもあとでトラブルがあっても正常に戻すことは一般の人では難しいかもしれない。

追記(2018/08/31)

携帯ネットワークにつながらないときの対処方法の一番は、ThinkPadを再起動することしかなさそう。こんなバカなことがあるかは置いておいて、これはどこに相談するかが問題。Lenovoか? Lenovoのユーザーコミュニティか? それともSIMカードを出しているOCNか? いずれも知らないと言われそう。

最初からWAN対応なんてThinkPadを買わなければよかったと後悔している。そもそもThinkPadを買わなければよかったのかな。携帯ネットワークにつながらないこと以外は、ThinkPad Carbonを気に入っているのだけど。