アシアルブログ

アシアルの中の人が技術と想いのたけをつづるブログです

サーバの基本的な設定ファイルとCentOS、Debian比較

こんにちは、牧野です。
4月になって、アシアルにも新しい人が入ってきて賑やかになった気がします。

さて、今回はサーバの設定についてです。
会社では、CentOSDebianを使うことが多いです。設定ファイルの位置や用意されているコマンドがディストリビューションごとに異なることがあるので、その点を中心にいくつか紹介したいと思います。
ちなみに、自分が昔好きで使っていたのはVine Linuxでした。デフォルトで日本語設定がいろいろされていて、使いやすかった気がします。
その頃はemacsを使っていたのが、いつの間にかOSはCentOSに、エディタはvimを使うようになりました。


■ネットワークの設定ファイル
 ○共通
  ・使用するネームサーバ
    /etc/resolv.conf
  ・hostsファイル
    /etc/hosts

 ○違いがあるもの 1行目がCentOS、2行目がDebianです。
  ・ネットワークインターフェイスの設定
    /etc/sysconfig/network-scripts/ifcfg-eth0(など、各インターフェイス名)
    /etc/network/interfaces
  ・ホスト名など
    /etc/sysconfig/network
    /etc/hostname


■ユーザ、グループ関係の設定ファイル
 ○共通
  ・ユーザ一覧
    /etc/passwd
  ・グループ一覧
    /etc/group
  ・ユーザ名とパスワード一覧
    /etc/shadow
  ・sudo設定ファイル
    /etc/sudoers

ログイン時のシェルやログインできるユーザかどうかは、/etc/passwdファイルを見るとわかります。


■パッケージ管理関係
 ○違いがあるもの
  ・インストール
    yum install パッケージ名
    apt-get install パッケージ名
  ・削除
    yum remove パッケージ名
    apt-get remove パッケージ名
  ・検索
    yum search キーワード
    apt-cache search キーワード
  ・アップデート(マイナーバージョンアップ)
    yum update (パッケージ名)
    apt-get update (パッケージ名)
  ・アップグレード(メジャーバージョンアップ)
    yum upgrade (パッケージ名)
    apt-get upgrade (パッケージ名)
  ・パッケージコマンド設定ファイル
    /etc/yum.conf
    /etc/apt/apt.conf <= 必要な場合は作成する
  ・レポジトリ設定ファイル
    /etc/yum.repos.d/*.repo
    /etc/apt/sources.list
  ・インストールされているパッケージ一覧
    rpm -qa
    dpkg -l

Debianにはaptitudeコマンドもあります。
CentOSでレポジトリを追加する場合は、/etc/yum.repos.d内に拡張子が.repoのファイルを作成します。
utterramblings(通称??)やdagレポジトリを追加することがあります。
/etc/apt/apt.confでは、例えばプロキシサーバ経由でパッケージを取得したい場合は、次のように書きます。


Acquire::http::Proxy "http://asial.hogehoge:8888/";


■デーモン自動起動の設定
 ○違いがあるもの
  ・自動起動の追加
   /sbin/chkconfig --add (デーモン名); /sbin/chkconfig (デーモン名) on
   /usr/sbin/update-rc.d (デーモン名) defaults
  ・自動起動の解除
   /sbin/chkconfig (デーモン名) off
   /usr/sbin/update-rc.d (デーモン名) remove
  ・自動起動設定の確認
   /sbin/chkconfig --list
   Debianはない?
 ○共通
  ・起動時に実行される

デーモン名には、/etc/init.d内のシェルスクリプト名が入ります。
これは、CentOSの方が便利な気がします。


iptables
 ○ファイアウォール設定
  /etc/sysconfig/iptables

CentOSでは、ファイアウォール設定が上記ファイルに保存されます。
Debianの方は、あまり詳しく知りません。


■ntpd
 ○共通
  ・基本設定ファイル
   /etc/ntp.conf
  ・時刻合わせの確認
   /usr/sbin/ntpq -p

ntpdの設定をしておかないと、いつの間にか時間がずれてトラブルの原因になります。
ntpdを使わない場合、ntpdateコマンドでも時刻合わせができます。


/usr/sbin/ntpdate ntpサーバ名



■logrotate
 ○共通
  ・基本設定ファイル
   /etc/logrotate.conf
  ・各ログファイルごとの設定
   /etc/logrotate.d/*

logrotateを使うと、どこにあるログファイルでもローテーションが可能です。
フレームワークでログファイルに出力しているような場合は、/etc/logrotate.d/にファイルを追加して、ローテーションさせるようにした方がいいと思います。


■crond
 ○共通
  ・そのユーザのcron設定確認コマンド
   /usr/bin/crontab -l
  ・そのユーザのcron設定変更コマンド
   /usr/bin/crontab -e
  ・定期的に実行されるその他cron
   /etc/crontab /etc/cron.d/* /etc/cron.hourly/* /etc/cron.daily/* /etc/cron.weekly/* /etc/cron.monthly/*
 ○違いがあるもの
  ・各ユーザのcronファイル
   /var/spool/cron/ユーザ名
   /var/spool/cron/crontabs/ユーザ名


apache
 ○違いがあるもの
  ・起動スクリプト
   /etc/init.d/httpd start|stop など
   /etc/init.d/apache2 start|stop など
  ・コマンド
   /usr/sbin/apachectl
   /usr/sbin/apache2ctl
  ・基本設定ファイル
   /etc/httpd/conf/httpd.conf
   /etc/apache2/apache2.conf
  ・その他設定ファイル
   /etc/httpd/conf.d/*.conf
   /etc/apache2/conf.d/* /etc/apache2/mods-available/(*.load|*.conf) /etc/apache2/sites-available/*

Debianは他にも/etc/apache2内にいくつかファイルがあり、項目ごとに細かくファイルが分かれている印象があります。
また、各モジュール、バーチャルホストの有効、無効を切り替えるコマンドが用意されているのが特徴的です。
設定ファイルは/etc/apache2/mods-available、/etc/apache2/sites-available内に作成しておきます。
(実際は、/etc/apache2/mods-enabled内、/etc/apache2/sites-enabled内にある設定ファイルが有効になります。)


サイトを有効、無効にする
/usr/sbin/a2ensite ...
/usr/sbin/a2dissite ...
モジュールを有効、無効にする
/usr/sbin/a2enmod ... 
/usr/sbin/a2dismod ...



mysql
 ○違いがあるもの
  ・基本設定ファイル
   /etc/my.cnf
   /etc/mysql/my.cnf

Debianに特徴的なのは、デフォルトで debian-sys-maint ユーザがいることだと思います。
/etc/mysql/debian.cnf
debian-sys-maint ユーザのパスワード等が書かれています。
レプリケーションのために別サーバのmysqlデータディレクトリをコピーした際、mysql起動時にdebian-sys-maintユーザのパスワードが一致せず、エラーが発生したことがありました。


php
 ○違いがあるもの
  ・基本設定ファイル
   /etc/php.ini <= 作成します
   /etc/php5/apache2/php.ini(ウェブ用) /etc/php5/cli/php.ini(コマンドライン用) /etc/php5/conf.d/*.ini(ウェブ、コマンドライン共通)


ネットワーク関係やiptablesなど、大切なコマンドが抜けていたりしますが、とりあえずざっと書いてみました。
重要な設定項目をおさえておけば、慣れているディストリビューションを好みで使えばいいのではないかと思います。