CUIでのサーバ(VPS)管理で初心者の時に良くわからなかった事まとめ

初めてターミナルの黒い画面を開いた時、そこには不安半分期待半分な自分がいたはずです。

右も左も分からない状態の時に、どんなことにハマったのか。そんな時にどうすれば良いのかについてまとめたいと思います。

なんだか分からないけどサーバが動かないし、どうすれば良いのか分からない

初心者の場合良くある事の一つです。どうすれば良いのかが全く分かりません。何故かと言うとログの場所を知らないからです。

サーバはOSの種類にもよるのですが、フォルダ構造はだいたい決まっています。私の場合はずっとCentOSを使ってきたので、それになれていますが、他のOSであってもまず最初に知るべきはフォルダ構造です。

動かない時に何が必要なのかというと、ログです。特にエラーログが必要になるでしょう。

CentOSの場合は

 /var/log/ 

以下にログファイルがまとまっています。

nginxのアクセスログの場合は /var/log/example.com.access.log  というような位置にあるでしょう。

エラーログも色々です。

ログファイル名内容
 /var/log/messages 一般的なシステム関連のメッセージ
 /var/log/secure セキュリティに関するメッセージ
 /var/log/cron 定期的に実行される処理結果に関するメッセージ
 /var/log/maillog メールに関するメッセージ
 /var/log/spooler 印刷に関するメッセージ
 /var/log/boot.log OS起動時に関するメッセージ

一番お世話になるのは /var/log/messages でしょうか。その次はnginxのエラーログなんかもよく見ます。 /var/log/nginx/error.log

エラーログを見るにはどうするか

Webサーバの場合は、刻一刻とエラーログが吐かれます。これをリアルタイムに知りたいのであれば、tail か lessを使います。

こんな記事がバズったこともありますね。「tail -f」を使うのは情弱、情強は「less +F」を使う 

例えば、 /var/log/messages を監視したいなら

tail -f /var/log/messages

とやるか

less +F /var/log/messages

とやるのです。こうすると、ログがずらずらと流れていくでしょう。サーバが動かないのであれば、リロードしてみると何が起こっているのか分かるのではないかと思います。

エラーログの意味が分からない

あるあるだと思います。エラーログを見ろと言われても何を見たら良いのか分からない。

まず、あたりを付けましょう。どこで出たエラーだろうか。

Webサーバ(nginx/apache/ISS)?MySQL?PHP?iptables?sshd?

これらからログファイルを選択してログファイルを先ほどのtailかlessで開いてみましょう。もう一度ブラウザをリロードしても何も動かないのであれば、そこでのエラーではありません、他をあたりましょう。

次に、エラーログには色んなログが流れます。直接的に関わるログはどれかというのを突き止めましょう。

正しいエラーログが開かれていれば、Webブラウザをリロードした瞬間にログが流れます。その部分に注目してください。

当然、あっという間に流れていってしまうと思いますので、流れたら一度止めましょう。tail も lessもcontrol + cで監視モードが解除されます。それでゆっくりとログを見てみましょう。

怪しい部分があると、だいたいの場合でここのファイルの何行目でエラーが出てるよ!というのが書かれていると思います。ファイルのパスなんかが出てきた場合はそこに注目すると良いでしょう。

まずは焦らずに、どこでエラーが出ているのかを知る事。対処はそれからで遅くはありません。

エラーログでエラーを突き止めたけど、どうすれば良いのか分からない

これも良く有ります。ただ、殆どの場合で対処法はWeb上に公開されています。

ログから、まずはそのエラーメッセージなんかをコピーして検索してみましょう。

その場合に、自分のサーバの独自のフォルダパスなんかは邪魔になるので消しましょう。

例えば、 /var/www/html/example.com/test/test1.php

でphpがエラーを吐いていた場合、/var/www/html/example.com/test/test1.phpというパスは他の人は絶対に違う(ドメイン部分が違います)ので削除してしまいましょう。

これは自分でphpファイルを作った場合ですが、逆にWordpressのプラグインなんかについては削除しすぎてしまうと検索が難しくなります。

/var/www/html/exm.com/wp-content/plugins/testplugin/testplugin.php

みたいなファイルでエラーが出るようになったら、他の人でも変わらない部分だけ残して検索しましょう。この場合だと

wp-content/plugins/testplugin/testplugin.php

が変わらない部分ですね。

nginxでキャッシュが消えない

ngx_cache_purgeをインストールしないとphpなどから削除することが出来ないのですが、これはコマンドラインで削除することが可能です。

rm -Rf /var/cache/nginx/proxy_cache/* 

としてみてください。キャッシュが削除され、新しい姿を拝むことが出来るでしょう。

proxy_cache内には、数字のついたフォルダが幾つか入っていると思いますが、これは全削除しても復活しますので気にしなくて良いですよ。

パスを通すの意味が分からない

何かをインストールした後に、パスを通しましょうと書かれている事が多いです。

何故そんなことを書くかというと、パスを通しておかないと面倒だからですね。

パスを通してあると、命令文だけあればコマンドが実行できます。例えばphpを実行する事を考えてみましょう。本来であれば ./test.phpを実行するには

/usr/bin/php test.php

と書く必要があります。しかし、phpのファイルはここにあります

/usr/bin/php

現在のパスがどうなっているかを見てみましょう

echo $PATH

-bash: /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:

はい。/usr/bin ありますね。パスが通っているので

php test.php

と書いてもきちんと実行されます。

PATHの設定はどこに書くのか

その在処は ~/.bash_profile です。

 vim ~/.bash_profile

PATH=$PATH:$HOME/bin

こんな設定してありませんか?

そいつです。追加する場合は最後の行に追加しましょう。

そもそもプログラムの場所が分からない

プログラムのフルパスが分からないという場合もあるでしょう。そういう時には

which php

のように、whichで探します。

どのプログラムなのかが分からないということは、そもそもパスを通したいのですからあり得ないと思うので、まずはwhichで検索して、そこにパスが通ってなかったら.bash_profileに追記して実行してみてください。

インストール方法が色々あるのはなぜ?

何かを使いたいと思った時に確実にぶつかると思います。

例えば、nginxのインストールを取りましょう。

ソースからインストールする場合もあれば、rpmパッケージでインストールする場合もあるでしょう。

<編集中>

負荷状況を確認したいのにやり方が分からない

サーバを借りてから最初にぶち当たる壁は何か。

「サイトが重い・・・」

これに尽きると思います。

そんな時に、何が理由でサーバに負荷がかかっているのかが分からないと対処のしようがありません。ここでは負荷状況の確認方法を掲載します。

top

一番基本となるコマンドです。

top -c

と、-cを付けると、プロセス名に引数を付けてくれるので何が動いているのか把握しやすいです。

さらに、1を押します。

VPS等では複数CPUコアを利用可能です。利用可能なCPUコアそれぞれがどれだけ負荷をかけられているのかについて理解できます。

6core

こちらは6coreの場合。

参考:Linuxサーバにログインしたらいつもやっているオペレーション

オススメNginx本

nginx実践入門 (WEB+DB PRESS plus) 単行本(ソフトカバー) – 2016/1/16

nginxを現場で活用するための知識を、実践的なノウハウを交えて解説した書籍です。nginxのインストール方法や基本的な設定方法からはじめ、nginxを利用した「静的コンテンツ配信サーバ」「HTTPSサーバ」「Webアプリケーションサーバ」「大規模コンテンツ配信システム」の構築方法をそれぞれ詳しく紹介しています。後半ではnginxサーバのモニタリングやログの収集、そして軽量スクリプト言語Luaでnginxを拡張する方法について解説しているので、nginxをこれから使う方はもちろん、さらに活用したい方にもお勧めです。

公開日:
最終更新日:2016/02/28