サーバー設定 · 6 min read · Nov 29, 2025
完璧なサーバー - Ubuntu 16.10 (Yakkety Yak) と 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 ヘッダーをグローバルに無効にします。
sudo 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 は多くの CMS キャッシングシステムで使用される Opcache 用の APC 互換関数を提供する互換性モジュールです。PHP ページの速度を上げるために、これらの PHP 拡張をインストールすることをお勧めします。
APCu は以下のようにインストールできます:
apt-get -y install php7.0-opcache php-apcu今、Apache を再起動します:
service apache2 restart8.2 PHP-FPM
Apache で PHP-FPM を使用するには、mod_fastcgi Apache モジュールが必要です (mod_fcgid と混同しないでください - 非常に似ていますが、mod_fcgid では PHP-FPM を使用できません)。PHP-FPM と mod_fastcgi は以下のようにインストールできます:
apt-get -y install libapache2-mod-fastcgi php7.0-fpmモジュールを有効にして Apache を再起動することを確認してください:
a2enmod actions fastcgi 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) のインストール (オプション)
Ubuntu 16.10 用の HHVM パッケージは利用できません。HHVM が必要な場合は、このチュートリアルを使用して Ubuntu 16.04 LTS をオペレーティングシステムとして使用してください: https://www.howtoforge.com/tutorial/perfect-server-ubuntu-16-04-with-apache-php-myqsl-pureftpd-bind-postfix-doveot-and-ispconfig/
9. 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 つの言語を選択します。例:
Languages to support: <– en (English)
Missing site list <– Ok
Mailman を開始する前に、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-available/mailman.conf これにより、すべての Apache vhosts に対して /cgi-bin/mailman/ のエイリアスが定義され、メーリングリストの Mailman 管理インターフェースに http://service apache2 restart 次に、Mailman デーモンを起動します: service mailman start ## 11. 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/TLS TLS を使用するには、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 Country Name (2 letter code) [AU]: <– あなたの国名を入力します (例: “DE”)。
State or Province Name (full name) [Some-State]: <– あなたの州または省の名前を入力します。
Locality Name (eg, city) []: <– あなたの市を入力します。
Organization Name (eg, company) [Internet Widgits Pty Ltd]: <– あなたの組織名を入力します (例: あなたの会社名)。
Organizational Unit Name (eg, section) []: <– あなたの組織単位名を入力します (例: “IT 部門“)。
Common Name (eg, YOUR name) []: <– システムの完全修飾ドメイン名を入力します (例: “server1.example.com”)。
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). # # クォータを有効にするには、次のコマンドを実行します: mount -o remount / quotacheck -avugm quotaon -avug 次のような出力が表示されます: root@server1:/# quotacheck -avugm quotacheck: Scanning /dev/mapper/server1--vg-root [/] done quotacheck: Cannot stat old user quota file //quota.user: No such file or directory. Usage will not be subtracted. quotacheck: Cannot stat old group quota file //quota.group: No such file or directory. Usage will not be subtracted. quotacheck: Cannot stat old user quota file //quota.user: No such file or directory. Usage will not be subtracted. quotacheck: Cannot stat old group quota file //quota.group: No such file or directory. Usage will not be subtracted. quotacheck: Checked 12563 directories and 89343 files quotacheck: Old file not found. quotacheck: Old file not found. root@server1:/opt/metronome# quotaon -avug /dev/mapper/server1--vg-root [/]: group quotas turned on /dev/mapper/server1--vg-root [/]: user quotas turned on root@server1:/# ## 12. BIND DNS サーバーのインストール BIND は以下のようにインストールできます: apt-get -y install bind9 dnsutils haveged ## 13. 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 # Generate static reports: #10 03 * * * www-data [ -x /usr/share/awstats/tools/buildstatic.sh ] && /usr/share/awstats/tools/buildstatic.sh ## 14. Jailkit のインストール Jailkit は SSH ユーザーを chroot したい場合にのみ必要です。以下のようにインストールできます (重要: Jailkit は ISPConfig の前にインストールする必要があります - 後からインストールすることはできません!): apt-get -y install build-essential autoconf automake1.11 libtool flex bison debhelper binutils cd /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 その結果、ファイルの最初の部分は次のようになります (挿入された行は赤色): jailkit (2.19-1) UNRELEASED; urgency=medium * somehow a bug URL was pasted into the ini file location in the sourcecode for jk_chrootsh in the 2.18 release. Fixed. -- Olivier jailkit (2.18-1) UNRELEASED; urgency=medium * maintenance release, fix uid_t printing for very high uid numbers * minor improvements to jk_init.ini * add possibility to force --login in jk_chrootsh -- Olivier 次のコマンドを実行して 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 fail2ban 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: \(.*@ 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 postfix-sasl ファイルに不足している ignoreregex 行を追加します: echo "ignoreregex =" >> /etc/fail2ban/filter.d/postfix-sasl.conf その後、fail2ban を再起動します: service fail2ban restart UFW ファイアウォールをインストールするには、次の apt コマンドを実行します: apt-get install ufw
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。