2011/04/19
カテゴリ : Tech
サーバの基本的な設定ファイルとCentOS、Debian比較
こんにちは、牧野です。
4月になって、アシアルにも新しい人が入ってきて賑やかになった気がします。
さて、今回はサーバの設定についてです。
会社では、CentOS、Debianを使うことが多いです。設定ファイルの位置や用意されているコマンドがディストリビューションごとに異なることがあるので、その点を中心にいくつか紹介したいと思います。
ちなみに、自分が昔好きで使っていたのは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では、例えばプロキシサーバ経由でパッケージを取得したい場合は、次のように書きます。
■デーモン自動起動の設定
○違いがあるもの
・自動起動の追加
/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コマンドでも時刻合わせができます。
■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内にある設定ファイルが有効になります。)
■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など、大切なコマンドが抜けていたりしますが、とりあえずざっと書いてみました。
重要な設定項目をおさえておけば、慣れているディストリビューションを好みで使えばいいのではないかと思います。
4月になって、アシアルにも新しい人が入ってきて賑やかになった気がします。
さて、今回はサーバの設定についてです。
会社では、CentOS、Debianを使うことが多いです。設定ファイルの位置や用意されているコマンドがディストリビューションごとに異なることがあるので、その点を中心にいくつか紹介したいと思います。
ちなみに、自分が昔好きで使っていたのは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など、大切なコマンドが抜けていたりしますが、とりあえずざっと書いてみました。
重要な設定項目をおさえておけば、慣れているディストリビューションを好みで使えばいいのではないかと思います。
コメント
コメントフォーム
トラックバックURI
-
- Debianについて from パソコンについて重い想いを書くページ
- UBUNTSUから分派したOSらしいのだが、これがサクサク動くというので 検...
2011年09月14日 06:22
最近の記事
JavaScriptのクロスドメイン問題対応方法 [2012年05月17日 : 笹亀弘]
JavaScriptのコーディング規約を気軽にチェック [2012年05月14日 : 中川善樹]
誕生日プレゼント [2012年05月10日 : 阿部恵]
イラストでわかる!git入門の入門 [2012年05月09日 : 志田仁美]
【CSS3】HSL色空間による色指定のすゝめ [2012年05月09日 : 橋本章史]
インスピレーションをかきたてるポスターデザインのまとめ記事のまとめ [2012年04月25日 : 鴨田健次]
エンジニアの英会話 〜とっさの一言〜 [2012年04月19日 : 斉藤勝也]
イコライザーをFireworksで描いてみました [2012年04月16日 : 和田記光]
SFNewTech Japan Night のファイナリストに選出されました!(他、もろもろの出展の御案内) [2012年04月06日 : 小林有佳]
使えるとちょっと便利なSSHのTIPS [2012年04月04日 : 牧野克俊]













ですが、
/etc/sysconfig/network-scripts/ifcfg-eth0 がCentOSの設定だと思います。
違いますでしょうか?