作業記録メモ

Linuxサーバー立ち上げ設定等のメモ(忘れないための作業記録)

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。




再起動時のディスクチェック

借りているVPSをたまにはアップデートしようと軽い気持ちでリブート

暫くしてもサーバが使えない、、、
そう言えば、/dev/xxx とかってのがコンソール接続時に出ていたような、、、

15分位して無事に使えるようになったが念の為に確認

tune2fs -l /dev/xxx で確認してみるとやはりディスクのチェックが掛かっていたみたい

次からは勝手にチェックが掛からないように設定変更

tune2fs -c -1 /dev/xxx で回数によるチェックを無効に
tune2fs -i 0 /dev/xxx で時間によるチェックを無効に
※ Ubuntu 12.04 いずれも root 権限で

とりあえず次からは再起動時に勝手にディスクチェックが掛からなくはなったので一安心
どのタイミングでディスクチェックするかは自分で決めたほうがいいね




スポンサーサイト

NGINXでBASIC認証を設定してハマったこと

NGINXでBASIC認証を設定してみよう!


元々の設定がこんな感じであったわけですが
~ 省略 ~
location / {
    try_files $uri $uri/ /index.html;
}

location ~ \.php$ {
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    include fastcgi_params;
}

location ~ /\.ht {
    deny all;
}
~ 省略 ~

あちこちで参照したところ「auth_basic」と「auth_basic_user_file」なるものを記述すればOKな感じで書いてあったので早速以下の記述を追加(赤字の箇所
~ 省略 ~
auth_basic "secret";
auth_basic_user_file "/path/to/.htpasswd";


location / {
    try_files $uri $uri/ /index.html;
}

location ~ \.php$ {
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    include fastcgi_params;
}

location ~ /\.ht {
    deny all;
}
~ 省略 ~

するとまんまと全てのページが認証ページに、、、

サブドメイン切ってそこは全て認証ページにって事であればこれでOKなんでしょうが、特定のパスだけに適応したい場合はこれでは使えないので以下のように修正(赤字の箇所
~ 省略 ~
location / {
    try_files $uri $uri/ /index.html;
}

location /secret/ {
    auth_basic "secret";
    auth_basic_user_file "/path/to/.htpasswd";
}


location ~ \.php$ {
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    include fastcgi_params;
}

location ~ /\.ht {
    deny all;
}
~ 省略 ~

で、http://hoge/path/to/secret/ と実行したところBASIC認証のダイアログが!!

これでスッカリ安心しきっていたのですが次の日に認証パスに入っている「adminer.php」を開くと認証が出てこないで直接実行されてしまうという自体に、、、

で、あれこれ試行錯誤している時にみたこちらのページによると location の優先順位がなんたらと

要するにどの location が選ばれるかはプレフィックスが = > ^~ > ~,~* > なし の順番で評価され、同じ優先度であれば先に記述しているものでマッチするものが選ばれる
ただしプレフィックスなし(前方一致)の場合は最長でマッチするものが選ばれるということなようです

なので上記設定の場合 http://hoge.path/to/secret/ であれば location /secret/ が選択されますが、http://hoge/path/to/secret/adminer.php だと ~ を含んでいる location ~ \.php$ が選択されてしまう訳です、、、orz

なので以下のように修正してみる(赤字の箇所
~ 省略 ~
location / {
    try_files $uri $uri/ /index.html;
}

location ~ /secret/ {
    auth_basic "secret";
    auth_basic_user_file "/path/to/.htpasswd";
}


location ~ \.php$ {
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    include fastcgi_params;
}

location ~ /\.ht {
    deny all;
}
~ 省略 ~

すると http://hoge.path/to/secret/ でも http://hoge/path/to/secret/adminer.php でもBASIC認証のダイアログがシャキーン!と表示(この場合 /secret/ だと全て認証になっちゃいますが、、、)
ひとまずめでたしめでたし!!

が、喜びもつかの間、、、
IDとPWを入力したところ adminer.php のダウンロードが開始されるという自体に、、、

色々と考えた挙句 location ~ /tools/ が適用されているから location ~ \.php$ が適用されていないって結論で以下のように修正(赤字の箇所
~ 省略 ~
location / {
    try_files $uri $uri/ /index.html;
}

location ~ /secret/.*\.php$ {
    auth_basic "secret";
    auth_basic_user_file "/path/to/.htpasswd";
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    include fastcgi_params;
}


location ~ /secret/ {
    auth_basic "secret";
    auth_basic_user_file "/path/to/.htpasswd";
}


location ~ \.php$ {
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    include fastcgi_params;
}

location ~ /\.ht {
    deny all;
}
~ 省略 ~

一応上手く実行されるようにはなったもののなんとも長ったらしい設定になってしまった、、、(この記事も)
もっとシンプルに書く方法ってないのかな?



テーマ:サーバー - ジャンル:コンピュータ

PostgreSQLの接続数を増やすとサービスがエラーになる

PostgreSQL で接続を増やす必要があった場合に問題があったので記録

max_connections のデフォルトが 100 になっていたので、ユーザー数の増加に伴い設定を変更してみる。

ざっくりと接続数を増やしてみて、サービスを再起動してみると

FATAL: could not create shared memory segment: Invalid argumen


いきなりエラーが出てきて、PostgreSQL のサービスが起動しない、、、

こりゃイカンと設定を元に戻してひとまず復旧

エラーの内容を調べてみると、エラーに表示されてある通りですが、shared memory が確保できないようで、、、
カーネルのパラメータを変更してやる必要があるみたい、、、

sysctl -a|grep -i kernel.


で調べてみると、Ubuntu10.04 の初期値では shmmax の値は 32M となっており、これが少ないために上のエラーが発生しているみたい

サーバ自体のメモリはフンダンに積んであったのにこれじゃあきません、、、

/etc/sysctl.conf を開いて、値の編集を行う(設定されてある行はなかったので一番最後に追加)

kernel.shmmax=134217728


とりあえず 128M(1024x1024x128) 位にしてみる

OSの再起動を実行したところ、今度は接続数を増やしているにも関わらず PostgreSQL のサービスが無事に起動

いやはや、よかったよかった、、、



詳しい計算等はここを参照




テーマ:UNIX/Linux - ジャンル:コンピュータ

Ubuntu Sever 立ち上げ

自鯖を立てようと決めた!

まずはサーバ構築だ
OSはLinuxのUbuntu8.04決定、ハードの都合もあるので、今回はVMWareに構築することに、
まずはUbuntuのディストリビューションのダウンロード
http://www.ubuntulinux.jp/products/WhatIsUbuntu/serveredition

で、お次はVMwareでUbuntu用のVirtualマシン作成、ダウンロードしてきたisoファイルでbootして、インストール開始

おっ セットアップの最初のほうでサーバのパッケージに見知らぬものが、、、
LAMPってなんだ?
さっそく ぐぐる ・・・
なんだ LAMP(Linux, Apache, MySQL, PHP)の事か、、
てか、上のダウンロードしてくるところにも書いてあるじゃん絵文字名を入力してください

この調子じゃ先が思いやられるので、やったことは書いておこうとFC2にブログ申請して、メモ書きスタート



FC2Ad

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。