2014年4月

你好!这篇文章会覆盖不同的驱动。

首先"virtio console"是一种用于hypervisors的虚拟控制台驱动。

"IPMI top-level message handler"是用于IPMI系统的消息管理器。IPMI代表的是"Intelligent Platform Management Interface"(智能平台管理系统)。IPMI是一种不需要shell通过网络管理系统的接口。

"/dev/nvram support"允许系统读取和写入实时时钟的内存。通常上,这个特性用于在掉电时保存数据。

下面一个驱动支持Siemens R3964包驱动(Siemens R3964 line discipline)。这个是设备对设备协议

现在,我们可以进入PCMCIA字符设备驱动。然而,大多数这里的驱动是供货商/设备特定的。

原始块设备驱动允许块设备绑定到设备文件上/dev/raw/rawN(RAW driver (/dev/raw/rawN))。这么做的好处是高效的零拷贝。然而,大多数软件更偏好通过/dev/sd** 或者 /dev/hd**访问存储设备。

下面,可以设置支持的原始设备的最大数量。

下面的驱动可以生成设备文件/dev/hpet (HPET - High Precision Event Timer)。

注意:你们中很多人可能会想知道为什么要启用这些设备文件问题。好的,这些设备文件充当了一个软件和硬件之间的接口。

通过这个驱动可以映射HPET驱动(Allow mmap of HPET)。映射是一个生成设备和文件在内存中的地址列表。文件接着可以通过内存地址更快地找到并且接着指挥硬盘从地址中得到数据。

"Hangcheck timer"用于检测系统是否被锁定。这个定时器监视着锁定进程。当一个进程被冻结了,定时器就开启。当定时器停止后,如果进程还没有重启或者关闭,那么定时器会强迫进程关闭。

引用Linus Torvalds的话:可移植性是对于那些无法写新程序的人而言的。

使用Trusted Computing Group(可信赖计算组)规范的TPM安全芯片会需要这个驱动(TPM Hardware Support)。

现在,我们可以进入I2C设备。I2C代表的是"Inter-Integrated Circuit"(内部集成电路)并经常被成为"eye two see"。然而,一些人会说"eye squared see"。I2C是一种串行总线标准。

一些旧的软件将I2C适配器作为类设备,但是如今的软件不会这么做(Enable compatibility bits for old user-space)。所以,这个驱动会提供对旧软件的向后支持。

接下来,可以生成I2C设备文件(I2C device interface)。

I2C可以通过这个驱动提供复用支持(I2C bus multiplexing support)。

I2C可以通过这个驱动支持GPIO控制的复用(GPIO-based I2C multiplexer)。

对于开发者用这个驱动可以在I2C和SMBus上执行不同的测试(I2C/SMBus Test Stub)。

I2C系统启用这个特性可以生成调试信息(I2C Core debugging messages)。

下一个驱动生成额外的I2C调试信息(I2C Algorithm debugging messages)。

引用Linus Torvalds的话:Linux中没有原始设备的原因似乎我个人任何原始设备是一个愚蠢的注意。

下面的驱动会使I2C驱动生成调试信息(I2C Bus debugging messages)。

接下来,我们有串行外设接口(Serial Peripheral Interface)支持(SPI support)。SPi是一种用于SPI总线的同步串行协议。

在这之后,有一个驱动用于高速同步串行接口(High speed synchronous Serial Interface support)支持(HSI support)。HSI是一种同步串行协议。

PPS同样在Linux内核中支持(PPS support)。

"IP-over-InfiniBand"驱动支持IP包通过InfiniBand(译注:一种无限带宽技术)传输。

在这之后,有一个调试驱动用于IP-over-InfiniBand(IP-over-InfiniBand debugging)。

SCSI的RDMA协议同样可以通过InfiniBand传输(InfiniBand SCSI RDMA Protocol)。

这里同样有一种通过InfiniBand传输iSCSI协议的扩展(iSCSI Extensions for RDMA (iSER))。

有时候,错误发生在了整个系统必须知道的核心系统中(EDAC (Error Detection And Correction) reporting)。这个驱动发送核心给系统。通常地,这类底层错误由处理器中报告并接着由这个驱动让其他系统进程知道或者处理错误。

这个驱动提供了在老版本中的sysfs中使用的过时EDAC的支持(EDAC legacy sysfs)。

EDAC可以用来设置发送调试信息给Linux的日志系统(Debugging)。

引用Linus Torvalds的话:没有人可以第一次创造如此好的代码,除了我。

"Machine Check Exceptions"(机器检测异常)(MCEs)通过这个驱动被转化成可读的信息(Decode MCEs in human-readable form (only on AMD for now))。MCEs是由CPU检测到的硬件错误。MCEs通常触发内核错误。

将MCE解码成可读的形式的过程可以被注射用于测试错误处理(Simple MCE injection interface over /sysfs)。

下一个驱动允许错误在内存中被检测到并纠正(Main Memory EDAC (Error Detection And Correction) reporting)。

下面,还有很多用于特定设备组的检测和纠正错误的驱动。

引用Linus Torvalds的话:理论和实践有时会冲突。那这个发生时,理论输了。每次都是。

现在我们可以进入实时时钟("Real Time Clock")。这通常缩写为"RTC"。RTC一直跟随着时间。

下面的设定允许用户在Linux系统中使用RTC时间作为"挂钟"时间(Set system time from RTC on startup and resume)。这个挂钟是我们在桌面上或者通过"date"命令看到的时间。

另外,挂钟可以通过NTP服务器得到时间并与RTC同步(Set the RTC time based on NTP synchronization)。

一些系统有几个RTC,所以用户必须设置哪一个是默认 (RTC used to set the system time)。最好设置第一个(/dev/rtc0)为主时钟。

可以设置RTC系统的调试特性(RTC debug support)。

RTC可以使用不同的接口给予操作系统当前时间。使用sysfs会需要这个驱动(/sys/class/rtc/rtcN (sysfs)),而似乎用proc需要这个驱动 (/proc/driver/rtc (procfs for rtcN))。特殊的RTC字符设备可以生成并使用 (/dev/rtcN (character devices))。shell命令"hwclock"使用/dev/rtc,所以RTC字符设备。

下一个驱动允许在/dev接口上模拟RTC中断(RTC UIE emulation on dev interface)。这个驱动读取时钟时间并允许新的时间从/dev中检索。

RTC系统可以通过测试驱动测试(Test driver/device)。

下面,我们会讨论直接内存访问系统。DMA是硬件独立于处理器的内存访问过程。DMA增加的系统性能因为处理器将做得更少如果硬件自身做了更多的任务。不然,硬件会等待处理器完成任务。

这是调试DMA系统的调试引擎(DMA Engine debugging)。

接下来,有许多的供货商/设备特定驱动用于DMA支持。

一些DMA通过这个驱动支持大端读取和写入(Use big endian I/O register access)。

大端指的是二进制码的排列。英语国家的数字系统将数字的最大端放在左边。比如,数字17,最左的数字是放置十位的地方大于个位。在大端中,每字节最大的放在左边。字节有8位。比如:10110100。每一处都有相应的值128、64、32、16、8、4、2、1。所以提到的为被转换成十进制180。

DMA系统可以使用网络减小CPU使用(Network: TCP receive copy offload)。

"DMA Test Client"用于测试DMA系统。

下一篇文章中,我们会讨论显示/视频驱动。谢谢!

参考:Linus Torvalds的引用来自于:http://en.wikiquote.org/wiki/Linus_Torvalds


via: http://www.linux.org/threads/the-linux-kernel-configuring-the-kernel-part-17.4875/

译者:geekpi 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

欢迎来到下一篇Linux内核文章。在本篇里,我们将讨论输入/输出端口。

首先,PS/2鼠标和AT键盘需要"i8042 PC Keyboard controller"驱动。在USB之前,鼠标和键盘使用圆形端口的PS/2端口。AT键盘是一种84键使用AT端口的IBM键盘。AT端口有5针而PS/2口有六针。

使用COM口(有时也称RS232串口)的输入设备需要这个驱动(Serial port line discipline)。COM是一种串口,意味着每次传输一位。

TravelMate笔记本需要这个特殊的驱动来使用连接到QuickPort的鼠标(ct82c710 Aux port controller)。

对于PS/2 mice、AT keyboards 和 XT keyboards的并口适配器使用这个驱动(Parallel port keyboard adapter)。

"PS/2 driver library"用于PS/2鼠标和AT键盘。

可以启用"Raw access to serio ports"来允许设备文件作为字符文件来使用。

下面,下面有一个用于"Altera UP PS/2 controller"的驱动。

PS/2复用同样需要一个驱动(TQC PS/2 multiplexer)。

ARC FPGA平台对于PS/2控制器需要特殊的驱动(ARC PS/2 support)。

注意:我想要说清楚这篇文章中讨论的PS/2控制器并不是Sony的PlayStation上的游戏控制器。这篇文章讨论的是6针鼠标/键盘端口。控制器是一种有PS/2端口的卡。

"Gameport support"提供对15针gameport的支持。gameport是一种曾经被很多游戏设备使用直到USB端口的发明的15针口。

下一个驱动是在ISA或者PnP总线卡上的gameport驱动(Classic ISA and PnP gameport support)。ISA代表"Industry Standard Architecture"(工业标准架构)并且它是一种在PCI之前的并行总线标准。PnP代表"Plug-and-Play"(即插即用)并且他是一种在ISA之前的通用标准。

"PDPI Lightning 4 gamecard support"提供了一个有gameport的游戏卡的专有驱动。

SoundBlaster Audigy卡是一种专有gameport卡(SB Live and Audigy gameport support)。

ForteMedia FM801 PCI音频控制器在卡上有一个音频控制器(ForteMedia FM801 gameport support)。这个驱动只支持gameport。

下一步,我们可以进入"Character devices"。字符设备以字符传输数据。

首先,可以启用/禁用TTY(Enable TTY)。移除TTY会节约很多空间,但是许多终端和这类设备需要TTY。除非你知道你在做什么,否则不要禁用TTY。

致我的粉丝:如果你知道一个禁用TTY的理由,你能在下面发表你的答案并与我们共享么?谢谢!

下一步,可以启用/禁用"Virtual terminals"(虚拟终端)。再说一次,这个可以节约很多空间,但是虚拟终端很重要。

下一个驱动支持字体映射和Unicode转换(Enable character translations in console)。这用于转换ASCII到Unicode。

虚拟终端可以用这个驱动作为系统控制台(Support for console on virtual terminal)。系统控制台管理着登陆和内核信息/警告。

虚拟终端必须通过控制台驱动与物理终端交互(Support for binding and unbinding console drivers)。在虚拟终端可用之前,控制台驱动必须被加载。当虚拟终端关闭后,控制台终端必须被卸载。

下一个驱动提供了对Unix98 PTY驱动的支持(Unix98 PTY support)。这是Unix98伪终端。

有趣的事实:Linux内核允许某个文件系统一次在很多地方被多次挂载。

接下来,可以支持"Support multiple instances of devpts"(译注:允许多个"devpts"文件系统实例)。devpts文件系统用于伪终端的slave。

过时的PTY同样可以启用(Legacy (BSD) PTY support)。

可以设置最大数量的使用中的过时PTS(Maximum number of legacy PTY in use)。

下面的驱动可以用于提供对其他驱动不支持的串口的支持 (Non-standard serial port support)。

下面有一些用于特定板和卡的驱动。

这个驱动支持GSM MUX协议(GSM多路复用)(GSM MUX line discipline support (EXPERIMENTAL))。

下一个驱动启用kmem设备文件(/dev/kmem virtual device support)。kmem通常用于内核调试。kmem可以用于读取某些内核变量和状态。

Stallion卡上面有许多串口Stallion multiport serial support)。这个驱动特别支持这块卡。

下面,我们可以进入到串行设备驱动了。如前所述,串行设备每次传输一位。

第一个驱动用于标准串口支持(8250/16550 and compatible serial support)。

在这个驱动下,即插即用(Plug-and-Play)同样存在于串口中(8250/16550 PNP device support)。

下面的驱动允许串口用于连接一个终端后作为控制台(Console on 8250/16550 and compatible serial port)。

一些UART控制器支持直接内存访问(DMA support for 16550 compatible UART controllers)。UART代表的是"Universal Asynchronous Receiver/Transmitter"(通用异步收发)。UART控制器转换串行到并行,反之亦然。

下一步,这个驱动提供了标准PCI串行设备支持(8250/16550 PCI device support)。

16位PCMCIA串行设备由这个驱动支持(8250/16550 PCMCIA device support)。记住,PCMCIA是一种通常使用于笔记本的PC卡。

可以设置最大数量支持的串口(Maximum number of 8250/16550 serial ports),接着是在启动中注册的最大数量(Number of 8250/16550 serial ports to register at runtime)。

为了扩展像HUB6的串行能力,启用这个驱动(Extended 8250/16550 serial driver options)。

一个特殊驱动用于支持多于4种的过时串口(Support more than 4 legacy serial ports)。

当启用这个驱动后,可以共享串口中断(Support for sharing serial interrupts)。

使用这个驱动可以自动检测串口中断请求(Autodetect IRQ on standard ports)。

RSA串口同样也在Linux内核中支持(Support RSA serial ports)。RSA代表的是"Remote Supervisor Adapter"(远程管理适配器)。RSA是一种IBM特定的硬件。

下面,有不同的供应商/设备特定驱动。

下面有一个使用printk输出用户信息的TTY驱动(TTY driver to output user messages via printk)。printk(print kernel)是一种通常打印启动信息的特殊软件。任何由printk显示的字符串通常在/var/log/messages文件里。shell命令"dmesg"显示所有被printk使用的字符串。

下面,我们可以启用/禁用并口打印机的支持(Parallel printer support)。

接下来的驱动允许打印机作为一个控制台(Parallel printer support)。这意味着内核消息会被逐字地由打印机打印。通常地在这个系列中使用"print"(打印)这个单词时,意味这将输出信息到屏幕上。而这次,字面上的意思是将数据输出在纸上。

以下的驱动使设备文件在/dev/parport/中(Support for user-space parallel port device drivers)。这使得一些进程可以访问。

再说一次,Linux内核有许多特性和驱动,所以我们还会在下一篇文章中继续讨论更多的驱动。谢谢!

致粉丝:我们正在接近配置过程的终点。我有一张你们很多人想知道的内核话题列表。这些话题包含了安装内核、管理模块、加入第三方驱动、还有许多其他有趣的建议和要求。


via: http://www.linux.org/threads/the-linux-kernel-configuring-the-kernel-part-16.4835/

译者:geekpi 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

为了给你们带来一些小惊喜,这次我们准备了一些在面试中随机出现的问题而不是专门关于某个领域的问题。这些问题肯定会在不深入学习新知识的前提下使你在面试中脱颖而出。

1.假设你在为你工作的公司维护一份日常的备份。这份备份是以压缩后的格式而被维护着。现在你需要检查一份两个月之前的日志,你应该提出什么样的建议从而可以在不解压这份备份的前提下完成检查日志的任务?

答案: 在不解压文件的前提下检查文件内容,我们需要用到'zcat'。zcat这个工具可以轻松完成这个任务。
# zcat ­f phpshell­2.4.tar.gz

2.你需要追踪你系统中发生的事件,你应该怎么做?

答案: 为了追踪系统中发生的事件,我们需要用到叫做syslogd的这个后台程序。syslogd这个后台程序可以追踪系统信息并将其保存到指定的日志文件中。

启用'syslogd'这个后台进程会在路径'/var/log/syslog'中生成一个日志文件。syslogd应用对解决Linux系统中的问题十分有用。标准生成的日志文件和下面这个例子很像。

syslogd

3.如何禁止特定IP访问FTP服务器?

答案: 我们可以通过运用tcpwrapper来禁止可疑的IP访问。首先在路径'/etc/vsftpd.conf'的配置文件中,将tcpwrapper这个参数设置为"tcp\_wrapper=YES",然后在'/etc/host.deny'文件中加入可疑的IP地址。

禁止访问的IP地址

打开'/etc/hosts.deny'文件。

# vi /etc/hosts.deny

在文件底端加入拒绝访问的IP地址

#
# hosts.deny    This file contains access rules which are used to
#               deny connections to network services that either use
#               the tcp_wrappers library or that have been
#               started through a tcp_wrappers-enabled xinetd.
#
#               The rules in this file can also be set up in
#               /etc/hosts.allow with a 'deny' option instead.
#
#               See 'man 5 hosts_options' and 'man 5 hosts_access'
#               for information on rule syntax.
#               See 'man tcpd' for information on tcp_wrappers
#
vsftpd:172.16.16.1

4.告诉我们Telnet和SSH之间的区别?

答案: Telnet和SSH都是用来远程管理系统的协议。与Telnet直接传输数据正好相反,安全的SSH通信协议需要通信中有密钥的交换,这说明telnet相比较于SSH不安全。

5.你需要终止你的X server,但当你尝试杀进程的时候,你遇到了表示不能退出X server的错误信息。你准备怎么做?

答案: 当你尝试杀X server的进程时,系统不会让你像使用'/etc/init.d/gdm stop'一样正常的退出X server。我们需要执行一个使X server重启的特别的键位组合'Ctrl+ Alt+ BackSpace'。

6.告诉我命令'ping'和'ping6'的区别?

答案: 这两个命令有同样的功能,但'ping6'命令可被用于ipv6的IP地址。

7.你想要在Home目录下寻找*.tar文件并一次性删除,你会怎么做?

答案: 我们要同时用到find和rm命令来删除所有*.tar文件
# find /home/ ­name '*.tar' | xargs rm ­rf

8.locate和slocate命令的区别?

答案: slocate(secure locate)会寻找所有用户有权限访问的文件,然而locate会搜索(它的数据库里面的)所有更新过的结果。

9.你要在当前目录中所有“.txt”文件中搜索“Tecmint”这个字符串,你怎么做?

答案: 用find命令在当前目录递归寻找文件中的“Tecmint”字符串。
# find ­name “*.txt” | xargs grep “Tecmint”

10.你要向所有已连接的用户发送“Server is going down for maintenance”这样一条信息,你怎么做?

答案: 运用wall命令就可以很容易地实现,wall命令可以向所有已连接服务器的用户发送信息。
# echo please save your work, immediately. The server is going down for Maintenance at 12:30 Pm, sharply. | wall

wall command


via: http://www.tecmint.com/useful-random-linux-interview-questions-and-answers/

译者:ThomazL 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

GitHub 的新文本编辑器并不完全开源,看起来并没有人在意这一点。

Samuel Greenwald 认为“任何 IT 领袖如果没有开源观念,那注定会失败。” 然而即使你的开源观念打了折扣、不那么纯粹,其实大众也并不会刁难你。特别是在你祭出古怪反复的许可证花招时,即使是开源界最精明的精英也可能被忽悠住。

例如就拿GitHub来说。GitHub 刚刚发布了Atom文本编辑器,获得了很多赞赏。虽然有些人赞美Atom“完全开源”,但其实它并非如此。在我看来,还差得很远。

某种打折扣的开源

不管怎样,并不是说 GitHub 把Atom 全部伪装成开源。正如 GitHub 联合创始人Tom Preston-Werner所说,只有“Atom 核心”代码将会是闭源的,而“其余现有的所有Atom 代码将永远遵守 MIT-licensed许可证。”原因纯粹是商业化的,他这么解释道:

Atom将不会封闭源代码,但它也不会开源。它将介于两者之间,这样我们更易于对 Atom 进行掌控,同时,人们还可以在许可证的限制下看到它如何运行。关于这一点,我们还没有最终决定究竟如何具体实施。我们将在充分的细节准备后正式启动。

早在开源的初期,我们就有了这个概念。事实上,微软也是这么做的。微软称之为“共享源代码”, 于2002年推出,共享源代码是微软为其社区提供的一种方式,用来监测,但不触及(或重新分配)微软的源代码。SAP 的大数据主管 Vijay Vijayasankar 提醒我们,对微软来说这个方法没有这么好,但对GitHub 可能会做的更好:

@dberkholz 我记得OSI人士严重批评了微软,说这是微软的一个营销噱头。但这次 GitHub 会做得更好 — Vijay Vijayasankar (@vijayasankarv) 2014年2月27日

他也许是对的。

GitHub 时代神圣不可侵犯

毕竟,微软是邪恶帝国,一直将开源抹黑为“毒瘤”之类的东西。而 GitHub,无论在哪儿,都是开源项目的养父母。 2013年 GitHub突破千万代码库,增添300万新用户,每周狂热的活跃量包括:20,000个问题,50,000个评论,250,000个来自世界各地贡献者的提交,保证了代码库进展。

换句话说,GitHub是零起点的开源项目。

也许正因为如此,GitHub 得到了一个免费通行证。在HackerNews评论上,少数人似乎过于在意,他们认为 GitHub 没有真正开源 Atom。作为一个社区,开源已经在很大程度上战胜了免费软件:少教条,更实用。我们已经身处这样一个节点,许多所谓的“GitHub一代”甚至懒得去费心将许可证分配给他们的软件

这是好事吗?

很难说,甚至很难与 GitHub 的做法争辩,它带给世界一个高品质、低成本的文本编辑器,似乎并没有伤害任何人,潜在里还可能帮助许多人。开源社区是自由意志论者:并不愿意去制定许可证,它更关心的是良好的代码和产品。

这就是为什么 GitHub、Atlassian 和 Amazon 的 Web 服务都依赖于专有软件或服务来赚钱,同时却如此惊人地受到开源开发者的欢迎。

你了解了吗?


via: http://readwrite.com/2014/02/28/github-atom-text-editor#feed=/hack&awesm=~oxpErHVIIaxz3H

译者:乌龙茶 校对:Caroline Mr小眼儿

本文由 LCTT 原创翻译,Linux中国 荣誉推出

现在我居住的地方正值炎夏,但是相比较我正在写的文章将会引来的暴风雨,还是温和了不少:是的!我正在写关于Windows GTK主题的文章。

好吧,认错时间:我,个人并没有坐在桌前想着:“我的Ubuntu桌面真的需要...需要看起来像另一个操作系统一样!”。当我确认模仿另一个操作系统的外观的行为很不对我的胃口时,但世界上有那么多的用户,没准有些用户——可能也包括你——会对这有兴趣呢!

这件事本身也并没有任何问题。虽然这会引来很多狂热爱好者或者喷子,但是这提供的种灵活性也可以更好地为改进者,自定义者和主题制作者服务,因此我说:“何乐而不为呢?”

Winodws 8 的现代UI

“Windows XP的卡通蓝边界和过度透明的Aero Glass主题早就过时了”

Windows作为世界上最被广泛运用的操作系统(吁~ 一片嘘声),那么GTK的高山与Metacity主题再邀请下模仿Windows的外观一点也不让人惊奇。

但是Windows XP年长的卡通蓝边界以及过度透明的Aero Glass已经过时,当前的热门话题应该属于五彩缤纷的现代UI。

Windows 8引入了一种平整,实心而且转折角度明显的主题特色,这位微软桌面操作系统带来了新鲜的感觉。按照在微软其他产品中的统一的设计脉络),比如Windows Phone 8以及Xbox One为用户提供了不少的相似点。

Windows 8 GTK主题与其他主题相比,更体现了它的设计感觉。我承认我并没有常用Windows 8从而可以对其设计方方面面十分了解,但是这个主题已经包含了它大多数的表面设计,如果通过这个评分的话,这个主题可以算成功的了。

在这同时,扁平化主题并不由微软专属,类似Iris Light, which we shared recently等主题都在Linux中十分流行。

下载Linux上的Windows 8主题

从GNOME-Look上可以获取文件,将他们放在'/usr/share/theme'文件夹,然后用类似Unity Tweak的应用启用配置。


via: http://www.omgubuntu.co.uk/2014/02/windows-8-metro-gtk-theme

译者:ThomazL 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

Webmail无疑是任何邮件服务器必不可少的一部分。虽然本地邮件客户端通常比Webmail的功能更多,但通过电子邮件客户端从外部可信的网络访问IMAP或SMTP有时会很棘手。再者,当你需要在一个特定的工作站、笔记本电脑或者移动设备去使用一个电子邮件客户端时,你可以在任何地方使用Webmail服务,只要你接入互联网。

本教程的重点是在一个运行 Apache 的 Ubuntu 服务器上安装配置RainLoop Webmail。RainLoop 是基于 PHP 的Webmail,并且有以下功能。

  • 支持apache,nginx和其它网页服务器。
  • 标准接口补充了一个主题库可供选择。
  • 个人和非盈利项目可免费使用。

在写这篇文章时,RainLoop 还不支持邮件过滤和不在公司时的自动回复。

在 Ubuntu 服务器上安装 RainLoop

首先,在服务器上设置必备的软件包。

# apt-get install wget unzip apache2 php5 php5-mysql libmysqlclient15-dev mysql-server poppassd 

接下来,下载和安装 RainLoop。

# mkdir /var/www/webmail
# cd /var/www/webmail
# wget http://repository.Rainloop.net/v1/Rainloop-1.6.3.706-e3c14e17bc4370a1561bcc68d1d494fd.zip
# unzip Rainloop-1.6.3.706-e3c14e17bc4370a1561bcc68d1d494fd.zip
# rm Rainloop-*.zip 

然后设置必要的权限。

# cd /var/www/webmail
# find . -type d -exec chmod 755 {} \;
# find . -type f -exec chmod 644 {} \;
# chown –R www-data:www-data /var/www/webmail 

我们马上就可以使用 RainLoop 了。最后,通过管理面板进行调整,接下来会有详细描述。

通过管理面板首次配置

很多配置参数通过一款界面友好的管理面板就能调整。使用以下凭证进入管理面板。

  1. URL: http://IP/webmail/?admin
  2. user: admin
  3. Pass: 12345

当然,建议尽快修改默认密码。我们将使用管理面板去调整一下设置。

增加邮件域

在 管理面板> 域> 增加域 页面设置有效的域。建议服务器 IP 是本地服务器,如 127.0.0.1。基于服务器配置,RainLoop 可以配置使用 IMAP/IMAPS 或 SMTP/SMTPS。并且,确认‘使用短登录表单’复选框已勾选。

使用‘测试连接’按钮验证设置。

启用联系人

联系人功能需要数据库支持。我们将使用 MySQL 数据库启用联系人。RainLoop 可以手动创建所需的数据库,如下。

# mysql -u root -p 

mysqlcreate database rainloop;
mysqlexit;

现在这个功能可以通过管理面板>联系人页面启用。

再来一次,使用‘测试’按钮检查设置。

启动密码更改插件

在多数 linux 的邮件账户的邮件服务器是用自己的 UID 和 GID 操作系统的实际用户。因此,在过去更改这些账户的密码是很棘手的。幸好,今天有工具可以完成这个工作。这个工具是 poppassd。

第一步是在服务器上安装 poppassd,可以用 apt-get 来完成。

# apt-get install poppassd 

接下来,去允许 RainLoop 使用 poppassd,从 管理面板> 软件包 页面安装 RainLoop 插件 poppassd。

最后,poppassd 插件可以从 管理面板> 插件页面启用。

现在所有参数已设置,用户可以从他们提供的凭证登录,如截图所示。

希望这篇文章能帮助到你。


via: http://xmodulo.com/2014/02/rainloop-webmail-ubuntu-server.html

译者:Vito 校对:Caroline

本文由 LCTT 原创翻译,Linux中国 荣誉推出