the glue

やってみたことで忘れそうなこと、役立ちそうなことなどをまとめています。たまに何気ない日常の話もします。

rails で migrate がコケる

経緯

Railsrake db:migrate が突然コケるようになってすこしハマったのでメモ。

Table 'performance_schema.session_variables' doesn't exist

とのこと。
確かにそのようなテーブルはありませんでした。

対応

stackoverflow.com

結局 StackOverflow に書いてあったままですが、どうやらmysqlのアップデートをしたせいなようです。

$ mysql_upgrade -u root -p --force
$ mysql.server restart

でmigrateが通るようになりました。

OS Xのメニューバーがフリーズする

OS X Yosemite導入からだったと思うんですが、とにかくメニューバーが反応しなくなります。
Wi-Fiアイコンをクリックしてもなにも出てこなかったり、IMEをOn/Offしても表示が変わらなかったり、
ひどいときにはバッテリー残量と時計表示がいつまでも変化せず、待ち合わせ時間に遅れた←りして困っていました。

たぶんDropboxATOKあたりが悪い気がする(違ったら済みません)なぁとは思っているんですが、
とにかくいっこうに改善しないので、対症療法として以下で解決しました。

SystemUIServer を kill する

コマンドラインからやってもいいのですが、とにかくSystemUIServerというプロセスをkillします。
このプロセスはkillすると自動で起動するので、都合再起動になります。

SpotLightあたりからアクティビティモニタを開き、どのタブでもいいですがSystemUIServerというプロセスを探します。
見つけたらダブルクリックして、Quitボタンで強制終了しましょう

f:id:sweep3092:20151109154416p:plain

killすると再起動してSystemUIServerが再び一覧に現れます。
これでメニューバーのアイコンが反応するようになっているはずです。

これ、iMac 27 mid 2011では現れないんですが、MacBook AirMacBook Pro Retinaでは良く経験します。
対症療法しかしらないのですが、何か根本的な解決はないんでしょうか。。。
どなたかご存じでしたら是非知らせてくださいませ。

nginxでベーシック認証

タイトル通りです。
普段Apacheはあまり使わないのですが、BASIC認証(でいいや)をかける必要が出てきたのでついでに書いておきます。

環境

  • Ubuntu 14.04
  • nginxがインストール済み

手順

1. htpasswdコマンドを使えるようにする

Debian系(Ubuntuとか)

sudo apt-get install apache2-utils

RHEL系(CentOSとか)

sudo yum install htpasswd

2. .htpasswdファイルを作成

.htpasswdファイルを作成します。
内容はユーザー名:パスワードのペアになりますが、パスワードは暗号化できます。(認証が暗号化されるわけではない)
今回はSHA-1で暗号化します。

htpasswd -nbs ユーザー名 パスワード > .htpasswd

3. nginx.confを書き換え

こんな感じ

location / {
    root   /usr/share/nginx/html;
    index  index.html index.htm index.php;

    auth_basic  "basic auth";  # 認証の時に表示されるメッセージ
    auth_basic_user_file  ".htpasswd" # 先ほど作成した.htpasswdファイルのパス
}

4. nginxを再起動

sudo service nginx restart