MySQLとsambaが死んだお話

先日owncloudというクラウド構築ソフトを入れていまして、試行錯誤の結果某所の設定ファイルをコピーすることで動くようになりました。

コレについては後日紹介したいなと思います。

 

で、やっと構築が終わったので、ロゴでも変えてみるかと思い、とりあえず関係ファイルの入っているディレクトリをsambaで共有しておこうと思いました。

サクッと設定を変えてアクセスしようとしたところ、繋がらない。よくよく確認してみると他の共有フォルダも全くアクセス出来ず、ネットワークのコンピューター一覧でもサーバーが見えない。

でもPINGは通る。

その後すぐこのブログが見られなくなっていることが発覚。owncloudを開くとデーターベース関係のエラー表示で開けない。

ここでmysqlが死んでいることに気が付きました。

mysqlを起動しようとすると失敗していまい、色々検索したりして悩んでおりました。

で、今日もう一度ログをしっかり確認したところ、/tmpの中になにかファイルをつくろうとしてエラーを吐いて落ちていることがわかりました。

じゃあ、ということで、/tmpファイルの権限を777に変更。

すると、mysql起動する!ブログ見れる!owncloud生きてる!samba共有できる!

 

ということで、この3日間くらい悩んでいたことが本日帰宅一分で解決したお話でした。

なお、/tmpの権限は1777してスティッキービットをオンにしておきました。これで誰でも書き込みが可能ですが、書き込みしたユーザー以外には削除できなくなります。

 

しかし、なぜ突然こんなことになったのかは全く不明。心当たりが何もありません。

皆さんもトラブルの際は、やっぱりログをちゃんと読みましょう。

 

追記:

/tmpですが、所有権がwww-data:root、パーミッションは700になっていました。本来であればroot:rootで1777になっているべきだと思うのですが・・・。

しかし、こんなところいじった覚えが全く無い・・・。

nginxのリダイレクト設定について

SSLのお話は置いておいて、忘れてしまいそうなのでnginxのリダイレクトのお話。

www付きのURLでアクセスされた場合、wwwなしのURLにリダイレクトする設定をすると捗ります。

server {
listen 80;
server_name www.example.net;
return 301 https://example.net$request_uri;
}

例えばこんな感じ。

上記の設定をすると、www.example.netに来たアクセスをすべてhttps://example.netにリダイレクトします。

しかし、この状態でサブドメイン(hoge)のページを設定すると、hoge.example.netでアクセスしてもリダイレクトされてしまうようです。

server {
listen 80;
server_name www;
return 301 https://example.net$request_uri;
}

というわけで解決策がこちら。server_nameにwwwのみを指定しています。

どうやら、とにかく一致する文字列があればリダイレクトしてしまうようで、ドメイン名まで書くとすべてリダイレクトされてしまうっぽいです。

で、wwwだけ書いておけば、wwwが付いているアクセスのみをリダイレクトしてくれます。

 

これ、正しいんですかね…?

 

追記

rewriteでリダイレクトする場合も同様の挙動をするようです。

rewrite ^/test/1.html http://example.org/re/1.html permanent;
rewrite ^/test/10.html http://example.org/re/10.html permanent;

この設定では/test/1.htmlに来たアクセスを/re/1.htmlにリダイレクト、/test/10.htmlに来たアクセスを/re/10.htmlにリダイレクトしたいということを書いています。

しかし、この設定では/test/10.htmlに来たアクセスまでもが/re/1.htmlに飛ばされてしまうようです。

上から順に判定していって、ひとつでもその文字が含まれていればその時点でリダイレクトされてしまいます。

rewrite ^/test/10.html http://example.org/re/10.html permanent;
rewrite ^/test/1.html http://example.org/re/1.html permanent;

これを回避するため、このように上下を入れ替えると10は10、1は1とリダイレクトされるようになります。1が10にリダイレクトされちゃいそうな気がするんですが、そういうわけでもないようです。

奥が深い・・・。


お名前.comでドメインを買ったお話

このサイトがwww.pcok.jpでアクセスできるようになりました。なんとjpドメインを買ってしまったわけです。

一年で1980円ですからね。月額に直したら全然負担じゃないですからね(言い訳)

念願のドメインを手に入れたぞ!

なんでかって言うとSSL証明書が欲しかったからなんですけどね。

 

今回ドメインを購入したのはお名前.comなのですが、なんと、DiCEからIPアドレスの更新ができなくなっておりました。買ってから気がついた。

Windows用のクライアントはあるようなのですが、誰がそんなもん使うねんという話で。

もちろんこのクソ仕様になったために困っている人はたくさんおりまして、先駆者もちらほら。

今回参考にさせていただいたのは変更された動的IPアドレスをMyDNS.JPへ自動更新させる – DiCE for Linuxという記事でございます。

まんまこの通りにやったら解決いたしました。

ようはMyDNSにひと通り登録し、そこのDNSサーバーをお名前.comに登録することで無事更新されるようになりました。にしても、ひどい。

また、サブドメインを幾つか追加してみたのですが、DiCEにドメインを更新する設定だけしておけば、基本的には一緒に更新されます。

サブドメインを全く別のIPアドレスに割り当てたい場合は、子IDを作成しそのIDにサブドメインを割り当ててあげましょう。んでそっちのパソコンからDiCEで更新すればおっけーです。

 

こうしてなんとか無事に独自ドメインが使えるようになりましたので、SSL証明書を発行し、httpsなアクセスでも警告がでなくなりました。超!エキサイティング!

その辺のお話はまた今度。

 

ところでMyDNSめっちゃ重い時ないですか…?

 

2021/01/23

スクリプト組んでLinuxから更新している先駆者を発見しました。

お名前.comのDDNSをスクリプトから行う

このスクリプトをちょっといじってcronで定期的に実行することで、更新することができました。

ようやくmydns+お名前という謎構成は脱出できそうです。

 

相変わらずLinux用公式クライアントは出ていないみたい。どうなってんだまじで。

nginx高速化

nginxはそもそも高速なウェブサーバーとして有名ですが、サーバーやネットワークの環境によってはどうしても遅くなっていることがあります。

PageSpeed Insightsでは速度を確認するだけでなく、ユーザビリティや改善方法まで教えてくれます。

で、ここで計測した結果、今ご覧になっているこのページ、76/100という微妙に残念な結果でした。

修正方法の一番上にあったのが「gzipを使用した圧縮」とかなんかそんな感じので、検索してみたところ非常に簡単に導入できそう。

こちらを参考にチューニングをしてみました。

gzipは有効になっていましたが、設定はデフォルトのままだったので一緒に変更しておきました。

適用して再起動すると、88までスコアがアップ。グリーン表示になるギリギリのラインですかね。

 

というわけで、ちょっとだけサーバーが高速化出来ましたよっていうお話でした。

サーバー構築 UBUNTUSERVER編 Hamachi

VPN構築と言えば?そう、Hamachiです。

まずはHamachiをダウンロードしましょう。適当なフォルダを作成して、そこにダウンロードします。

cd ~/Downloads

sudo wget “https://secure.logmein.com/labs/logmein-hamachi_2.1.0.130-1_amd64.deb”

sudo dpkg -i logmein-hamachi_2.1.0.130-1_amd64.deb

で、lsb-coreがないなどというエラーが出ている場合は、

sudo apt-get -f install

して依存関係を解決しておきます。

インストール後は

sudo hamachi login

sudo hamachi set-nick [name]

sudo hamachi attach [mail]

とすると、既存のネットワークに参加することが出来ます。後は別のパソコンからブラウザでログインし、任意のネットワークへ参加させれば完了です。