サーバー設定 · 6 min read · Nov 03, 2025
完璧なサーバー - Debian 9 (Nginx, BIND, Dovecot, ISPConfig 3.1) - ページ 2
10 Nginx、PHP (PHP-FPM)、および Fcgiwrap のインストール
Nginx は Debian 用のパッケージとして利用可能で、次のようにインストールできます:
apt-get install nginxもし Apache2 がすでにシステムにインストールされている場合は、今すぐ停止してください…
service apache2 stop“ apache2.service を停止できませんでした: Unit apache2.service が読み込まれていません。 “ というメッセージは問題ありません。
… そして Apache のシステム起動リンクを削除します:
systemctl disable apache2その後、nginx を起動します:
service nginx start(もし Apache2 と nginx の両方がインストールされている場合、ISPConfig 3 インストーラーはどちらを使用するか尋ねます - この場合は nginx と答えてください。もしこれらのうちの一方のみがインストールされている場合、ISPConfig は必要な設定を自動的に行います。)
PHP 7 を nginx で動作させるために、PHP-FPM を通じて行います (PHP-FPM (FastCGI プロセスマネージャ) は、特に忙しいサイトに役立つ追加機能を持つ PHP FastCGI の代替実装です)。次のようにインストールします:
apt-get install php7.0-fpmPHP-FPM は、ソケット /var/run/php/php7.0-fpm.sock で FastCGI サーバーを実行するデーモンプロセスです。
PHP で MySQL サポートを得るために、php7.0-mysql パッケージをインストールできます。アプリケーションに必要な他の PHP モジュールもインストールするのが良いアイデアです。次のように利用可能な PHP モジュールを検索できます:
apt-cache search php7必要なものを選択し、次のようにインストールします:
apt-get install php7.0 php7.0-common php7.0-gd php7.0-mysql php7.0-imap php7.0-cli php7.0-cgi php-pear php7.0-mcrypt mcrypt imagemagick libruby php7.0-curl php7.0-intl php7.0-pspell php7.0-recode php7.0-sqlite3 php7.0-tidy php7.0-xmlrpc php7.0-xsl memcached php-memcache php-imagick php-gettext php7.0-zip php7.0-mbstring memcached php7.0-soap php7.0-opcache次に /etc/php/7.0/fpm/php.ini を開きます…
nano /etc/php/7.0/fpm/php.ini… そして cgi.fix_pathinfo=0 とあなたのタイムゾーンを設定します:
[...]
cgi.fix_pathinfo=0
[...]
date.timezone="Europe/Berlin"
[...](利用可能なすべてのタイムゾーンは /usr/share/zoneinfo ディレクトリおよびそのサブディレクトリにあります。)
今、PHP-FPM をリロードします:
service php7.0-fpm reloadnginx で CGI サポートを得るために、Fcgiwrap をインストールします。
Fcgiwrap は、複雑な CGI スクリプトにも対応できる CGI ラッパーで、各 vhost が独自の cgi-bin ディレクトリを使用できるため、共有ホスティング環境で使用できます。
fcgiwrap パッケージをインストールします:
apt-get install fcgiwrapインストール後、fcgiwrap デーモンはすでに起動しているはずです; そのソケットは /var/run/fcgiwrap.socket です。もし実行されていない場合は、fservice fcgiwrap スクリプトを使用して起動できます。
これで完了です!nginx vhost を作成すると、ISPConfig が正しい vhost 設定を行います。
10.1 追加の PHP バージョン
ISPConfig 3.0.5 以降、1 台のサーバーで複数の PHP バージョンを持つことが可能です (ISPConfig を通じて選択可能) これには PHP 5.x および 7.x が含まれます。追加の PHP バージョン (PHP-FPM) を構築し、ISPConfig を設定する方法については、次のチュートリアルを確認してください: How to install PHP 7.1, 7.2 and 5.6 as PHP-FPM & FastCGI for ISPConfig 3 on Debian 9
10.2 phpMyAdmin のインストール
次のように phpMyAdmin をインストールします:
apt-get install phpmyadminインストーラーが “ Web server to reconfigure automatically: “ と尋ねたときは、オプションを選択せずに ok を押してください。
phpmyadmin のためにデータベースを dbconfig-common で設定しますか? <-- yes
phpmyadmin の MySQL アプリケーションパスワード: <-- Enter を押す
データベースの管理ユーザーのパスワード: <-- MySQL の root パスワードを入力これで /usr/share/phpmyadmin/ ディレクトリに phpMyAdmin が見つかります。
ISPConfig 3.1 をインストールした後、次のように phpMyAdmin にアクセスできます:
nginx 用のポート 8081 の ISPConfig アプリ vhost には phpMyAdmin の設定が付属しているため、http://server1.example.com:8081/phpmyadmin または http://server1.example.com:8081/phpMyAdmin を使用して phpMyAdmin にアクセスできます。
ウェブサイトから使用できる /phpmyadmin または /phpMyAdmin エイリアスを使用したい場合、これは Apache よりも少し複雑です。なぜなら nginx にはグローバルエイリアスがないからです (つまり、すべての vhosts に対して定義できるエイリアス)。したがって、phpMyAdmin にアクセスしたい 各 vhost のためにこれらのエイリアスを定義する必要があります。
これを行うには、ISPConfig のウェブサイトのオプションタブの nginx ディレクティブフィールドに次の内容を貼り付けます:
location /phpmyadmin {
root /usr/share/;
index index.php index.html index.htm;
location ~ ^/phpmyadmin/(.+\.php)$ {
try_files $uri =404;
root /usr/share/;
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $request_filename;
include /etc/nginx/fastcgi_params;
fastcgi_param PATH_INFO $fastcgi_script_name;
fastcgi_buffer_size 128k;
fastcgi_buffers 256 4k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
fastcgi_intercept_errors on;
}
location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
root /usr/share/;
}
}
location /phpMyAdmin {
rewrite ^/* /phpmyadmin last;
}もし vhost に対して http s を使用する場合、次のように phpMyAdmin 設定に fastcgi_param HTTPS on; の行を追加する必要があります:
location /phpmyadmin {
root /usr/share/;
index index.php index.html index.htm;
location ~ ^/phpmyadmin/(.+\.php)$ {
try_files $uri =404;
root /usr/share/;
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
fastcgi_param HTTPS on; # <-- この行を追加
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $request_filename;
include /etc/nginx/fastcgi_params;
fastcgi_param PATH_INFO $fastcgi_script_name;
fastcgi_buffer_size 128k;
fastcgi_buffers 256 4k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
fastcgi_intercept_errors on;
}
location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
root /usr/share/;
}
}
location /phpMyAdmin {
rewrite ^/* /phpmyadmin last;
}もし vhost に対して http と https の両方を使用する場合、$https 変数を使用できます。再度 nginx ディレクティブフィールドに移動し、fastcgi_param HTTPS on; の代わりに fastcgi_param HTTPS $https; の行を追加して、http と https のリクエストの両方で phpMyAdmin を使用できるようにします:
location /phpmyadmin {
root /usr/share/;
index index.php index.html index.htm;
location ~ ^/phpmyadmin/(.+\.php)$ {
try_files $uri =404;
root /usr/share/;
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
fastcgi_param HTTPS $https; # <-- この行を追加
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $request_filename;
include /etc/nginx/fastcgi_params;
fastcgi_param PATH_INFO $fastcgi_script_name;
fastcgi_buffer_size 128k;
fastcgi_buffers 256 4k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
fastcgi_intercept_errors on;
}
location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
root /usr/share/;
}
}
location /phpMyAdmin {
rewrite ^/* /phpmyadmin last;
}11 Let’s Encrypt のインストール
ISPConfig 3.1 は無料の SSL 証明書機関 Let’s Encrypt をサポートしています。Let’s Encrypt 機能を使用すると、ISPConfig 内からウェブサイトのために無料の SSL 証明書を作成できます。
cd /usr/local/bin
wget https://dl.eff.org/certbot-auto
chmod a+x certbot-auto
./certbot-auto --install-only12 Mailman のインストール
ISPConfig を使用すると、Mailman メーリングリストを管理 (作成/変更/削除) できます。この機能を利用したい場合は、次のように Mailman をインストールします:
apt-get install mailman少なくとも 1 つの言語を選択します。例:
サポートする言語: <– en (英語)
欠落しているサイトリスト <– Ok
Mailman を開始する前に、mailman という名前の最初のメーリングリストを作成する必要があります:
newlist mailmanroot@server1:~# newlist mailman
リストを運営する人のメールアドレスを入力してください: <– 管理者のメールアドレス、例: [email protected]
初期 mailman パスワード: <– メーリングリストの管理者パスワード
メーリングリストを作成するには、次の行を追加して /etc/aliases (または同等の) ファイルを編集し、newaliases プログラムを実行する必要があります:
mailman メーリングリスト
mailman: “|/var/lib/mailman/mail/mailman post mailman”
mailman-admin: “|/var/lib/mailman/mail/mailman admin mailman”
mailman-bounces: “|/var/lib/mailman/mail/mailman bounces mailman”
mailman-confirm: “|/var/lib/mailman/mail/mailman confirm mailman”
mailman-join: “|/var/lib/mailman/mail/mailman join mailman”
mailman-leave: “|/var/lib/mailman/mail/mailman leave mailman”
mailman-owner: “|/var/lib/mailman/mail/mailman owner mailman”
mailman-request: “|/var/lib/mailman/mail/mailman request mailman”
mailman-subscribe: “|/var/lib/mailman/mail/mailman subscribe mailman”
mailman-unsubscribe: “|/var/lib/mailman/mail/mailman unsubscribe mailman”
Enter を押して mailman オーナーに通知します… <– ENTER
root@server1:~#
その後、/etc/aliases を開きます…
nano /etc/aliases… そして次の行を追加します:
[...]
## mailman メーリングリスト
mailman: "|/var/lib/mailman/mail/mailman post mailman"
mailman-admin: "|/var/lib/mailman/mail/mailman admin mailman"
mailman-bounces: "|/var/lib/mailman/mail/mailman bounces mailman"
mailman-confirm: "|/var/lib/mailman/mail/mailman confirm mailman"
mailman-join: "|/var/lib/mailman/mail/mailman join mailman"
mailman-leave: "|/var/lib/mailman/mail/mailman leave mailman"
mailman-owner: "|/var/lib/mailman/mail/mailman owner mailman"
mailman-request: "|/var/lib/mailman/mail/mailman request mailman"
mailman-subscribe: "|/var/lib/mailman/mail/mailman subscribe mailman"
mailman-unsubscribe: "|/var/lib/mailman/mail/mailman unsubscribe mailman"その後、次のコマンドを実行します:
newaliasesその後、Postfix を再起動します:
service postfix restart次に、Mailman デーモンを起動します:
service mailman startISPConfig 3 をインストールした後、次のように Mailman にアクセスできます:
nginx 用のポート 8081 の ISPConfig アプリ vhost には Mailman の設定が付属しているため、http://server1.example.com:8081/cgi-bin/mailman/admin/
ウェブサイトから Mailman を使用したい場合、これは Apache よりも少し複雑です。なぜなら nginx にはグローバルエイリアスがないからです (つまり、すべての vhosts に対して定義できるエイリアス)。したがって、Mailman にアクセスしたい 各 vhost のためにこれらのエイリアスを定義する必要があります。
これを行うには、ISPConfig のウェブサイトのオプションタブの nginx ディレクティブフィールドに次の内容を貼り付けます:
location /cgi-bin/mailman {
root /usr/lib/;
fastcgi_split_path_info (^/cgi-bin/mailman/[^/]*)(.*)$;
include /etc/nginx/fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
fastcgi_intercept_errors on;
fastcgi_pass unix:/var/run/fcgiwrap.socket;
}
location /images/mailman {
alias /usr/share/images/mailman;
}
location /pipermail {
alias /var/lib/mailman/archives/public;
autoindex on;
}これにより、vhost のために /cgi-bin/mailman/ エイリアスが定義され、http://
http://
13 PureFTPd と Quota のインストール
PureFTPd と quota は次のコマンドでインストールできます:
apt-get install pure-ftpd-common pure-ftpd-mysql quota quotatoolファイル /etc/default/pure-ftpd-common を編集します…
nano /etc/default/pure-ftpd-common… そしてスタートモードが standalone に設定され、VIRTUALCHROOT=true に設定されていることを確認します:
[...]
STANDALONE_OR_INETD=standalone
[...]
VIRTUALCHROOT=true
[...]次に、PureFTPd を構成して FTP および TLS セッションを許可します。FTP は非常に安全でないプロトコルで、すべてのパスワードとすべてのデータが平文で転送されます。TLS を使用することで、通信全体を暗号化でき、FTP をはるかに安全にします。
FTP および TLS セッションを許可する場合は、次のコマンドを実行します:
echo 1 > /etc/pure-ftpd/conf/TLSTLS を使用するために、SSL 証明書を作成する必要があります。私はそれを /etc/ssl/private/ に作成しますので、まずそのディレクトリを作成します:
mkdir -p /etc/ssl/private/その後、次のように SSL 証明書を生成できます:
openssl req -x509 -nodes -days 7300 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem国名 (2 文字コード) [AU]: <– あなたの国名を入力します (例: “DE”)。
州または省名 (フルネーム) [Some-State]: <– あなたの州または省名を入力します。
市名 (例: city) []: <– あなたの市を入力します。
組織名 (例: company) [Internet Widgits Pty Ltd]: <– あなたの組織名 (例: 会社名) を入力します。
組織単位名 (例: section) []: <– あなたの組織単位名 (例: “IT 部門“) を入力します。
共通名 (例: YOUR name) []: <– システムの完全修飾ドメイン名を入力します (例: “server1.example.com”)。
メールアドレス []: <– あなたのメールアドレスを入力します。
SSL 証明書の権限を変更します:
chmod 600 /etc/ssl/private/pure-ftpd.pemその後、PureFTPd を再起動します:
service pure-ftpd-mysql restart/etc/fstab を編集します。私のは次のようになっています (私は、/ のマウントポイントを持つパーティションに usrjquota=quota.user,grpjquota=quota.group,jqfmt=vfsv0 を追加しました):
nano /etc/fstab# /etc/fstab: 静的ファイルシステム情報。
#
# デバイスのユニバーサルユニーク識別子を印刷するには 'blkid' を使用します; これは UUID= とともに使用され、ディスクが追加または削除されても機能するより堅牢な方法です。 fstab(5) を参照してください。
#
# <ファイルシステム> <マウントポイント> <タイプ> <オプション> <ダンプ> <パス>
# / はインストール中に /dev/sda1 にありました
UUID=f539c5cb-624f-4c27-a149-1446a251a453 / ext4 errors=remount-ro,usrjquota=quota.user,grpjquota=quota.group,jqfmt=vfsv0 0 1
# スワップはインストール中に /dev/sda5 にありました
UUID=8d3194e7-edb5-4492-937d-d066b4994baf none swap sw 0 0
/dev/sr0 /media/cdrom0 udf,iso9660 user,noauto 0 0クォータを有効にするには、次のコマンドを実行します:
mount -o remount /quotacheck -avugm
quotaon -avug14 BIND DNS サーバーのインストール
BIND は次のようにインストールできます:
apt-get install bind9 dnsutilsサーバーが仮想マシンの場合、DNSSEC 署名のためにより高いエントロピーを得るために haveged デーモンをインストールすることを強くお勧めします。非仮想サーバーにも haveged をインストールできますが、問題はありません。
apt-get install haveged
systemctl enable haveged
service haveged startこのトピックに関する説明はここにあります。
15 Webalizer と AWStats のインストール
Webalizer と AWStats は次のようにインストールできます:
apt-get install webalizer awstats geoip-database libtimedate-perl libclass-dbi-mysql-perlその後、/etc/cron.d/awstats を開きます…
nano /etc/cron.d/awstats… そしてそのファイル内のすべてをコメントアウトします:
#MAILTO=root
#*/10 * * * * www-data [ -x /usr/share/awstats/tools/update.sh ] && /usr/share/awstats/tools/update.sh
# 静的レポートを生成:
#10 03 * * * www-data [ -x /usr/share/awstats/tools/buildstatic.sh ] && /usr/share/awstats/tools/buildstatic.sh16 Jailkit のインストール
Jailkit は SSH ユーザーを chroot したい場合にのみ必要です。次のようにインストールできます (重要: Jailkit は ISPConfig の前にインストールする必要があります - その後にインストールすることはできません!):
apt-get install build-essential autoconf automake libtool flex bison debhelper binutilscd /tmp
wget http://olivier.sessink.nl/jailkit/jailkit-2.19.tar.gz
tar xvfz jailkit-2.19.tar.gz
cd jailkit-2.19
echo 5 > debian/compat
./debian/rules binary次のように Jailkit.deb パッケージをインストールできます:
cd ..
dpkg -i jailkit_2.19-1_*.deb
rm -rf jailkit-2.19*17 Fail2ban と UFW ファイアウォールのインストール
これはオプションですが推奨されます。なぜなら ISPConfig モニターはログを表示しようとするからです:
apt-get install fail2banFail2ban が PureFTPd と Dovecot を監視できるようにするために、ファイル /etc/fail2ban/jail.local を作成します:
nano /etc/fail2ban/jail.local[pure-ftpd]
enabled = true
port = ftp
filter = pure-ftpd
logpath = /var/log/syslog
maxretry = 3
[dovecot]
enabled = true
filter = dovecot
logpath = /var/log/mail.log
maxretry = 5
[postfix-sasl]
enabled = true
port = smtp
filter = postfix-sasl
logpath = /var/log/mail.log
maxretry = 3その後、fail2ban を再起動します:
service fail2ban restartUFW ファイアウォールをインストールするには、次の apt コマンドを実行します:
apt-get install ufw新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。