GNU/Linux >> Linux の 問題 >  >> Debian

WebMailLitePHPベースのWebメールクライアントをDebian9.1にインストールします

このガイドでは、Debian9.1に最新バージョンのWebMailLite PHPをインストールする方法と、人気のあるメールサービスYahoo!から電子メールをフェッチするようにアプリケーションを構成する方法を示します。郵便。 Yahoo!を使用しますメールサービスはデモンストレーションのみを目的としていますが、ドメイン設定を追加する手順はYahoo!を構成する手順とほとんど同じであるため、WebMailLiteでのメール処理には独自のドメインを自由に使用してください。メールサービス。 WebMail Liteクライアントを、Yahoo!が提供するIMAPおよびSMTPサービスへのインターフェイスとして使用します。アカウントとすべての電子メールは、独自のプライベートWebサーバーでローカルに処理されます。

WebMail Liteは、PHPで記述され、LEMP/LAMPスタックを構成するApache/Nginx、PHP、およびMySQL/MariaDBコンポーネントの下でLinuxにデプロイされた無料のオープンソースメールユーザーエージェントまたはWebクライアントです。 WebMail Liteを使用して、IMAP/Sおよび/またはSMTP/Sプロトコルを介してメールにアクセスし、メールファイルを同期したりメールメッセージを送信したりできます。

要件
  • ベアメタルマシンまたは仮想プライベートサーバーへのDebian9の最小限のインストール。
  • システムネットワークインターフェースカードの1つに設定された静的IPアドレス。
  • ローカルまたはリモートアカウントのsudoroot権限、またはrootアカウントへの直接アクセス。
  • 適切なDNSレコードが構成された、展開に応じたプライベートまたはパブリックのドメイン名。
  • IMAPおよびSMTPサービスへのリモートアクセスを使用して、構内で適切に構成されたメールサービス。
初期構成

独自のサーバーにソースからWebMailLiteをインストールして構成する前に、まずシステムがアプリケーションのコンパイルとインストールに関するすべてのソフトウェア要件を満たしていることを確認してください。最初のステップで、以下のコマンドを発行して、システムリポジトリとソフトウェアパッケージを更新します。

apt update
apt upgrade

次のステップでは、次のコマンドを実行して、コマンドラインからシステムをさらに管理するために使用されるいくつかのユーティリティをインストールします。

apt install wget bash-completion unzip

次に、次のコマンドを実行して、システムの名前を設定します。それに応じてホスト名変数を置き換えます。

hostnamectl set-hostname mail

以下のコマンドを発行して、マシンのホスト名とhostsファイルを確認します。

hostnamectl
cat /etc/hostname
hostname –s
hostname –f

最後に、カーネルの更新とホスト名の変更を適切に適用するために、Debianサーバーを再起動します。

systemctl reboot

WebMail Liteは、主にPHPサーバー側プログラミング言語で記述されたWebメールクライアントです。 WebMail Lite PHPファイルスクリプトを実行するには、Apache HTTPサーバーなどのWebサーバー、およびPHP処理ゲートウェイがシステムにインストールされて動作している必要があります。アプリケーションを正しく実行するために必要なすべてのPHPモジュールとともに、ApacheウェブサーバーとPHPインタープリターをインストールするには、サーバーコンソールで次のコマンドを発行します。

apt install apache2 libapache2-mod-php7.0 php7.0 php7.0-xml php7.0-mcrypt php7.0-opcache php7.0-mbstring php7.0-curl

ApacheとPHPをインストールしたら、root権限で次のコマンドを発行して、Webサーバーが稼働し、ポート80でネットワーク接続をリッスンしているかどうかをテストします。

netstat –tlpn

netstatネットワークユーティリティがDebianシステムにデフォルトでインストールされていない場合は、以下のコマンドを実行してインストールしてください。

apt install net-tools

netstatコマンドの出力を調べると、Apache Webサーバーがポート80で着信ネットワーク接続をリッスンしていることがわかります。同じタスクで、ssを使用することもできます。 コマンド。デフォルトでDebian9に自動的にインストールされます。

ss- tlpn

システムでUFWファイアウォールアプリケーションなどのファイアウォールを有効にしている場合は、次のコマンドを発行して、HTTPトラフィックがファイアウォールを通過できるようにする新しいルールを追加する必要があります。

ufw allow WWW

または

ufw allow 80/tcp

iptablesを使用している場合 Debianサーバーでファイアウォールルールを管理するための生のルール。訪問者がオンラインアプリケーションを閲覧できるように、ファイアウォールでポート80のインバウンドトラフィックを許可する次のルールを追加します。

apt-get install -y iptables-persistent
iptables -I INPUT -p tcp --destination-port 80 -j ACCEPT
systemctl iptables-persistent save
systemctl iptables-persistent reload

次に、以下のコマンドを発行して、WebMailLiteアプリケーションの一部を保護するために使用される次のApacheモジュールを有効にします。

a2enmod rewrite
systemctl restart apache2

最後に、HTTPプロトコルを介してDebianマシンのIPアドレス、ドメイン名、またはサーバーFQDNにアクセスして、ApacheWebサーバーのデフォルトのWebページをクライアントのブラウザーに表示できるかどうかをテストします。マシンのIPアドレスがわからない場合は、 ifconfigを実行してください またはipa サーバーのIPアドレスを明らかにするコマンド。 DebianのデフォルトのApacheページがブラウザに表示されます。

http://your_domain.tld

クライアントのトラフィックを保護するHTTPSプロトコルを介してWebMailLiteアプリケーションをインストールしてアクセスするには、次のコマンドを発行して、ApacheWebサーバーのSSLモジュールとSSLサイト構成ファイルを有効にします。

a2enmod ssl
a2ensite default-ssl.conf

次に、テキストエディタでApacheのデフォルトSSLサイト構成ファイルを開き、 DocumentRoot の後に次のコード行を追加して、URL書き換えルールを有効にします。 以下のサンプルに示すように、ディレクティブ:

nano /etc/apache2/sites-enabled/default-ssl.conf

SSLサイト構成ファイルの抜粋:

<Directory /var/www/html>
  Options +FollowSymlinks
  AllowOverride All
  Require all granted
</Directory>

また、以下の抜粋に示すように、VirtualHost行に次の変更を加えます。

        <VirtualHost *:443>

SSL Apacheファイルを閉じて、 /etc/apache2/sites-enabled/000-default.confを開きます。 編集用のファイルを作成し、SSL構成ファイルと同じURL書き換えルールを追加します。 DocumentRootの後にコード行を挿入します 以下の例に示すようなステートメント。

<Directory /var/www/html>
  Options +FollowSymlinks
  AllowOverride All
  Require all granted
</Directory>

最後に、Apacheデーモンを再起動して、これまでに構成されたすべてのルールを適用し、HTTPプロトコルを介してドメインにアクセスします。インストール時にApacheによって自動的に発行された自己署名証明書のペアを使用しているため、以下のスクリーンショットに示すように、ブラウザにエラー警告が表示されます。

systemctl restart apache2

https://yourdomain.tld

続行してHTTPS経由でApacheのデフォルトのWebページにリダイレクトするには、警告を受け入れます。

UFWファイアウォールアプリケーションがHTTPSポートへの着信ネットワーク接続をブロックする場合は、次のコマンドを発行して、HTTPSトラフィックがファイアウォールを通過できるようにする新しいルールを追加する必要があります。

ufw allow 'WWW Full'

または

ufw allow 443/tcp

iptablesの場合 ネットワークレベルでDebianシステムを保護するためにインストールされるデフォルトのファイアウォールアプリケーションです。次のルールを追加して、ファイアウォールでポート443のインバウンドトラフィックを許可し、訪問者がドメイン名を閲覧できるようにします。

iptables -I INPUT -p tcp --destination-port 443 -j ACCEPT
systemctl iptables-persistent save
systemctl iptables-persistent reload

次のステップでは、次のPHP変数が有効になり、PHPのタイムゾーンが有効になるように、PHPのデフォルト構成ファイルにさらに変更を加える必要があります。 設定は正しく構成されており、システムの地理的な場所と一致しています。 /etc/php/7.0/apache2/php.iniを開きます 編集用のファイルを作成し、次の行が次のように設定されていることを確認します。また、最初に、PHP構成ファイルのバックアップを作成します。

cp /etc/php/7.0/apache2/php.ini{,.backup}
nano /etc/php/7.0/apache2/php.ini

php.ini で次の変数を検索、編集、変更します 構成ファイル:

file_uploads = On
allow_url_fopen = On
memory_limit = 128 M
upload_max_file_size = 64M
date.timezone = Europe/London

memory_limitを増やします 大きなファイルの添付ファイルをサポートし、 time.zoneを置き換えるのに適した変数 次のリンクhttp://php.net/manual/en/timezones.php

でPHPドキュメントによって提供されるタイムゾーンのリストを参照することにより、物理的な時間に応じて変更できます。

PHP7で利用可能なOPCacheプラグインを介してWebサイトページの読み込み速度を上げたい場合は、以下に詳述するように、PHPインタープリター構成ファイルの下部に次のOPCache設定を追加します。

opcache.enable=1 
opcache.enable_cli=1
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.memory_consumption=128
opcache.save_comments=1
opcache.revalidate_freq=1

php.ini構成ファイルを閉じ、PHP構成ファイルの終わりを確認して、以下のコマンドを発行して変数が正しく追加されているかどうかを確認します。

tail /etc/php/7.0/apache2/php.ini

上記で説明したすべての変更を行ったら、apacheデーモンを再起動して、次のコマンドを発行して新しい変更を適用します。

systemctl restart apache2

最後に、次のコマンドを実行してPHP情報ファイルを作成し、次の画像に示すように、次のURLのブラウザーからPHP情報スクリプトファイルにアクセスして、PHPタイムゾーンが正しく構成されているかどうかを確認します。 日付まで下にスクロールします PHPのタイムゾーン構成を確認するための設定。

echo '<?php phpinfo(); ?>'| tee /var/www/html/info.php

https://domain.tld/info.php

WebMail Lite Webメールクライアントは、ユーザー、セッション、連絡先などのさまざまな構成をRDBMSデータベースに保存します。このガイドでは、MariaDBデータベースをバックエンドとして使用するようにWebMailLiteを構成します。以下のコマンドを発行して、MariaDBデータベースとmysqlデータベースにアクセスするために必要なPHPモジュールをインストールします。

apt install mariadb-server php7.0-mysql

MariaDBをインストールしたら、 netstat を実行して、デーモンが実行され、ローカルホストのポート3306で接続をリッスンしていることを確認します。 またはss コマンド。

netstat –tlpn | grep mysql

次に、MySQLコンソールにログインし、次のコマンドを発行してMariaDBルートアカウントを保護します。

mysql -h localhost
use mysql;
update user set plugin='' where user='root';
flush privileges;
exit

次のステップでは、スクリプト mysql_secure_installationを実行してMariaDBを保護します 。スクリプトの実行中に、MariaDBデータベースを保護するために設計された一連の質問が表示されます。たとえば、MySQLルートパスワードの変更、匿名ユーザーの削除、リモートルートログインの無効化、テストデータベースの削除などです。以下のコマンドを発行してスクリプトを実行し、MySQLデーモンを完全に保護するために尋ねられたすべての質問にyesと入力していることを確認してください。ガイドとして以外は、以下のスクリプト出力を使用してください。

sudo mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!
 
In order to log into MariaDB to secure it, we'll need the current
が必要です。 rootユーザーの
password for the root user.  If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.
 
Enter current password for root (enter for none):
OK, successfully used password, moving on...
 
Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.
 
You already have a root password set, so you can safely answer 'n'.
 
Change the root password? [Y/n] y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
 ... Success!
 
By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
に移動する前にそれらを削除する必要があります
production environment.
 
Remove anonymous users? [Y/n] y
 ... Success!
 
Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.
 
Disallow root login remotely? [Y/n] y
 ... Success!
 
By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.
 
Remove test database and access to it? [Y/n] y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!
 
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
 
Reload privilege tables now? [Y/n] y
 ... Success!
 
Cleaning up...
 
All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.
 
Thanks for using MariaDB!

MariaDBのセキュリティをテストするには、rootパスワードなしでコンソールからデータベースにログインしてみてください。 rootアカウントにパスワードが指定されていない場合は、データベースへのアクセスを拒否する必要があります。パスワードが指定されている場合は、以下のスクリーンショットに示すように、ログインプロセスがMySQLコンソールに付与されている必要があります。

mysql -h localhost -u root
mysql -h localhost -u root –p

次に、MariaDBデータベースコンソールにログインし、次のコマンドを発行して、WebMail Liteで使用するデータベースと、このデータベースの管理に使用するパスワードを持つユーザーを作成します。それに応じて、WebMail Liteデータベース名、ユーザー、およびパスワードを置き換えます。

mysql –u root -p
create database webmaillite;
grant all privileges on webmaillite.* to 'webmail_user'@'localhost' identified by 'webmail_pass';
flush privileges;
exit

これまでに行ったすべての変更を適用するには、MySQLデーモンとApacheデーモンを再起動し、次のコマンドを発行してデーモンが実行されているかどうかを確認します。

systemctl restart mysql apache2
systemctl status mysql apache2

WebMailLiteをインストール

すべてのシステム要件が満たされた後、https://afterlogic.org/download/webmail-lite-phpのWebMail Lite Webページにアクセスし、次のサンプルに示すように、wgetユーティリティを発行して最新のzipパッケージ圧縮アーカイブをダウンロードします。

wget https://afterlogic.org/download/webmail_php.zip

zipアーカイブのダウンロードが完了したら、WebMail Lite zip圧縮アーカイブを抽出し、以下のコマンドを発行して、抽出したファイルを一覧表示します。また、Apache Webサーバーによってwebrootパスにインストールされたデフォルトのindex.htmlファイルを削除し、以前に作成したinfo.phpファイルも削除します。

rm /var/www/html/index.html
rm /var/www/html/info.php
unzip webmail_php.zip
ls

次に、ウェブメールの抽出されたファイルを再帰的にコピーします 以下のコマンドを発行して、ドメインのWebルートパスへのディレクトリを作成します。また、webrootパスを一覧表示して、webmailディレクトリのすべてのファイルがwebrootに完全に転送されているかどうかを確認できます。

ls webmail
cp -rf webmail/* /var/www/html/
ls -l /var/www/html/

次に、以下のコマンドを実行して、ApacheランタイムユーザーにWebルートパスへの完全な書き込み権限を付与します。 lsを使用する / var / www /html/ディレクトリにあるPrestashopインストールファイルの権限を一覧表示するコマンド。

chown -R www-data:www-data /var/www/html/
ls –al /var/www/html/

ブラウザを開いてWebMailLiteのインストールプロセスを続行し、HTTPSプロトコルを介してサーバーのIPアドレスまたはドメイン名を / installに移動します。 ディレクトリ。最初のインストール画面で、WebMail Liteインストーラスクリプトは一連のシステムチェックを行い、必要なすべてのPHP拡張機能とモジュールがサーバーにインストールされているかどうか、およびapacheユーザーがデータへの書き込み権限を持っているかどうかを判断します。 次の図に示すように、ディレクトリと構成ファイルに移動します。すべてのサーバー要件に合格したら、[次へ]ボタンをクリックして、次のインストール画面に移動します。

https://yourdomain.tld/install

次のインストール画面で、使用許諾契約の条項を読んで同意し、同意するをクリックします。 下の画像に示すように、ボタンを押して続行します。

次のインストール画面で、データベースタイプMySQLを選択し、MySQLデータベースホストアドレス、データベースの名前、およびWebMailLiteデータベースにアクセスするために以前に作成した資格情報を指定します。 データベースのテストをクリックして、データベース接続をテストします ボタンをクリックし、MySQLデータベースへの接続が成功した場合は、インストーラーが必要なテーブルを作成するために[データベーステーブルの作成]をオンにし、[次へ]ボタンをクリックして次のインストール画面に移動します。

次のインストール画面で、 mailadmの強力なパスワードを入力します ユーザーと次のボタンを押して続行します。このユーザーは、管理パネルを介してWebMailLiteのさまざまな側面を管理するために使用されます。

次に、メールサーバーへの接続がIMAPおよびSMPプロトコルを介して期待どおりに機能しているかどうかを確認します。デモンストレーションの目的で、Yahoo!が提供するメールサービスへの接続を構成してテストします。郵便。それに応じてメールサービスドメインを変更できます。 Yahoo!のSMTP接続をテストするにはメールサーバー。次のアドレスをメールサーバーのホストフィールドに書き込みます。smtp.mail.yahoo.com 、SMTPチェックボックスをオンにして、接続テストボタンを押します。 Yahoo!への接続の場合SMTPサーバーが正常に確立されると、Yahoo!からSMTP経由で送信メールを送信できることを示す緑色のメッセージが表示されます。メール。

暗号化されたIMAP接続がYahoo!で許可されているかどうかをテストします。メールサーバー、 imap.mail.yahoo.com:993と入力します [電子メールサーバーのホスト]フィールドで、[IMAP4]チェックボックスをオンにして、[接続のテスト]ボタンを押します。 Yahoo!への接続の場合IMAPサーバーが正常に確立され、緑色のメッセージが表示され、Yahoo!からIMAPSを介して受信メールを確認およびダウンロードできることが通知されます。郵便。終了したら、次のボタンを押して最後のインストール手順に進みます。

インストールプロセスが完了すると、インストーラーはWebMail Lite Webアプリケーションが正常にインストールされたことを通知し、ドメインwebrootからインストーラーディレクトリを削除する必要があります。 [終了]ボタンを押して画面を終了し、WebMailLite管理パネルに移動します。

WebMail Lite管理パネルにアクセスするには、次のアドレスに移動します。それに応じてドメイン名またはIPアドレスを置き換えます。

https://yourdomain.tld/adminpanel

mailadmを使用して管理パネルにログインします 以下のスクリーンショットに示すように、インストールプロセス中のこのユーザーのユーザー名とパスワードの設定。

WebMail Liteのドメインメールサービスを設定するには、[ドメイン]->[デフォルト設定]に移動します。 。デモンストレーションの目的で、このガイドでは、Yahoo!の電子メールを管理するようにWebMailLiteを設定します。メールアカウントですが、必要な設定を追加して、自由に独自のドメインを構成してください。

受信メールフィールドに、Yahoo!のIMAPアドレスを追加します。メールサーバー: imap.mail.yahoo.com およびポート993 。また、SSLを使用をチェックしてください 安全な接続を介してメールを取得するには、チェックボックスをオンにします。

送信メール欄にYahoo!のSMTPアドレスを追加してください。メールサーバー: smtp.mail.yahoo.com およびポート465。また、SSLを使用をオンにします。 安全な接続を介してメールを送信するには、チェックボックスをオンにします。

SMTP認証で、[ユーザーの受信メールのログイン/パスワードを使用する]をオンにします Yahoo!に認証するためにSMTPサーバーにメールを送信します。

最後に、サイトの名前を追加したり、WebMail Liteアプリケーションのテーマを変更したり、ユーザーがインターフェイス設定にアクセスできるようにするオプションもあります。また、以下のスクリーンショットに示すように、アプリケーションの地域設定を変更できます。保存して設定を適用するには、[保存]ボタンをクリックします。

WebMail Lite管理パネルには、ログの有効化、 mailadm の変更など、アプリケーション設定の変更に使用できる他のオプションが用意されています。 アカウント名とパスワード、またはWebメールインターフェイスを他の外部サービスと統合します。セットアップが完了したら、[ログアウト]ボタンをクリックしてカスタム設定を行います。

Yahoo!でWebMailLiteアプリケーションにログインするにはメールアカウント、HTTPプロトコル経由でドメイン名に移動し、Yahoo!を提供します。次の画像に示すように、資格情報をメールで送信します。 Yahoo!のメールアカウントはWebMailLiteインターフェースに表示されます。

訪問者にHTTPSプロトコルを介してWebMailLiteインターフェイスを参照させ、インストールディレクトリとバージョンファイルを保護するには、サーバーコンソールに移動して新しい .htaccessを作成します。 次の内容のWebサーバードキュメントルートパス内のファイル。

nano /var/www/html/.htaccess

.htaccess ファイルの抜粋:

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTPS} !=on [NC]
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>

RewriteEngine on
Options -Indexes
# return a 403 forbidden error for install dir and version file
RewriteRule ^install/?$ - [F,L]
RewriteRule ^VERSION/?$ - [F,L]

新しい.haccessを作成します 以下の内容のインストールディレクトリ内のファイル:

nano /var/www/html/install/.htaccess

.htaccess ファイルの抜粋:

RewriteEngine on
Options -Indexes
Require all denied

それで全部です!これで、Debian9.1にWebMailLiteが正常にインストールおよび設定されました。ただし、Apache HTTPサーバーは自己署名証明書を使用してサーバーと訪問者のブラウザー間のトラフィックを暗号化するため、警告メッセージが常に生成され、ブラウザーに表示されます。この場合、信頼できる認証局によって発行された証明書を購入するか、Let’sEncryptCAから無料の証明書ペアを入手する必要があります。 WebMail Liteに関するその他のカスタム構成については、次のアドレスのドキュメントページにアクセスしてください:https://afterlogic.com/docs/webmail-lite


Debian
  1. Debian11にPHP8.0をインストールする方法

  2. PHP8.0をDebian10/Debian9にインストールする方法

  3. WireguardサーバーをDebian10/11にインストールします

  1. Debian10/11にOpenVPNサーバーをインストールします

  2. Debian10にPHP7.4をインストールする方法

  3. Debian11にPHPをインストールする方法

  1. PHP8をDebian10にインストールする方法

  2. UbuntuまたはDebianにPostfixメールサーバーとDovecotをインストールします

  3. Debian9にRoundCubeWebメールをインストールする方法