サーバー設定 · 6 min read · Nov 28, 2025
完璧なサーバー - Ubuntu 17.04 (Zesty Zapus) と Apache, PHP, MySQL, PureFTPD, BIND, Postfix, Dovecot および ISPConfig 3.1 - ページ 2
8. Apache, PHP, phpMyAdmin, FCGI, SuExec, Pear, および mcrypt のインストール
Apache2, PHP 7, 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次の質問が表示されます:
Web server to reconfigure automatically: <-- apache2
Configure database for phpmyadmin with dbconfig-common? <-- Yes
MySQL application password for phpmyadmin: <-- Press enter 次に、Apache モジュール suexec, rewrite, ssl, actions, および include (WebDAV を使用したい場合は dav, dav_fs, および auth_digest も) を有効にするために次のコマンドを実行します:
a2enmod suexec rewrite ssl actions include cgia2enmod dav_fs dav auth_digest headersサーバーが HTTPOXY 脆弱性を通じて攻撃されないように、apache で HTTP_PROXY ヘッダーをグローバルに無効にします。nano で新しい httpoxy.conf ファイルを作成します:
nano /etc/apache2/conf-available/httpoxy.confこの内容をファイルに貼り付けます:
RequestHeader unset Proxy early
次のコマンドを実行して設定ファイルを有効にします:
a2enconf httpoxyその後、Apache を再起動します:
service apache2 restartISPConfig を通じて作成されたウェブサイトで拡張子 .rb の Ruby ファイルをホストしたい場合は、/etc/mime.types の行 application/x-ruby rb をコメントアウトする必要があります:
nano /etc/mime.types[...]
#application/x-ruby rb
[...](これは .rb ファイルのみに必要です; 拡張子 .rbx の Ruby ファイルはそのままで動作します。)
その後、Apache を再起動します:
service apache2 restart8.1 PHP Opcode キャッシュ (オプション)
Opcache は PHP 中間コードをキャッシュおよび最適化するための無料の PHP opcode キャッシャーです。APCu は、Opcache 用の APC 互換関数を提供する互換モジュールで、多くの CMS キャッシングシステムで使用されています。PHP ページの速度を向上させるために、これらの PHP 拡張をインストールすることをお勧めします。
APCu は以下のようにインストールできます:
apt-get -y install php7.0-opcache php-apcu今、Apache を再起動します:
service apache2 restart8.2 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 restart8.3 追加の PHP バージョン
1 台のサーバーで複数の PHP バージョンを持つことが可能です (ISPConfig を通じて選択可能) これらは FastCGI および PHP-FPM を通じて実行できます。追加の PHP バージョン (PHP-FPM および FastCGI) を構築し、ISPConfig を構成する方法については、次のチュートリアルを確認してください: https://www.howtoforge.com/tutorial/how-to-install-php-5-6-on-ubuntu-16-04/ (Ubuntu 16.10 でも動作します)。
10.1 HHVM (HipHop Virtual Machine) のインストール (オプション)
このステップでは、apt を使用して HHVM をインストールします。HHVM は Facebook によって開発された高速 PHP エンジンです。
apt-get -y install hhvm9. Let’s Encrypt のインストール
ISPConfig 3.1 には、無料の SSL 証明書機関 Let’s Encrypt の組み込みサポートがあります。Let’s Encrypt 機能を使用すると、ISPConfig でウェブサイト用の無料 SSL 証明書を作成できます。
今、Let’s Encrypt のサポートを追加します。
apt-get -y install certbot10. Mailman のインストール
ISPConfig では、Mailman メーリングリストを管理 (作成/変更/削除) できます。この機能を利用したい場合は、以下のように Mailman をインストールします:
apt-get install mailman少なくとも 1 つの言語を選択します。例:
サポートする言語: <– en (英語)
不足しているサイトリスト <– Ok
Mailman を開始する前に、mailman という名前の最初のメーリングリストを作成する必要があります:
newlist mailmanroot@server1:~# newlist mailman
リストを運営する人のメールアドレスを入力してください: <– 管理者のメールアドレス、例: [email protected]
初期の mailman パスワード: <– 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 の Apache 設定を有効にする必要があります:
ln -s /etc/mailman/apache.conf /etc/apache2/conf-available/mailman.confこれにより、すべての Apache vhosts に対して /cgi-bin/mailman/ のエイリアスが定義されます。これにより、メーリングリストの管理インターフェースに http://
http://
その後、Apache を再起動します:
service apache2 restart次に、Mailman デーモンを起動します:
service mailman start11. PureFTPd と Quota のインストール
PureFTPd と quota は以下のコマンドでインストールできます:
apt-get -y 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]: <– あなたの州または省名を入力します。
地方名 (例: 市) []: <– あなたの市を入力します。
組織名 (例: 会社) [Internet Widgits Pty Ltd]: <– あなたの組織名 (例: 会社名) を入力します。
組織単位名 (例: 部門) []: <– あなたの組織単位名 (例: “IT 部門“) を入力します。
共通名 (例: あなたの名前) []: <– システムの完全修飾ドメイン名を入力します (例: “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/mapper/server1--vg-root / ext4 errors=remount-ro,usrjquota=quota.user,grpjquota=quota.group,jqfmt=vfsv0 0 1
/dev/mapper/server1--vg-swap_1 none swap sw 0 0
/dev/fd0 /media/floppy0 auto rw,user,noauto,exec,utf8 0 0クォータを有効にするには、次のコマンドを実行します:
mount -o remount /quotacheck -avugm
quotaon -avug次の出力が表示されます:
root@server1:/# quotacheck -avugm
quotacheck: /dev/mapper/server1--vg-root [/] をスキャン中
done
quotacheck: 古いユーザークォータファイル //quota.user を stat できません: そのようなファイルやディレクトリはありません。 使用量は差し引かれません。
quotacheck: 古いグループクォータファイル //quota.group を stat できません: そのようなファイルやディレクトリはありません。 使用量は差し引かれません。
quotacheck: 19755 ディレクトリと 117639 ファイルをチェックしました
quotacheck: 古いファイルは見つかりませんでした。
quotacheck: 古いファイルは見つかりませんでした。
root@server1:/opt/metronome# quotaon -avug
/dev/mapper/server1--vg-root [/]: グループクォータがオンになりました
/dev/mapper/server1--vg-root [/]: ユーザークォータがオンになりました12. BIND DNS サーバーのインストール
BIND は以下のようにインストールできます:
apt-get -y install bind9 dnsutils haveged13. Vlogger, Webalizer, および AWstats のインストール
Vlogger, webalizer, および AWstats は以下のようにインストールできます:
apt-get install vlogger webalizer awstats geoip-database 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.sh14. Jailkit のインストール
Jailkit は、SSH ユーザーを chroot したい場合にのみ必要です。以下のようにインストールできます (重要: Jailkit は ISPConfig の前にインストールする必要があります - その後にインストールすることはできません!):
apt-get -y install build-essential autoconf automake1.11 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現在の Jailkit の 2.19 バージョンには構文エラーがあり、コンパイルを妨げています。それを修正するために、nano でファイル debian/changelog を開きます:
nano debian/changelogそして、5 行目に次の行を追加し、その後に空行を追加します:
-- Olivier Wed, 18 Nov 2015 20:38:44 +0100 その結果、ファイルの最初の部分は次のようになります (挿入された行は赤色):
jailkit (2.19-1) UNRELEASED; urgency=medium* 何らかのバグ URL がソースコードの jk_chrootsh の ini ファイルの場所に貼り付けられました。修正しました。-- Olivier Wed, 18 Nov 2015 20:38:44 +0100 jailkit (2.18-1) UNRELEASED; urgency=medium* メンテナンスリリース、高 uid 数値の uid_t 印刷を修正
* jk_init.ini への小さな改善
* jk_chrootsh で --login を強制する可能性を追加-- Olivier Wed, 18 Nov 2015 20:38:44 +0100 次のコマンドを実行して jailkit パッケージをビルドします:
./debian/rules binary次に、以下のように Jailkit.deb パッケージをインストールできます:
cd ..
dpkg -i jailkit_2.19-1_*.deb
rm -rf jailkit-2.19*15. fail2ban と UFW のインストール
これはオプションですが推奨されます。なぜなら、ISPConfig モニターがログを表示しようとするからです:
apt-get -y install fail2banfail2ban が PureFTPd と Dovecot を監視するようにするには、ファイル /etc/fail2ban/jail.local を作成します:
nano /etc/fail2ban/jail.local[pureftpd]
enabled = true
port = ftp
filter = pureftpd
logpath = /var/log/syslog
maxretry = 3
[dovecot-pop3imap]
enabled = true
filter = dovecot-pop3imap
action = iptables-multiport[name=dovecot-pop3imap, port="pop3,pop3s,imap,imaps", protocol=tcp]
logpath = /var/log/mail.log
maxretry = 5
[postfix-sasl]
enabled = true
port = smtp
filter = postfix-sasl
logpath = /var/log/mail.log
maxretry = 3次に、次の 2 つのフィルタファイルを作成します:
nano /etc/fail2ban/filter.d/pureftpd.conf[Definition]
failregex = .*pure-ftpd: \(.*@\) \[WARNING\] Authentication failed for user.*
ignoreregex = nano /etc/fail2ban/filter.d/dovecot-pop3imap.conf[Definition]
failregex = (?: pop3-login|imap-login): .*(?:Authentication failure|Aborted login \(auth failed|Aborted login \(tried to use disabled|Disconnected \(auth failed|Aborted login \(\d+ authentication attempts).*rip=(?P\S*),.*
ignoreregex = postfix-sasl ファイルに不足している ignoreregex 行を追加します:
echo "ignoreregex =" >> /etc/fail2ban/filter.d/postfix-sasl.confその後、fail2ban を再起動します:
service fail2ban restart次のエラーが表示された場合:
root@server1:/tmp# service fail2ban restart
Job for fail2ban.service failed because the control process exited with error code.
See "systemctl status fail2ban.service" and "journalctl -xe" for details.その場合、あなたのシステムはおそらくこの Ubuntu の問題に影響を受けています: https://bugs.launchpad.net/ubuntu/+source/postfix/+bug/1687368 これは、postfix がログファイルを作成できない原因となります。これを修正するには、次のコマンドを実行します:
chmod 775 /var/log
service postfix restart
service fail2ban restartUFW ファイアウォールをインストールするには、次の apt コマンドを実行します:
apt-get install ufw新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。