サーバー設定 · 5 min read · Dec 18, 2025
完璧なサーバー - Debian 9 (Stretch) と Apache、BIND、Dovecot、PureFTPD、ISPConfig 3.1 - ページ 2

10 Apache2、PHP、FCGI、suExec、Pear、phpMyAdmin、および mcrypt のインストール
Apache2、PHP5、phpMyAdmin、FCGI、suExec、Pear、および mcrypt は次のようにインストールできます:
apt-get -y install apache2 apache2-doc apache2-utils libapache2-mod-php php7.0 php7.0-common php7.0-gd php7.0-mysql php7.0-imap phpmyadmin php7.0-cli php7.0-cgi libapache2-mod-fcgid apache2-suexec-pristine php-pear php7.0-mcrypt mcrypt imagemagick libruby libapache2-mod-python 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 libapache2-mod-passenger php7.0-soap次の質問が表示されます:
Web server to reconfigure automatically: <- apache2
Configure database for phpmyadmin with dbconfig-common? <- yes
Enter the phpmyadmin application password? <- Just press enter 次に、Apache モジュール suexec、rewrite、ssl、actions、および include を有効にするために次のコマンドを実行します(WebDAV を使用する場合は dav、dav_fs、および auth_digest も追加します):
a2enmod suexec rewrite ssl actions include dav_fs dav auth_digest cgi headersサーバーが HTTPOXY 脆弱性を通じて攻撃されないようにするために、設定ファイル /etc/apache2/conf-available/httpoxy.conf を追加して、HTTP_PROXY ヘッダーを Apache 全体で無効にします。
nano /etc/apache2/conf-available/httpoxy.conf次の内容をファイルに貼り付けます:
RequestHeader unset Proxy early
次のコマンドを実行してモジュールを有効にします:
a2enconf httpoxy
service apache2 restart10.1 HHVM (HipHop Virtual Machine) のインストール
Debian 9 用の HHVM パッケージはまだ利用できません。HHVM はオプションの PHP モードであるため、サーバーはそれなしでも動作しますが、ウェブサイトに対して PHP モード HHVM を使用することはできません。
10.2 SuPHP
SuPHP はもう Debian 9 では利用できません。SuPHP 関数は古くなっており、ISPConfig からも削除されます。SuPHP の代わりに、利用可能な PHP モード PHP-FPM または PHP-FCGI を suexec と一緒に使用してください。
11 Let’s Encrypt のインストール
ISPConfig 3.1 は無料の SSL 証明書機関 Let’s Encrypt をサポートしています。Let’s Encrypt 機能を使用すると、ISPConfig 内からウェブサイト用の無料 SSL 証明書を作成できます。
これから Let’s Encrypt のサポートを追加します。
cd /usr/local/bin
wget https://dl.eff.org/certbot-auto
chmod a+x certbot-auto
./certbot-auto --install-onlyLE のインストール以外に必要な手順はありません。ウェブサイトの SSL 証明書は、ウェブサイトを追加するときに ISPConfig によって作成されます。
12 PHP-FPM のインストール
Apache で PHP-FPM を使用するには、デフォルトでインストールされている mod_proxy_fcgi Apache モジュールを有効にする必要があります。PHP-FPM を次のようにインストールできます:
apt-get -y install php7.0-fpmモジュールを有効にして Apache を再起動することを確認してください:
a2enmod actions proxy_fcgi alias
service apache2 restart12.2 PHP Opcode Cache のインストール (オプション)
Opcache は PHP 中間コードをキャッシュおよび最適化するための無料の PHP opcode キャッシャーです。APCu は、Opcache 用の APC 互換関数を提供する互換モジュールであり、多くの CMS キャッシングシステムで使用されています。PHP ページを高速化するために、これらの PHP 拡張機能をインストールすることをお勧めします。
APCu は次のようにインストールできます:
apt-get -y install php7.0-opcache php-apcuその後、Apache を再起動します:
service apache2 restart13 Mailman のインストール
ISPConfig を使用すると、Mailman メーリングリストを管理(作成/変更/削除)できます。この機能を利用したい場合は、次のように Mailman をインストールします:
apt-get install mailman少なくとも一つの言語を選択します。例:
Languages to support: <-- en (English)
Missing site list <-- OkMailman を開始する前に、mailman という最初のメーリングリストを作成する必要があります:
newlist mailmanroot@server1:~# newlist mailman
Enter the email of the person running the list: <-- admin email address, e.g. [email protected]
Initial mailman password: <-- admin password for the mailman list
To finish creating your mailing list, you must edit your /etc/aliases (or
equivalent) file by adding the following lines, and possibly running the
`newaliases' program:
## mailman mailing list
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
Hit enter to notify mailman owner... <-- ENTER
root@server1:~#その後、/etc/aliases を開きます…
nano /etc/aliases… 次の行を追加します:
[...]
## mailman mailing list
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 の Apache 設定を有効にする必要があります:
ln -s /etc/mailman/apache.conf /etc/apache2/conf-enabled/mailman.confこれにより、すべての Apache vhosts に対して /cgi-bin/mailman/ のエイリアスが定義され、http://server1.example.com/cgi-bin/mailman/admin/ でリストの Mailman 管理インターフェースにアクセスでき、http://server1.example.com/cgi-bin/mailman/listinfo/ でメーリングリストのユーザー用のウェブページにアクセスできます。
http://server1.example.com/pipermail ではメーリングリストのアーカイブを見つけることができます。
その後、Apache を再起動します:
service apache2 restart次に、Mailman デーモンを開始します:
service mailman start14 PureFTPd と Quota のインストール
PureFTPd と quota は次のコマンドでインストールできます:
apt-get install pure-ftpd-common pure-ftpd-mysql quota quotatoolPureFTPd 用の dhparam ファイルを作成します:
openssl dhparam -out /etc/ssl/private/pure-ftpd-dhparams.pem 2048ファイル /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.pemCountry Name (2 letter code) [AU]: <-- Enter your Country Name (e.g., "DE").
State or Province Name (full name) [Some-State]: <-- Enter your State or Province Name.
Locality Name (eg, city) []: <-- Enter your City.
Organization Name (eg, company) [Internet Widgits Pty Ltd]: <-- Enter your Organization Name (e.g., the name of your company).
Organizational Unit Name (eg, section) []: <-- Enter your Organizational Unit Name (e.g. "IT Department").
Common Name (eg, YOUR name) []: <-- Enter the Fully Qualified Domain Name of the system (e.g., "server1.example.com").
Email Address []: <-- Enter your Email Address.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: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
#
# / was on /dev/sda1 during installation
UUID=f539c5cb-624f-4c27-a149-1446a251a453 / ext4 errors=remount-ro,usrjquota=quota.user,grpjquota=quota.group,jqfmt=vfsv0 0 1
# swap was on /dev/sda5 during installation
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 -avug15 BIND DNS サーバーのインストール
BIND は次のようにインストールできます:
apt-get install bind9 dnsutilsサーバーが仮想マシンの場合、DNSSEC 署名のためにより高いエントロピーを得るために haveged デーモンをインストールすることを強くお勧めします。非仮想サーバーでも haveged をインストールできますが、問題はありません。
apt-get install havegedこのトピックに関する説明はここにあります。
16 Webalizer と AWStats のインストール
Webalizer と AWStats は次のようにインストールできます:
apt-get install webalizer awstats geoip-database libclass-dbi-mysql-perl libtimedate-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
# Generate static reports:
#10 03 * * * www-data [ -x /usr/share/awstats/tools/buildstatic.sh ] && /usr/share/awstats/tools/buildstatic.sh17 Jailkit のインストール
Jailkit は SSH ユーザーを chroot したい場合にのみ必要です。次のようにインストールできます:
apt-get install build-essential autoconf automake libtool flex bison debhelper binutilscd /tmp
wget http://olivier.sessink.nl/jailkit/jailkit-2.20.tar.gz
tar xvfz jailkit-2.20.tar.gz
cd jailkit-2.20
echo 5 > debian/compat
./debian/rules binary次のように Jailkit.deb パッケージをインストールできます:
cd ..
dpkg -i jailkit_2.20-1_*.deb
rm -rf jailkit-2.20*18 fail2ban と UFW ファイアウォールのインストール
これはオプションですが推奨されます。なぜなら、ISPConfig モニターがログを表示しようとするからです:
apt-get install fail2banPureFTPd と Dovecot を監視するために fail2ban を設定するには、ファイル /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新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。