Ubuntu系统

展开

当前位置:首页>服务器系统>Ubuntu系统

在Ubuntu 16.04上配置msmtp

作者:系统库人气:
这篇文章是在我之前的博客中发表过的在 Ubuntu 16.04 上配置 MSMTP 的一个副本。我再次发表是为了后续,我并不知道它是否能在更高版本上工作。由于我没有再托管自己的 Ubuntu/MSMTP 服务器了,所以我现在看不到有需要更新的地方,但是如果我需要重新设置,我会创建一个更新的帖子!无论如何,这是我现有的。
 
我之前写了一篇在 Ubuntu 12.04 上配置 msmtp 的文章,但是正如我在之前的文章中暗示的那样,当我升级到 Ubuntu 16.04 后出现了一些问题。接下来的内容基本上是一样的,但 16.04 有一些小的更新。和以前一样,这里假定你使用 Apache 作为 Web 服务器,但是我相信如果你选择其他的 Web 服务器,也应该相差不多。
 
我使用 msmtp 发送来自这个博客的邮件俩通知我评论和更新等。这里我会记录如何配置它通过 Google Apps 帐户发送电子邮件,虽然这应该与标准的 Google 帐户一样。
 
首先,我们需要安装 3 个软件包:
 
sudo apt-get install msmtp msmtp-mta ca-certificates
安装完成后,就需要一个默认配置。默认情况下,msmtp 会在 /etc/msmtprc 中查找,所以我使用 vim 创建了这个文件,尽管任何文本编辑器都可以做到这一点。这个文件看起来像这样:
 
# Set defaults.
defaults
# Enable or disable TLS/SSL encryption.
tls on
tls_starttls on
tls_trust_file /etc/ssl/certs/ca-certificates.crt
# Setup WP account's settings.
account GMAIL
host smtp.gmail.com
port 587
auth login
user YOUR USERNAME
password YOUR PASSWORD
from FROM@ADDRESS
logfile /var/log/msmtp/msmtp.log
account default :
任何大写选项都是需要替换为你特定的配置。日志文件是一个例外,当然你也可以将活动/警告/错误放在任何你想要的地方。
 
文件保存后,我们将更新上述配置文件的权限 ,如果该文件的权限过于开放,msmtp 将不会运行,并且创建日志文件的目录。
 
sudo mkdir /var/log/msmtp
sudo chown -R www-data:adm /var/log/msmtp
sudo chmod 0600 /etc/msmtprc
接下来,我选择为 msmtp 日志配置 logrotate,以确保日志文件不会太大并让日志目录更加整洁。为此,我们创建 /etc/logrotate.d/msmtp 并使用按以下内容配置。请注意,这是可选的,你可以选择不这样做,或者你可以选择以不同方式配置日志。
 
/var/log/msmtp/*.log {
    rotate 12
    monthly
    compress
    missingok
    notifempty
}
现在配置了日志,我们需要通过编辑 /etc/php/7.0/apache2/php.ini 告诉 PHP 使用 msmtp,并将 sendmail 路径从
 
sendmail_path =
变成
 
sendmail_path ="/usr/bin/msmtp -C /etc/msmtprc -a -t"
这里我遇到了一个问题,即使我指定了帐户名称,但是当我测试它时,它并没有正确发送电子邮件。这就是为什么 account default : 这行被放在 msmtp 配置文件的末尾。要测试配置,请确保 PHP 文件已保存并运行 sudo service apache2 restart,然后运行 php -a 并执行以下命令
 
mail ('personal@email.com', 'Test Subject', 'Test body text');
exit();
此时发生的任何错误都将显示在输出中,因此错误诊断会相对容易。如果一切顺利,你现在应该可以使用 PHP sendmail(至少 WordPress 可以)中用 Gmail(或 Google Apps)从 Ubuntu 服务器发送电子邮件。
 
我没有说这是最安全的配置,所以当你看到并且意识要这个非常不安全,或者有其他严重的错误,请让我知道,我会相应地更新。

Ubuntu 16.04.4 LTS (Xenial Xerus)正式发布下载

Ubuntu 16.04.4 LTS (Xenial Xerus) 现已正式发布,大家可以下载更新了。
 
此前由于受已公开披露的 Meltdown 和 Spectre 安全漏洞影响,所有推迟发布,Ubuntu 16.04.4 LTS 将会于 2018 年 3 月 1 日发布。现在,Canonical 已正式释出 Ubuntu 16.04.4 LTS,各位可以进行更新了。
 
最大变化莫过于修复了 Meltdown 和 Spectre 安全漏洞,还有就是提升了稳定性和兼容性,另外就是包括以下的 bug 修复:
#1351267 partman-auto prefers to give disk to swap, leaving root too small
#1555904 opal-prd not installed by default on ppc64el systems
#1577833 Support statement for packages within Ubuntu 16.04 LTS should have the 5 Y statement
#1746299 update makedumpfile tool version to v1.6.3
 
此外,Ubuntu 17.10 的内核和显示服务器也已进行更新。
 
Xenial Xerus 系列的更新维护计划是更新至 Ubuntu 16.04.5,该版本可能会在 2018 年晚些时候推出。
 
Ubuntu 16.04.4 LTS 下载地址是:http://releases.ubuntu.com/16.04/
ubuntu-16.04.4-desktop-amd64.iso
ubuntu-16.04.4-desktop-i386.iso
ubuntu-16.04.4-server-amd64.iso
ubuntu-16.04.4-server-i386.iso
 
MD5值
b47e23601d56533fb01a941ef1794e57 *ubuntu-16.04.4-desktop-amd64.iso
bc10544792ffef5bfe5b2bb87b5a5cbf *ubuntu-16.04.4-desktop-i386.iso
6a7f31eb125a0b2908cf2333d7777c82 *ubuntu-16.04.4-server-amd64.iso
3825f06c23540bfd509bb63377f2848e *ubuntu-16.04.4-server-i386.iso

Ubuntu上使用KVM云镜像

如何下载并使用运行在 Ubuntu Linux 服务器上的 KVM 云镜像?如何在 Ubuntu Linux 16.04 LTS 服务器上无需完整安装即可创建虚拟机?如何在 Ubuntu Linux 上使用 KVM 云镜像?
 
基于内核的虚拟机(KVM)是 Linux 内核的虚拟化模块,可将其转变为虚拟机管理程序。你可以在命令行使用 Ubuntu 为 libvirt 和 KVM 提供的虚拟化前端通过 KVM 创建 Ubuntu 云镜像。
 
这个快速教程展示了如何安装和使用 uvtool,它为 Ubuntu 云镜像下载,libvirt 和 clout_int 提供了统一的集成虚拟机前端。
 

步骤 1 - 安装 KVM

你必须安装并配置 KVM。使用 apt 命令/apt-get 命令,如下所示:
 
$ sudo apt install qemu-kvm libvirt-bin virtinst bridge-utils cpu-checker
$ kvm-ok
## [configure bridged networking as described here][3]
$ sudo vi /etc/network/interfaces
$ sudo systemctl restart networking
$ sudo brctl show
参阅如何在 Ubuntu 16.04 LTS Headless 服务器上安装 KVM 以获得更多信息。(LCTT 译注:Headless 服务器是指没有本地接口的计算设备,专用于向其他计算机及其用户提供服务。)
 

步骤 2 - 安装 uvtool

键入以下 apt 命令/apt-get 命令:
 
$ sudo apt install uvtool
示例输出:
 
[sudo] password for vivek: 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages were automatically installed and are no longer required:
  gksu libgksu2-0 libqt5designer5 libqt5help5 libqt5printsupport5 libqt5sql5 libqt5sql5-sqlite libqt5xml5 python3-dbus.mainloop.pyqt5 python3-notify2 python3-pyqt5 python3-sip
Use 'sudo apt autoremove' to remove them.
The following additional packages will be installed:
  cloud-image-utils distro-info python-boto python-pyinotify python-simplestreams socat ubuntu-cloudimage-keyring uvtool-libvirt
Suggested packages:
  cloud-utils-euca shunit2 python-pyinotify-doc
The following NEW packages will be installed:
  cloud-image-utils distro-info python-boto python-pyinotify python-simplestreams socat ubuntu-cloudimage-keyring uvtool uvtool-libvirt
0 upgraded, 9 newly installed, 0 to remove and 0 not upgraded.
Need to get 1,211 kB of archives.
After this operation, 6,876 kB of additional disk space will be used.
Get:1 http://in.archive.ubuntu.com/ubuntu artful/main amd64 distro-info amd64 0.17 [20.3 kB]
Get:2 http://in.archive.ubuntu.com/ubuntu artful/universe amd64 python-boto all 2.44.0-1ubuntu2 [740 kB]
Get:3 http://in.archive.ubuntu.com/ubuntu artful/main amd64 python-pyinotify all 0.9.6-1 [24.6 kB]
Get:4 http://in.archive.ubuntu.com/ubuntu artful/main amd64 ubuntu-cloudimage-keyring all 2013.11.11 [4,504 B]
Get:5 http://in.archive.ubuntu.com/ubuntu artful/main amd64 cloud-image-utils all 0.30-0ubuntu2 [17.2 kB]
Get:6 http://in.archive.ubuntu.com/ubuntu artful/universe amd64 python-simplestreams all 0.1.0~bzr450-0ubuntu1 [29.7 kB]
Get:7 http://in.archive.ubuntu.com/ubuntu artful/universe amd64 socat amd64 1.7.3.2-1 [342 kB]
Get:8 http://in.archive.ubuntu.com/ubuntu artful/universe amd64 uvtool all 0~git122-0ubuntu1 [6,498 B]
Get:9 http://in.archive.ubuntu.com/ubuntu artful/universe amd64 uvtool-libvirt all 0~git122-0ubuntu1 [26.9 kB]
Fetched 1,211 kB in 3s (393 kB/s)        
Selecting previously unselected package distro-info.
(Reading database ... 199933 files and directories currently installed.)
Preparing to unpack .../0-distro-info_0.17_amd64.deb ...
Unpacking distro-info (0.17) ...
Selecting previously unselected package python-boto.
Preparing to unpack .../1-python-boto_2.44.0-1ubuntu2_all.deb ...
Unpacking python-boto (2.44.0-1ubuntu2) ...
Selecting previously unselected package python-pyinotify.
Preparing to unpack .../2-python-pyinotify_0.9.6-1_all.deb ...
Unpacking python-pyinotify (0.9.6-1) ...
Selecting previously unselected package ubuntu-cloudimage-keyring.
Preparing to unpack .../3-ubuntu-cloudimage-keyring_2013.11.11_all.deb ...
Unpacking ubuntu-cloudimage-keyring (2013.11.11) ...
Selecting previously unselected package cloud-image-utils.
Preparing to unpack .../4-cloud-image-utils_0.30-0ubuntu2_all.deb ...
Unpacking cloud-image-utils (0.30-0ubuntu2) ...
Selecting previously unselected package python-simplestreams.
Preparing to unpack .../5-python-simplestreams_0.1.0~bzr450-0ubuntu1_all.deb ...
Unpacking python-simplestreams (0.1.0~bzr450-0ubuntu1) ...
Selecting previously unselected package socat.
Preparing to unpack .../6-socat_1.7.3.2-1_amd64.deb ...
Unpacking socat (1.7.3.2-1) ...
Selecting previously unselected package uvtool.
Preparing to unpack .../7-uvtool_0~git122-0ubuntu1_all.deb ...
Unpacking uvtool (0~git122-0ubuntu1) ...
Selecting previously unselected package uvtool-libvirt.
Preparing to unpack .../8-uvtool-libvirt_0~git122-0ubuntu1_all.deb ...
Unpacking uvtool-libvirt (0~git122-0ubuntu1) ...
Setting up distro-info (0.17) ...
Setting up ubuntu-cloudimage-keyring (2013.11.11) ...
Setting up cloud-image-utils (0.30-0ubuntu2) ...
Setting up socat (1.7.3.2-1) ...
Setting up python-pyinotify (0.9.6-1) ...
Setting up python-boto (2.44.0-1ubuntu2) ...
Setting up python-simplestreams (0.1.0~bzr450-0ubuntu1) ...
Processing triggers for doc-base (0.10.7) ...
Processing 1 added doc-base file...
Setting up uvtool (0~git122-0ubuntu1) ...
Processing triggers for man-db (2.7.6.1-2) ...
Setting up uvtool-libvirt (0~git122-0ubuntu1) ...

步骤 3 - 下载 Ubuntu 云镜像

你需要使用 uvt-simplestreams-libvirt 命令。它维护一个 libvirt 容量存储池,作为一个简单流simplestreams源的镜像子集的本地镜像,比如 Ubuntu 云镜像。要使用当前所有 amd64 镜像更新 uvtool 的 libvirt 容量存储池,运行:
 
$ uvt-simplestreams-libvirt sync arch=amd64
要更新/获取 Ubuntu 16.04 LTS (xenial/amd64) 镜像,运行:
 
$ uvt-simplestreams-libvirt --verbose sync release=xenial arch=amd64
示例输出:
 
Adding: com.ubuntu.cloud:server:16.04:amd64 20171121.1
通过 query 选项查询本地镜像:
 
$ uvt-simplestreams-libvirt query
示例输出:
 
release=xenial arch=amd64 label=release (20171121.1)
现在,我为 Ubuntu xenial 创建了一个镜像,接下来我会创建虚拟机。
 

步骤 4 - 创建 SSH 密钥

你需要使用 SSH 密钥才能登录到 KVM 虚拟机。如果你根本没有任何密钥,请使用 ssh-keygen 命令创建一个新的密钥。
 
$ ssh-keygen
参阅“如何在 Linux / Unix 系统上设置 SSH 密钥” 和 “Linux / UNIX: 生成 SSH 密钥” 以获取更多信息。
 
步骤 5 - 创建 VM
是时候创建虚拟机了,它叫 vm1,即创建一个 Ubuntu Linux 16.04 LTS 虚拟机:
 
$ uvt-kvm create vm1
默认情况下 vm1 使用以下配置创建:
 
内存:512M
磁盘大小:8GiB
CPU:1 vCPU core
要控制内存、磁盘、CPU 和其他配置,使用以下语法:
 
$ uvt-kvm create vm1 \
--memory MEMORY \
--cpu CPU \
--disk DISK \
--bridge BRIDGE \
--ssh-public-key-file /path/to/your/SSH_PUBLIC_KEY_FILE \
--packages PACKAGES1, PACKAGES2, .. \
--run-script-once RUN_SCRIPT_ONCE \
--password PASSWORD
其中
 
--password PASSWORD:设置 ubuntu 用户的密码和允许使用 ubuntu 的用户登录(不推荐,使用 ssh 密钥)。
--run-script-once RUN_SCRIPT_ONCE : 第一次启动时,在虚拟机上以 root 身份运行 RUN_SCRIPT_ONCE 脚本,但再也不会运行。这里给出完整的路径。这对于在虚拟机上运行自定义任务时非常有用,例如设置安全性或其他内容。
--packages PACKAGES1, PACKAGES2, .. : 在第一次启动时安装以逗号分隔的软件包。
要获取帮助,运行:
 
$ uvt-kvm -h
$ uvt-kvm create -h

如何删除虚拟机?

要销毁/删除名为 vm1 的虚拟机,运行(请小心使用以下命令,因为没有确认框):
 
$ uvt-kvm destroy vm1
获取 vm1 的 IP 地址,运行:
$ uvt-kvm ip vm1
192.168.122.52

列出所有运行的虚拟机

$ uvt-kvm list
示例输出:
 
vm1
freebsd11.1

步骤 6 - 如何登录 vm1

语法是:
 
$ uvt-kvm ssh vm1
示例输出:
 
Welcome to Ubuntu 16.04.3 LTS (GNU/Linux 4.4.0-101-generic x86_64)
 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage
  Get cloud support with Ubuntu Advantage Cloud Guest:
    http://www.ubuntu.com/business/services/cloud
0 packages can be updated.
0 updates are security updates.
Last login: Thu Dec  7 09:55:06 2017 from 192.168.122.1
另一个选择是从 macOS/Linux/Unix/Windows 客户端使用常规的 ssh 命令:
 
$ ssh ubuntu@192.168.122.52
$ ssh -i ~/.ssh/id_rsa ubuntu@192.168.122.52
示例输出:
 
Connect to the running VM using ssh
 
Connect to the running VM using ssh

在Ubuntu 16.04上配置msmtp
 
一旦创建了 vim,你可以照常使用 virsh 命令:
 
$ virsh list

Ubuntu 17.10 上的AWFFull Web 服务器日志分析应用程序安装ubuntu Thunderbird Mail设置自动提醒Ubuntu17.10配置JDK赶快使用Firefox 57吧!速度比以前快2倍,Ubuntu用户请升级SMPlayer 17.11.2发布,修复KDE下Bug,附Ubuntu下安装方法使用LXD容器运行Ubuntu CoreVLC Web Plugin如何在ubantu linux系统上安装使用ubuntu下无法启动vivado SDK的解决办法Ubuntu 17.10主要内核更新 修复20个安全漏洞IBM发布开源现代化字体IBM Plex,应该在Ubuntu上最好

加载全部内容

Ubuntu系统排行