在Debian 9.1上安装WebMail Lite基于PHP的Webmail客户端
在本指南中,我们将向您展示如何在Debian 9.1中安装最新版本的WebMail Lite PHP,并向您展示如何配置应用程序以从常见的邮件服务Yahoo!中获取电子邮件。 邮件。 我们将使用Yahoo! 邮件服务仅用于演示目的,但可随意使用自己的域用于使用WebMail Lite进行邮件处理,因为添加域设置的过程与配置Yahoo!的过程基本相同。 邮件服务。 我们将使用WebMail Lite客户端作为由Yahoo!提供的IMAP和SMTP服务的接口。 帐户和所有电子邮件将在我们自己的私人网络服务器上进行本地处理。
WebMail Lite是一个免费的开源邮件用户代理或Web客户端,用PHP编写,并部署在Linux下的Apache / Nginx,PHP和MySQL / MariaDB组件,使LEMP / LAMP。 WebMail Lite可用于通过IMAP / S和/或SMTP / S协议访问邮件,以同步邮件文件和/或发送邮件。
要求
- Debian 9最小的安装在裸机或虚拟专用服务器上。
- 为您的系统网络接口卡之一配置的静态IP地址 。
- 为本地或远程帐户提供sudo root权限或直接访问root帐户。
- 一个域名,私人或公共,根据您的部署,配置正确的DNS记录。
- 在您的场所正确配置邮件服务,以远程访问其IMAP和SMTP服务。
初始配置
在开始在您自己的服务器上从源代码安装并配置WebMail Lite之前,请首先确保系统满足编译和安装应用程序的所有软件要求。 在第一步中,通过执行以下命令更新系统存储库和软件包。
apt update
apt upgrade
在下一步中,执行以下命令以安装一些将用于从命令行进一步管理系统的实用程序。
apt install wget bash-completion unzip
接下来,通过执行以下命令为您的系统设置名称。 相应地替换您的主机名变量。
hostnamectl set-hostname mail
通过执行以下命令验证计算机主机名和主机文件。
hostnamectl
cat /etc/hostname
hostname –s
hostname –f
最后,重新启动Debian服务器以正确应用内核更新和主机名更改。
systemctl reboot
WebMail Lite是一个主要以PHP服务器端编程语言编写的webmail客户端。 为了执行WebMail Lite PHP文件脚本,必须在系统中安装并运行Web服务器(如Apache HTTP服务器和PHP处理网关)。 为了安装Apache Web服务器和PHP解释器以及应用程序正常运行所需的所有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之后,测试Web服务器是否已启动并正在运行,并通过以root权限发出以下命令来监听端口80上的网络连接。
netstat –tlpn
如果您的Debian系统默认没有安装netstat网络实用程序,请执行以下命令进行安装。
apt install net-tools
通过检查netstat命令输出,您可以看到Apache Web服务器正在监听端口80上的传入网络连接。对于相同的任务,您还可以使用ss命令,该命令在Debian 9中默认自动安装。
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
接下来,通过执行以下命令,启用以下将用于保护WebMail Lite应用程序某些部分的Apache模块。
a2enmod rewrite
systemctl restart apache2
最后,通过HTTP协议访问您的Debian计算机IP地址或您的域名或服务器FQDN,测试Apache Web服务器默认网页是否可以显示在您的客户端浏览器中。 如果您不知道您的机器IP地址,请执行ifconfig或ip命令以显示您的服务器的IP地址。 Debian的默认Apache页面将显示在浏览器中。
HTTP://your_domain.tld
为了通过HTTPS协议安装并访问WebMail Lite应用程序,以保护客户端的流量,请发出以下命令启用Apache Web服务器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默认网页。
如果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变量,以支持大文件附件,并根据您的物理时间,通过查看PHP文档提供的时区列表,在以下链接http://php.net/manual/en/timezones .PHP
如果要通过适用于PHP7的OPCache插件来提高网站页面的加载速度,请在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 webmail客户端在RDBMS数据库中存储不同的配置,例如用户,会话,联系人等。 在本指南中,我们将配置WebMail Lite以将MariaDB数据库用作后端。 发出以下命令来安装MariaDB数据库和访问mysql数据库所需的PHP模块。
apt install mariadb-server php7.0-mysql
安装MariaDB之后,通过运行netstat或ss命令来验证守护程序是否正在运行,并监听本地主机端口3306上的连接。
netstat –tlpn | grep mysql
然后,通过发出以下命令登录到MySQL控制台并保护MariaDB root帐户。
mysql -h localhost
use mysql;
update user set plugin='' where user='root';
flush privileges;
exit
在下一步中,通过执行脚本mysql_secure_installation来保护MariaDB。 运行脚本时会询问一系列旨在保护MariaDB数据库的问题,例如:更改MySQL根密码,删除匿名用户,禁用远程root登录和删除测试数据库。 通过发出以下命令来执行脚本,并确保您为所有问题输入yes以完全保护MySQL守护进程。 使用下面的脚本输出除了作为指导。
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
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
安装WebMail Lite
完成所有系统要求后,请访问WebMail Lite网页https://afterlogic.org/download/webmail-lite-php,并通过发行wget实用程序下载最新的zip压缩包压缩包,如下例所示。
wget https://afterlogic.org/download/webmail_php.zip
zip压缩文件下载完成后,提取WebMail Lite压缩压缩文件,并通过发出以下命令列出提取的文件。 另外,将Apache Web服务器安装的默认index.html文件移除到webroot路径,并删除前面创建的info.php文件。
rm /var/www/html/index.html
rm /var/www/html/info.php
unzip webmail_php.zip
ls
然后,通过发出以下命令递归地将提取的webmail目录中的文件复制到您的域webroot路径。 另外,您可以列出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/
通过打开浏览器继续进行WebMail Lite安装过程,并通过HTTPS协议将服务器的IP地址或域名导航到/ install目录。 在第一个安装屏幕上,WebMail Lite安装程序脚本将进行一系列系统检查,以确定是否在您的服务器上安装了所有必需的PHP扩展和模块,并且如果apache用户具有对数据目录和配置文件的写入权限,如下图所示。 如果所有服务器要求都通过,点击下一步按钮移动到下一个安装屏幕。
HTTPS://yourdomain.tld/install
在下一个安装屏幕上,阅读并接受许可协议条款并点击我同意按钮继续,如下图所示。
在下一个安装屏幕上,选择数据库类型MySQL并指定MySQL数据库主机地址,以前为访问WebMail Lite数据库而创建的数据库名称和凭证。 通过点击测试数据库按钮来测试数据库连接,如果与MySQL数据库的连接成功,则检查创建数据库表以便安装程序创建所需的表,然后点击下一步按钮移至下一个安装屏幕。
在下一个安装屏幕上,为mailadm用户提供一个强大的密码,并点击下一个按钮继续。 此用户将用于通过管理面板管理WebMail Lite的不同方面。
现在我们将通过IMAP和SMP协议检查到邮件服务器的连接是否按预期工作。 为了演示目的,我们将配置并测试与Yahoo!提供的邮件服务的连接。 邮件。 您可以相应地更改邮件服务域。 测试Yahoo!的SMTP连接 邮件服务器,将以下地址写入电子邮件服务器主机字段smtp.mail.yahoo.com ,选中SMTP复选框并点击测试连接按钮。 如果连接到Yahoo! SMTP服务器成功建立,一条绿色的信息会告诉你,你可以发送传出的电子邮件通过SMTP从雅虎! 邮件。
测试雅虎是否允许加密的IMAP连接 邮件服务器,在电子邮件服务器主机字段中输入imap.mail.yahoo.com:993 ,检查IMAP4复选框,然后按测试连接按钮。 如果连接到Yahoo! IMAP服务器成功建立,绿色的信息会通知你,你可以检查和下载来自雅虎IMAPS的传入电子邮件。 邮件。 当你完成点击下一步按钮移动到上一个安装步骤。
安装过程完成后,安装程序会通知您,WebMail Lite Web应用程序已成功安装,您应该从您的域webroot中删除安装程序目录。 点击退出按钮离开屏幕并进入WebMail Lite管理面板。
导航到以下地址,以访问WebMail Lite管理面板。 相应地替换域名或IP地址。
HTTPS://yourdomain.tld/adminpanel
在安装过程中使用mailadm用户名和密码设置登录管理面板,如下图所示。
为了设置WebMail Lite的域名邮件服务,请导航到域名 - >默认设置 。 出于演示目的,在本指南中,我们将设置WebMail Lite来管理Yahoo!邮件的电子邮件。 邮件帐户,但随时配置您自己的域添加所需的设置。
在收到的邮件字段中,添加Yahoo!的IMAP地址。 邮件服务器: imap.mail.yahoo.com和端口993 。 另外,选中使用SSL复选框可通过安全连接检索电子邮件。
在发送邮件字段中,添加Yahoo!的SMTP地址。 邮件服务器: smtp.mail.yahoo.com和端口465.另外,选中使用SSL复选框通过安全连接发送电子邮件。
在SMTP身份验证中,勾选“ 使用接收邮件的用户登录名/密码” ,以便向Yahoo! 邮件SMTP服务器。
最后,您还可以选择为您的网站添加名称,更改WebMail Lite应用程序的主题并允许用户访问界面设置。 另外,您可以更改您的应用程序区域设置,如下图所示。 保存并应用保存按钮上的设置。
WebMail Lite管理面板提供其他选项,可用于修改您的应用程序设置,如启用日志记录,更改mailadm帐户名称和密码或将Webmail界面与其他外部服务集成。 当您完成设置您的自定义设置点击注销按钮。
使用Yahoo!登录WebMail Lite应用程序 邮件帐户,通过HTTP协议导航到您的域名,并提供您的雅虎! 邮件凭证,如下图所示。 Yahoo!的电子邮件 帐户将在WebMail Lite界面中列出。
为了强制访问者通过HTTPS协议浏览WebMail Lite界面并保护安装目录和版本文件,请转到您的服务器控制台,并在您的Web服务器文档根路径中创建一个新的.htaccess文件,内容如下。
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
就这样! 您已经在Debian 9.1中成功安装并配置了WebMail Lite。 但是,由于您的Apache HTTP服务器使用自签名证书来加密服务器和访问者浏览器之间的流量,因此将始终生成警告消息并显示在浏览器中。 在这种情况下,您应该购买由受信任的证书颁发机构颁发的证书,或从Let's Encrypt CA获取免费证书对 。 有关WebMail Lite的其他自定义配置,请访问以下地址的文档页面: https : //afterlogic.com/docs/webmail-lite