サーバー設定 · 2 min read · Sep 22, 2025

完璧なサーバー – Apache2、Postfix、Dovecot、Pure-FTPD、BIND、ISPConfig 3を搭載したCentOS 7.1

このチュートリアルでは、CentOS 7.1 (64Bit) サーバーにISPConfig 3をインストールする方法を示します。ISPConfig 3は、次のサービスをWebブラウザを通じて構成できるWebホスティングコントロールパネルです: Apache Webサーバー、Postfixメールサーバー、MySQL、BINDネームサーバー、PureFTPd、SpamAssassin、ClamAV、Mailmanなど。バージョン3.0.4以降、ISPConfigはApacheに加えてnginx Webサーバーの完全サポートを提供します。このチュートリアルでは、nginxではなくApacheを使用するサーバーのセットアップをカバーします。

1 要件

このようなシステムをインストールするには、次のものが必要です:

  • CentOS 7.1の最小サーバーシステム。これは、私たちのCentOS 7.1最小サーバーチュートリアルに記載されているように、ゼロからインストールされたサーバーか、最小のCentOS 7.1セットアップがインストールされたホスティング会社の仮想サーバーまたはルートサーバーである必要があります。
  • 高速なインターネット接続。

2 予備ノート

このチュートリアルでは、ホスト名server1.example.com、IPアドレス192.168.1.100、ゲートウェイ192.168.1.254を使用します。これらの設定はあなたの環境によって異なる場合があるため、適宜置き換える必要があります。

3 キーボードレイアウトの設定

サーバーのキーボードレイアウトがあなたのキーボードと一致しない場合、正しいキーボードに切り替えることができます(私の場合はドイツ語キーボードレイアウトのため「de」):

localectl set-keymap de

すべての利用可能なキーマップのリストを取得するには、次のコマンドを実行します:

localectl list-keymaps

このチュートリアルの最後にISPConfigをインストールしたいと思います。ISPConfigには、私がファイアウォールとして使用したいBastilleファイアウォールスクリプトが付属しているため、デフォルトのCentOSファイアウォールを無効にします。もちろん、CentOSファイアウォールを有効にして、必要に応じて構成することもできます(ただし、その場合は、後で他のファイアウォールを使用しない方が良いでしょう。おそらくCentOSファイアウォールと干渉するためです)。

次のコマンドを実行して、CentOSファイアウォールを停止し、無効にします:

yum -y install net-tools  
systemctl stop firewalld.service  
systemctl disable firewalld.service

次に、ファイアウォールが本当に無効になっているか確認する必要があります。そのためには、次のコマンドを実行します:

iptables -L

出力は次のようになります:

[root@server1 ~]# iptables -L  
Chain INPUT (policy ACCEPT)  
target prot opt source destination
Chain FORWARD (policy ACCEPT)  
target prot opt source destination
Chain OUTPUT (policy ACCEPT)  
target prot opt source destination

または、firewall-cmdコマンドを使用します:

firewall-cmd --state
[root@server1 ~]# firewall-cmd --state  
not running  
[root@server1 ~]#

次に、ネットワーク構成エディタと、次のステップで構成ファイルを編集するために使用するシェルベースのエディタ「nano」をインストールします:

yum -y install nano wget NetworkManager-tui

インストール中にネットワークカードを構成しなかった場合は、今すぐ行うことができます。次のコマンドを実行します:

nmtui

… そして「接続を編集」を選択します:

ネットワークインターフェースを選択します:

次に、ネットワークの詳細を入力します - DHCPを無効にし、静的IPアドレス、ネットマスク、ゲートウェイ、および1つまたは2つのネームサーバーを入力し、OKを押します:

次に、ネットワーク設定で行った変更を確認するためにOKを選択します

そして、nmtuiネットワーク構成ツールを閉じるためにQuitを選択します。

次に、インストーラーがIPアドレスを正しく取得したかどうかを確認するために、次のコマンドを実行します:

ifconfig
[root@server1 ~]# ifconfig
ens33: flags=4163  mtu 1500
        inet 192.168.1.100  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::20c:29ff:fecd:cc52  prefixlen 64  scopeid 0x20

        ether 00:0c:29:cd:cc:52  txqueuelen 1000  (Ethernet)
        RX packets 55621  bytes 79601094 (75.9 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 28115  bytes 2608239 (2.4 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10
        loop  txqueuelen 0  (Local Loopback)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ネットワークカードがそこに表示されない場合、起動時に有効になっていない可能性があります。この場合、ファイル/etc/sysconfig/network-scripts/ifcfg-eth0を開きます。

nano /etc/sysconfig/network-scripts/ifcfg-ens33

ONBOOTをyesに設定します:

[...]  
ONBOOT=yes  
[...]  

そしてサーバーを再起動します。

/etc/resolv.confを確認して、以前に構成したすべてのネームサーバーがリストされているか確認します:

cat /etc/resolv.conf

ネームサーバーが欠けている場合は、次のコマンドを実行して再度追加します:

nmtui

次に、構成に進みます…

4 /etc/hostsの調整

次に、/etc/hostsを編集します。次のようにします:

nano /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4  
192.168.1.100   server1.example.com     server1  
  
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

5 SELinuxの無効化

SELinuxは、拡張セキュリティを提供するCentOSのセキュリティ拡張です。私の意見では、セキュアなシステムを構成するために必要ありませんし、通常は利点よりも問題を引き起こすことが多いです(あるサービスが期待通りに動作しなかったために1週間のトラブルシューティングを行った後、すべてが正常で、SELinuxが問題を引き起こしていたことがわかることを考えてみてください)。したがって、私はそれを無効にします(ISPConfigを後でインストールしたい場合は必須です)。

/etc/selinux/configを編集し、SELINUX=disabledに設定します:

nano /etc/selinux/config
# このファイルは、システム上のSELinuxの状態を制御します。
# SELINUX=は次の3つの値のいずれかを取ることができます:
#     enforcing - SELinuxセキュリティポリシーが強制されます。
#     permissive - SELinuxは強制する代わりに警告を表示します。
#     disabled - SELinuxポリシーはロードされません。
SELINUX=disabled
# SELINUXTYPE=は次の2つの値のいずれかを取ることができます:
#     targeted - 対象プロセスが保護されます。
#     mls - マルチレベルセキュリティ保護。
SELINUXTYPE=targeted

その後、システムを再起動する必要があります:

reboot

6 追加リポジトリの有効化とソフトウェアのインストール

まず、ソフトウェアパッケージのGPGキーをインポートします:

rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY*

次に、CentOSシステムでEPELリポジトリを有効にします。チュートリアルの過程でインストールする多くのパッケージは、公式のCentOS 7リポジトリにはありません:

yum -y install epel-release
yum -y install yum-priorities

/etc/yum.repos.d/epel.repoを編集します…

nano /etc/yum.repos.d/epel.repo

… そして[epel]セクションにpriority=10の行を追加します:

[epel]
name=Extra Packages for Enterprise Linux 7 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch
failovermethod=priority
enabled=1
priority=10
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
[...]

次に、システム上の既存のパッケージを更新します:

yum update

次に、後で必要なソフトウェアパッケージをインストールします:

yum -y groupinstall 'Development Tools'

7 クォータ

(私が選んだパーティショニングスキームが異なる場合は、この章を調整して、クォータが必要なパーティションに適用されるようにしてください。)

クォータをインストールするには、次のコマンドを実行します:

yum -y install quota

次に、ウェブサイト(/var/www)とメールデータ(var/vmail)が保存されているファイルシステムでクォータがすでに有効になっているかどうかを確認します。この例のセットアップでは、1つの大きなルートパーティションがあるため、’ / ‘を検索します:

mount | grep ' / '
[root@server1 ~]# mount | grep ' / '  
/dev/mapper/centos-root on / type xfs (rw,relatime,attr2,inode64,noquota)  
[root@server1 ~]#

別の/varパーティションがある場合は、次のようにします:

mount | grep ' /var '

その行に「 noquota 」という単語が含まれている場合は、次の手順に進んでクォータを有効にします。

/ (ルート) パーティションでのクォータの有効化

通常、/etc/fstabファイルでクォータを有効にしますが、ファイルシステムがルートファイルシステム「/」の場合、クォータはLinuxカーネルのブートパラメータによって有効にする必要があります。

grub設定ファイルを編集します:

nano /etc/default/grub

GRUB_CMDLINE_LINUXで始まる行を検索し、コマンドラインパラメータにrootflags=uquota,gquotaを追加して、結果の行が次のようになるようにします:

GRUB_CMDLINE_LINUX="rd.lvm.lv=centos/swap vconsole.font=latarcyrheb-sun16 rd.lvm.lv=centos/root crashkernel=auto  vconsole.keymap=us rhgb quiet rootflags=uquota,gquota"

次に、次のコマンドを実行して変更を適用します。

cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg_bak  
grub2-mkconfig -o /boot/grub2/grub.cfg

そしてサーバーを再起動します。

reboot

次に、クォータが有効になっているかどうかを確認します:

mount | grep ' / '
[root@server1 ~]# mount | grep ' / '  
/dev/mapper/centos-root on / type xfs (rw,relatime,attr2,inode64,usrquota,grpquota)  
[root@server1 ~]#

クォータがアクティブな場合、マウントオプションリストに「 usrquota,grpquota 」が表示されます。

別の/varパーティションでのクォータの有効化

別の/varパーティションがある場合は、/etc/fstabを編集し、/パーティション(/dev/mapper/centos-var)に、uquota,gquotaを追加します:

nano /etc/fstab
  
#  
# /etc/fstab  
# anacondaによって2014年9月21日16:33:45に作成されました  
#  
# 参照によってアクセス可能なファイルシステムは、'/dev/disk'の下に維持されます  
# 詳細については、manページfstab(5)、findfs(8)、mount(8)、および/またはblkid(8)を参照してください  
#  
/dev/mapper/centos-root /                       xfs     defaults        1 1  
/dev/mapper/centos-var /var                     xfs     defaults,uquota,gquota        1 2  
UUID=9ac06939-7e43-4efd-957a-486775edd7b4 /boot                   xfs     defaults        1 3  
/dev/mapper/centos-swap swap                    swap    defaults        0 0

次に、次のコマンドを実行します:

mount -o remount /var
quotacheck -avugm  
quotaon -avug

クォータを有効にします。クォータが有効なパーティションがないというエラーが表示された場合は、次に進む前にサーバーを再起動してください。

8 Apache、MySQL、phpMyAdminのインストール

必要なパッケージを1つのコマンドでインストールできます:

yum -y install ntp httpd mod_ssl mariadb-server php php-mysql php-mbstring phpmyadmin
Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。