2017年2月

Ceph 是一个高性能、可靠、可扩展的开源存储平台。它是一个自由的分布式存储系统,提供了对象、块和文件级存储的接口,并可以不受单点故障的影响而运行。

在这个教程中,我将指导你在 Ubuntu 16.04 服务器上安装建立一个 Ceph 集群。Ceph 集群包括这些组件:

  • Ceph OSD (ceph-osd) - 控制数据存储,数据复制和恢复。Ceph 集群需要至少两个 Ceph OSD 服务器。这次安装中我们将使用三个 Ubuntu 16.04 服务器。
  • Ceph Monitor (ceph-mon) - 监控集群状态并运行 OSD 映射 和 CRUSH 映射。这里我们使用一个服务器。
  • Ceph Meta Data Server (ceph-mds) - 如果你想把 Ceph 作为文件系统使用,就需要这个。

前提条件

  • 6 个安装了 Ubuntu 16.04 的服务器节点
  • 所有节点上的 root 权限

我将使用下面这些 hostname /IP 安装:

主机名              IP 地址
ceph-admin        10.0.15.10
mon1                 10.0.15.11
osd1                  10.0.15.21
osd2                  10.0.15.22
osd3                  10.0.15.23
client                 10.0.15.15

第 1 步 - 配置所有节点

这次安装,我将配置所有的 6 个节点来准备安装 Ceph 集群软件。所以你必须在所有节点运行下面的命令。然后确保所有节点都安装了 ssh-server。

创建 Ceph 用户

在所有节点创建一个名为 cephuser 的新用户

useradd -m -s /bin/bash cephuser
passwd cephuser

创建完新用户后,我们需要给 cephuser 配置无密码的 sudo 权限。这意味着 cephuser 可以不先输入密码而获取到 sudo 权限运行。

运行下面的命令来完成配置。

echo "cephuser ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/cephuser
chmod 0440 /etc/sudoers.d/cephuser
sed -i s'/Defaults requiretty/#Defaults requiretty'/g /etc/sudoers

安装和配置 NTP

安装 NTP 来同步所有节点的日期和时间。先运行 ntpdate 命令通过 NTP 设置日期。我们将使用 US 池的 NTP 服务器。然后开启并使 NTP 服务在开机时启动。

sudo apt-get install -y ntp ntpdate ntp-doc
ntpdate 0.us.pool.ntp.org
hwclock --systohc
systemctl enable ntp
systemctl start ntp

安装 Open-vm-tools

如果你正在 VMware 里运行所有节点,你需要安装这个虚拟化工具。

sudo apt-get install -y open-vm-tools

安装 Python 和 parted

在这个教程,我们需要 python 包来建立 ceph 集群。安装 python 和 python-pip。

sudo apt-get install -y python python-pip parted

配置 Hosts 文件

用 vim 编辑器编辑所有节点的 hosts 文件。

vim /etc/hosts

粘帖如下配置:

10.0.15.10        ceph-admin
10.0.15.11        mon1
10.0.15.21        ceph-osd1
10.0.15.22        ceph-osd2
10.0.15.23        ceph-osd3
10.0.15.15        ceph-client

保存 hosts 文件,然后退出 vim 编辑器。

现在你可以试着在两个服务器间 ping 主机名来测试网络连通性。

ping -c 5 mon1

Ceph cluster Installation on Ubuntu 16.04

第 2 步 - 配置 SSH 服务器

这一步,我们将配置 ceph-admin 节点。管理节点是用来配置监控节点和 osd 节点的。登录到 ceph-admin 节点然后使用 cephuser 用户。

ssh root@ceph-admin
su - cephuser

管理节点用来安装配置所有集群节点,所以 ceph-admin 上的用户必须有不使用密码连接到所有节点的权限。我们需要为 'ceph-admin' 节点的 cephuser 用户配置无密码 SSH 登录权限。

生成 cephuser 的 ssh 密钥。

ssh-keygen

让密码为空。

下面,为 ssh 创建一个配置文件

vim ~/.ssh/config

粘帖如下配置:

Host ceph-admin
        Hostname ceph-admin
        User cephuser

Host mon1
        Hostname mon1
        User cephuser

Host ceph-osd1
        Hostname ceph-osd1
        User cephuser

Host ceph-osd2
        Hostname ceph-osd2
        User cephuser

Host ceph-osd3
        Hostname ceph-osd3
        User cephuser

Host ceph-client
        Hostname ceph-client
        User cephuser

保存文件并退出 vim。

Ceph-admin configuration

改变配置文件权限为 644。

chmod 644 ~/.ssh/config

现在使用 ssh-copy-id 命令增加密钥到所有节点。

ssh-keyscan ceph-osd1 ceph-osd2 ceph-osd3 ceph-client mon1 >> ~/.ssh/known_hosts
ssh-copy-id ceph-osd1
ssh-copy-id ceph-osd2
ssh-copy-id ceph-osd3
ssh-copy-id mon1

当请求输入密码时输入你的 cephuser 密码。

Ceph-admin deploy ssh key to all cluster nodes

现在尝试从 ceph-admin 节点登录 osd1 服务器,测试无密登录是否正常。

ssh ceph-osd1

SSH Less password from ceph-admin to all nodes cluster

第 3 步 - 配置 Ubuntu 防火墙

出于安全原因,我们需要在服务器打开防火墙。我们更愿使用 Ufw(不复杂防火墙)来保护系统,这是 Ubuntu 默认的防火墙。在这一步,我们在所有节点开启 ufw,然后打开 ceph-admin、ceph-mon 和 ceph-osd 需要使用的端口。

登录到 ceph-admin 节点,然后安装 ufw 包。

ssh root@ceph-admin
sudo apt-get install -y ufw

打开 80,2003 和 4505-4506 端口,然后重启防火墙。

sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 2003/tcp
sudo ufw allow 4505:4506/tcp

开启 ufw 并设置开机启动。

sudo ufw enable

UFW Firewall with Ceph service

从 ceph-admin 节点,登录到监控节点 mon1 然后安装 ufw。

ssh mon1
sudo apt-get install -y ufw

打开 ceph 监控节点的端口然后开启 ufw。

sudo ufw allow 22/tcp
sudo ufw allow 6789/tcp
sudo ufw enable

最后,在每个 osd 节点 ceph-osd1、ceph-osd2 和 ceph-osd3 上打开这些端口 6800-7300。

从 ceph-admin 登录到每个 ceph-osd 节点安装 ufw。

ssh ceph-osd1
sudo apt-get install -y ufw

在 osd 节点打开端口并重启防火墙。

sudo ufw allow 22/tcp
sudo ufw allow 6800:7300/tcp
sudo ufw enable

ufw 防火墙配置完成。

第 4 步 - 配置 Ceph OSD 节点

这个教程里,我们有 3 个 OSD 节点,每个节点有两块硬盘分区。

  1. /dev/sda 用于根分区
  2. /dev/sdb 空闲分区 - 20GB

我们要使用 /dev/sdb 作为 ceph 磁盘。从 ceph-admin 节点,登录到所有 OSD 节点,然后格式化 /dev/sdb 分区为 XFS 文件系统。

ssh ceph-osd1
ssh ceph-osd2
ssh ceph-osd3

使用 fdisk 命令检查分区表。

sudo fdisk -l /dev/sdb

格式化 /dev/sdb 分区为 XFS 文件系统,使用 parted 命令创建一个 GPT 分区表。

sudo parted -s /dev/sdb mklabel gpt mkpart primary xfs 0% 100%

下面,使用 mkfs 命令格式化分区为 XFS 格式。

sudo mkfs.xfs -f /dev/sdb

现在检查分区,然后你会看见一个 XFS 文件系统的 /dev/sdb 分区。

sudo fdisk -s /dev/sdb
sudo blkid -o value -s TYPE /dev/sdb

Format partition ceph OSD nodes

第 5 步 - 创建 Ceph 集群

在这步,我们将从 ceph-admin 安装 Ceph 到所有节点。马上开始,先登录到 ceph-admin 节点。

ssh root@ceph-admin
su - cephuser

在 ceph-admin 节点上安装 ceph-deploy

首先我们已经在系统上安装了 python 和 python-pip。现在我们需要从 pypi python 仓库安装 Ceph 部署工具 'ceph-deploy'。

用 pip 命令在 ceph-admin 节点安装 ceph-deploy 。

sudo pip install ceph-deploy

注意: 确保所有节点都已经更新。

ceph-deploy 工具已经安装完毕后,为 Ceph 集群配置创建一个新目录。

创建一个新集群

创建一个新集群目录。

mkdir cluster
cd cluster/

下一步,用 ceph-deploy 命令通过定义监控节点 mon1 创建一个新集群。

ceph-deploy new mon1

命令将在集群目录生成 Ceph 集群配置文件 ceph.conf

Generate new ceph cluster configuration

用 vim 编辑 ceph.conf

vim ceph.conf

[global] 块下,粘贴下面的配置。

# Your network address
public network = 10.0.15.0/24
osd pool default size = 2

保存文件并退出编辑器。

安装 Ceph 到所有节点

现在用一个命令从 ceph-admin 节点安装 Ceph 到所有节点。

ceph-deploy install ceph-admin ceph-osd1 ceph-osd2 ceph-osd3 mon1

命令将自动安装 Ceph 到所有节点:mon1、osd1-3 和 ceph-admin - 安装将花一些时间。

现在到 mon1 节点部署监控节点。

ceph-deploy mon create-initial

命令将创建一个监控密钥,用 ceph 命令检查密钥。

ceph-deploy gatherkeys mon1

Deploy key ceph

增加 OSD 到集群

在所有节点上安装了 Ceph 之后,现在我们可以增加 OSD 守护进程到该集群。OSD 守护进程将在磁盘 /dev/sdb 分区上创建数据和日志 。

检查所有 osd 节点的 /dev/sdb 磁盘可用性。

ceph-deploy disk list ceph-osd1 ceph-osd2 ceph-osd3

disk list of osd nodes

你将看见我们之前创建 XFS 格式的 /dev/sdb。

下面,在所有 OSD 节点上用 zap 选项删除该分区表。

ceph-deploy disk zap ceph-osd1:/dev/sdb ceph-osd2:/dev/sdb ceph-osd3:/dev/sdb

这个命令将删除所有 Ceph OSD 节点的 /dev/sdb 上的数据。

现在准备所有 OSD 节点,请确保结果没有报错。

ceph-deploy osd prepare ceph-osd1:/dev/sdb ceph-osd2:/dev/sdb ceph-osd3:/dev/sdb

当你看到 ceph-osd1-3 结果已经准备好供 OSD 使用,就表明命令已经成功。

Prepare the ceph-osd nodes

用下面的命令激活 OSD:

ceph-deploy osd activate ceph-osd1:/dev/sdb ceph-osd2:/dev/sdb ceph-osd3:/dev/sdb

现在你可以再一次检查 OSDS 节点的 sdb 磁盘。

ceph-deploy disk list ceph-osd1 ceph-osd2 ceph-osd3

Ceph osds activated

结果是 /dev/sdb 现在已经分为两个区:

  1. /dev/sdb1 - Ceph Data
  2. /dev/sdb2 - Ceph Journal

或者你直接在 OSD 节点山检查。

ssh ceph-osd1
sudo fdisk -l /dev/sdb

Ceph OSD nodes were created

接下来,部署管理密钥到所有关联节点。

ceph-deploy admin ceph-admin mon1 ceph-osd1 ceph-osd2 ceph-osd3

在所有节点运行下面的命令,改变密钥文件权限。

sudo chmod 644 /etc/ceph/ceph.client.admin.keyring

Ceph 集群在 Ubuntu 16.04 已经创建完成。

第 6 步 - 测试 Ceph

在第 4 步,我们已经安装并创建了一个新 Ceph 集群,然后添加了 OSD 节点到集群。现在我们应该测试集群确保它如期工作。

从 ceph-admin 节点,登录到 Ceph 监控服务器 mon1。

ssh mon1

运行下面命令来检查集群是否健康。

sudo ceph health

现在检查集群状态。

sudo ceph -s

你可以看到下面返回结果:

Ceph Cluster Status

确保 Ceph 健康状态是 OK 的,有一个监控节点 mon1 IP 地址为 '10.0.15.11'。有 3 个 OSD 服务器都是 up 状态并且正在运行,可用磁盘空间为 45GB - 3x15GB 的 Ceph 数据 OSD 分区。

我们在 Ubuntu 16.04 建立一个新 Ceph 集群成功。

参考


via: https://www.howtoforge.com/tutorial/how-to-install-a-ceph-cluster-on-ubuntu-16-04/

作者:Muhammad Arul 译者:wyangsun 校对:wxy

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

随着开源代码在商业和家用应用上越来越流行,基于它的漏洞的攻击也日益增多,据黑鸭子软件对收集的开源项目的数据统计,其预计今年的攻击增长 20% 。

黑鸭子软件安全战略部的副总经理 Mike Pittenger 介绍说,包含了 50% 以上的自由、开放源软件的商业软件项目占比从 2011 年的 3% 上升到今天的 33%。

他说,平均每个商业应用使用超过 100 个开源组件,而三分之二的商业应用代码带有已知漏洞。

更糟糕的是,软件的买家常常无法知道他们购买的软件中有哪些开源组件。

相关阅读: 浪漫开发:如何避免使用开源时易受攻击感

“一般来说,公司并不乐于提供这些”,他说到。他们为客户提供的组件列表常常是不完整的。“如果你未经他们同意就扫描二进制码,你很可能违反了他们的许可协议,给自己带来很多麻烦”。

一些大公司买家可能有权要求他们完整披露,并由第三方比如黑鸭子软件进行扫描验证。

完全避免开源软件并不是一个好的选择。很多开源库是事实上的工业标准,而且从头开始写同样的代码太耗费时间,延误了投放市场的时间,损害了公司的竞争力。因此,商业软件商使用开源代码的越来越多,这个趋势在加速,Pittenger 说到。

同样的逻辑适用于企业自建软件, ISACA 思维领导与研究部门总监 Ed Moyle 说。ISACA 是 IT 和 网络安全专业人员的一个全球化组织。

“也有很多社区支持活跃的项目,带来可靠的安全和功能更新”,他补充说。“在特定情况下,如果能够审计代码会带来安全的好处,当然也带来了高度定制软件的能力。按照以往经验,如果一个商业工具能够做什么事,很可能就会有开源工具提供同样的功能。”但是,“多个眼睛”来检查开源代码漏洞的方式并不总能有好的效果。

“任何人都可以审计代码,但也可能每个人都认为有人来审计,结果最终谁都没有做此事。” 来自 AlienVault 的安全顾问 Javvad Malik 说。“这是一个问题。”

结果,管理开源组件越来越棘手,而那些坏家伙们也意识到这一点。

开源代码到处都是,所以攻击者可以使用同样的利用方式寻找一大批目标。由于跟踪开源代码的困难,使用者常常不打补丁和更新,这样,黑客可以利用已知漏洞和已公布的缺陷利用例子。

物联网的兴起去年也成为了一个主要的安全问题,今年将继续是一个主要问题,专家们预测。

“智能设备和物联网中使用了许多开源软件,这正是 Mirai 僵尸网络病毒利用的漏洞,”Malik 说。(LCTT 译注:自 2016 年 9 月黑客操控感染了恶意软件 Mirai 的物联网设备发起了 DDoS 攻击,影响波及很多著名网站,并导致服务中断,影响颇深颇广。)

同时,开发者常常不检查开源代码漏洞,或者怀疑有问题但由于最后期限的压力,而直接使用了。所以,不只是未打补丁的漏洞存在着,还有新写的代码会集成进去旧的、已知的漏洞,黑鸭子软件的 Pittenger 说到。

商业软件项目中的漏洞平均存活时间为 5 年,他说到。

心血漏洞这个漏洞早在 2014 年初就在 OpenSSL 库中发现,并被广泛宣传。但去年,在测试的应用中仍有 10% 存在此漏洞。

此外,每年有 2000 到 4000 个新漏洞被发现,Pittenger 补充说。

要解决这个问题,需要软件商和顾客的切实行动,以及企业级软件开发者的安全意识——不过目前看在最终改善前,形势很可能还要恶化。

欢迎对此提出您的评论。

如果你在阅读本文,那么你可能是一个 Linux 新手或者是 Linux 的潜在用户。又或者我猜的都不对,你只是好奇于我所说的当今需要安装 Linux 的五大理由。

不管如何,我都欢迎你来看看我做出的解释。如果说你能够读完全文,记得使用下边的评论功能分享你的想法。

建议阅读: GNU/Linux,爱憎由之

声明:以下列出的理由并非按照重要性顺序排列。也就是说,你可以从上到下或者以你愿意的顺序来进行阅读。

理由 1 – Linux 自由、免费

在 Linux 这个生态系统中, 自由、免费 free 有两种含义:1) 自由使用 Free as in freedom 以及 2) 免费使用 Free as in beer

第一个含义意味着,你可以自由使用 Linux 做你想要的任何事,比如个人使用或者商业用途。

第二个含义表明这样一个事实,多数 (99%) 的 Linux 发行版 (或者说,不同风格的 Linux) 都可以免费的下载和运行在大多数电脑上。

建议阅读: 2016 年最流行的 Linux 发行版

商业发行版经常应用到企业环境,以便获取其后公司的技术支持。红帽公司著名的 红帽企业级 Linux 就是这样一个例子。

Linux 自由、免费

Linux 自由、免费

理由 2 – Linux 可以使老旧设备起死回生

是的,你没看错。如果你有一部老旧电脑已经积满灰尘,因为它已经无法满足其他操作系统的硬件要求,那么 Linux 可以帮你拯救它。以我的经验来说,我第一台电脑 (2000 年末,我母亲给我的高中毕业礼物) 作为家庭服务器已经连续运行 5 年了 —— 一直在使用 Debian 最新的稳定版。

建议阅读: 老旧电脑和笔记本值得尝试的 6 个 Linux 发行版

Linux 支持老旧设备

Linux 支持老旧设备

理由 3 – Linux 是学习计算机如何工作的最好工具

即使是新手,访问并与电脑硬件进行交互也是相对容易的。通过诸如 dmesg (从内核中列出相关信息)等 命令行工具加上一点耐心,你可以很容易了解从你按下电源开关到加载好一个完整可用的系统到底发生了哪些事情。当然,这只是其中一个例子。

学习 Linux

学习 Linux

理由 4 – Linux 是学习编程的最好工具

我常常说,要是我早些认识 Linux 该多好。安装好系统之后,它就具备了开始学习 Python 编程 的必备工具。作为当今最流行的面向对象的编程语言之一,Python 在多所顶尖大学里都是计算机科学专业的主修课程。

学习 Linux 及 Python 编程

学习 Linux 及 Python 编程

理由 5 – 大量自由的世界一流软件

当然,我知道这与 理由 1 多少有些相似,但我还是决定将其列为一个独立的理由。为何?因为这为我们强调了这样一个事实,我们今天所使用的软件大多数是来自于大量志愿者的努力。

是的,写出这些优秀软件的人员从中不挣一分钱。在某些情况下,也有些公司为软件的开发和维护提供资金。

建议阅读: 2015 年我找到的 20 款自由开源的软件

Linux 系统是相当稳定的,所以他们都想要将他们的软件运行其中。这就是为什么很多公司愿意为 Linux 生态系统做出大量贡献的原因 (指捐赠或者提供人力)。

自由开源软件

自由开源软件

总结

感谢你花费时间来阅读本文!关于我会第一时间建议他人使用的 Linux 的理由,我已经尽最大努力来阐述了。

如果你有不同于本文的意见,欢迎随时使用下方评论表单来分享您的观点。


作者简介:

Gabriel Cánepa - 一位来自 阿根廷圣路易斯梅塞德斯镇 Villa Mercedes, San Luis, Argentina 的 GNU/Linux 系统管理员,Web 开发者。就职于一家世界领先级的消费品公司,乐于在每天的工作中能使用 FOSS 工具来提高生产力。

译者简介:

GHLandy —— 划不完粉腮柳眉泣别离。


via: http://www.tecmint.com/install-linux-today/

作者:Gabriel Cánepa 译者:GHLandy 校对:jasminepeng

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

为了从 Linux 服务器榨取尽可能多的性能,请了解如何更改 I/O 调度器以满足你的需求。

Linux I/O 调度器 Linux I/O scheduler 控制内核提交读写请求给磁盘的方式。自从 2.6 内核以来,管理员已经能够更改这个调度器,所以他们可以自定义他们的平台以完全适合他们的需要。

有三个调度器可供选择,每个调度器都有其优点。这些调度器是:

  • CFQ Completely Fair Scheduler 完全公平调度器 (cfq) :它是许多 Linux 发行版的默认调度器;它将由进程提交的同步请求放到多个进程队列中,然后为每个队列分配时间片以访问磁盘。
  • Noop 调度器(noop) : 基于先入先出(FIFO)队列概念的 Linux 内核里最简单的 I/O 调度器。此调度程序最适合于 SSD。
  • 截止时间调度器(deadline) : 尝试保证请求的开始服务时间。

当你想要让 Linux 机器发挥最佳性能时,这可能是你所要做的事情之一。幸运的是,更改 I/O 调度器非常简单。让我告诉你怎么做。

找出你有的调度器

你需要做的第一件事是找出哪个调度器正在处理你系统上的 I/O。这是从命令行完成的,你必须知道磁盘的名称。为简单起见,我假设磁盘是 sda。据此信息,打开终端窗口并输入以下命令:

cat /sys/block/sda/queue/scheduler

该命令的结果将显示当前运行的调度程序(下图)。

Figure A

Elementary OS Loki 运行 deadline 调度器。

更改你的调度器

你可以通过两种方式更改你的调度器:即时或永久。如果你即时更改调度器,它会在重启后恢复到之前的默认调度器。你可能希望首先进行即时更改,以查看哪个调度器能为你的需求带来最佳性能。

说到你要即时改到 noop 调度器。 为此,输入以下命令:

sudo echo noop > /sys/block/hda/queue/scheduler

你可以将 noop 更改为 cfqdeadline

此更改可以在不重新启动计算机的情况下生效。 一旦更改,I/O 调度器将会切换,(希望)你能看到性能提高(再说一次,根据你的需要而定)。

如果要将调度器更改为永久,则必须在 GRUB 配置文件中执行此操作。 为此,请输入 sudo nano /etc/default/grub,然后修改下面的行:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash elevator=noop"

同样,你可以改变 noop 为任何你需要的调度器。如果你用的是即时修改,则不必重新启动以使新调度器生效。

这些就是修改调度器的方法了。

做出明智的选择

你应该做研究,找出什么调度器最适合你的特殊情况。要了解每个调度器的更多信息,请查看这些 Wiki 页面:CFSNoopDeadline


via: http://www.techrepublic.com/article/how-to-change-the-linux-io-scheduler-to-fit-your-needs/

作者:Jack Wallen 译者:geekpi 校对:wxy

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

我们在使用 DokuWiki,它是一个真棒的工具。我们团队有一个内部知识库,我们使用 DokuWiki 存储我们的所有评论、教程等。它很简单,并且易于安装和使用。在这篇文章中,我们将展示如何在 Ubuntu 16.04 服务器上安装 DokuWiki。

需求

DokuWiki 不需要太多依赖,因为它不需要数据库。这里是 DokuWiki 的要求:

  • PHP 5.3.4 或更高版本(建议使用 PHP 7+)
  • 一台 web 服务器(Apache/Nginx/任何其他)
  • 一台 VPS。买一台便宜的托管 VPS,那么你就不必这样做了。你只需与支持团队联系,他们将会为您安装。

指导

在你开始之前,你应该升级你的系统。运行下面的命令:

sudo apt-get update && sudo apt-get upgrade

安装 Apache

我们需要一台用于我们 wiki 的 web 服务器。我们在本教程中使用 Apache,但你也可以使用 Nginx 或任何其他 web 服务器。用下面的命令安装apache:

apt-get install apache2

安装 PHP7 和模块

接下来,如果你还没有安装 PHP,你应该先安装 PHP。在本教程中,我们使用 PHP7。所以请使用下面的命令安装 PHP7 和一些其他 PHP 模块:

apt-get install php7.0-fpm php7.0-cli php-apcu php7.0-gd php7.0-xml php7.0-curl php7.0-json php7.0-mcrypt php7.0-cgi php7.0 libapache2-mod-php7.0

下载安装 DokuWiki

下面就来到主要部分了 - 实际安装 DokuWiki。

首先,为你的 DokuWiki 创建一个目录:

mkdir -p /var/www/thrwiki

进入你刚才创建的目录:

cd /var/www/thrwiki

运行下面的命令来下载最新(稳定)的 DokuWiki:

wget http://download.dokuwiki.org/src/dokuwiki/dokuwiki-stable.tgz

解压 .tgz 文件:

tar xvf dokuwiki-stable.tgz

更改文件/文件夹权限:

www-data:www-data -R /var/www/thrwiki
chmod -R 707 /var/www/thrwiki

为 DokuWiki 配置 Apache

为你的 DokuWiki 创建一个 .conf 文件(我们把它命名为 thrwiki.conf,但是你可以把它命名成任何你想要的),并用你喜欢的文本编辑器打开。我们使用 nano:

touch /etc/apache2/sites-available/thrwiki.conf
ln -s /etc/apache2/sites-available/thrwiki.conf /etc/apache2/sites-enabled/thrwiki.conf
nano /etc/apache2/sites-available/thrwiki.conf

下面是 thrwiki.conf 中的内容:

<VirtualHost yourServerIP:80>
  ServerAdmin [email protected]
  DocumentRoot /var/www/thrwiki/
  ServerName wiki.thishosting.rocks
  ServerAlias www.wiki.thishosting.rocks
  <Directory /var/www/thrwiki/>
    Options FollowSymLinks
    AllowOverride All
    Order allow,deny
    Allow from all
  </Directory>
  ErrorLog /var/log/apache2/wiki.thishosting.rocks-error_log
  CustomLog /var/log/apache2/wiki.thishosting.rocks-access_log common
</VirtualHost>

编辑与你服务器相关的行。将 [email protected]wiki.thishosting.rocks 替换成你自己的数据,重启 apache 使更改生效:

systemctl restart apache2.service

就是这样了。现在已经配置完成了。现在你可以继续通过前端页面 http://wiki.thishosting.rocks/install.php 安装配置 DokuWiki 了。安装完成后,你可以用下面的命令删除 install.php:

rm -f /var/www/html/thrwiki/install.php

如果你需要任何帮助,请随意留下评论。


via: https://thishosting.rocks/build-your-own-wiki-on-ubuntu-with-dokuwiki/

作者:thishostrocks.com 译者:geekpi 校对:wxy

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

当我在运行 Linux 的计算机上安装我的第一块固态驱动器(SSD)后,我开始探索如何用好它们。SSD 在操作方式上与传统磁性驱动器不同,并且它们需要在软件上另行处理以达到功能优化。

在传统磁盘驱动器上,删除时所删除的文件不会从磁盘中完全删除。这就是为什么你可以恢复已删除的文件的原因。基本上,文件系统仅引用磁盘上文件的位置,并且当文件被删除时,该引用被擦除,以允许你在这些空间中写入新数据覆盖原来的数据。然而,对于 SSD,新数据只能写在驱动器上完全新的或已擦除的单元上。因为必须在写入之前清除空间,如果在写入文件时尚未有足够的可用空间,则必须首先擦除该空间。这可能会对性能产生负面影响。

如果操作系统在写入新数据之前就擦除了未使用的空间,而不是在写入时同时进行擦除,则可以提高文件保存性能。这种做法就是 TRIM)。 TRIM 命令本质上允许你的操作系统告诉驱动器哪些区域的数据不再使用,以便擦除它们,加快驱动器将来的写入,可以 SSD 的用户提供更佳的体验。

在 Linux 中,fstrim 提供此功能,它可以为写入新数据而准备驱动器,并延长驱动器的使用寿命。由于在我使用的 Linux 发行版上 SSD 的 trim 不是自动的,所以必须去调度该操作,否则 SSD 的性能会随着时间的推移而降低。

为了在驱动器上运行 fstrim,驱动器本身以及其上的文件系统必须支持 TRIM。在文件系统挂载过程中可以启用 TRIM。例如,为了将设备 /dev/sda2 启用 TRIM 挂载到 /mnt,你要运行:

mount -t ext4 -o discard /dev/sda2 /mnt

一旦启用,TRIM 过程本身就相当简单。TRIM SSD 也可以在命令行或 cron 任务中手动完成。作为超级用户(使用 susudo),运行 fstrim / -v 以完成手动 trim,或者设置 cron 任务以在计算机未使用时定期为你运行此命令。对于 fstrim 的完整选项列表请参考它的 man 手册

硬件支持根据使用的驱动器接口类型如 PCI、ATA#ATA)、SCSI#SCSI) 还是 SD/MMC#SD.2FMMC) 而有所不同。你需要咨询你的 Linux 供应商以了解你的特定发行版是如何支持 TRIM 的。

例如,红帽提供以下 SSD 磁盘指南。“性能随着所使用的块数接近磁盘容量而降低,性能影响程度因供应商而异,但是所有设备都会遇到一些性能降低。为了解决性能降低问题,主机系统(例如 Linux 内核)使用丢弃请求以通知存储器给定范围的块不再使用。”

Debian wiki 提供了 SSD 使用的一些基本注意事项:使用 Linux 3.2 或更高版本内核,使用 SSD 的最新固件,使用 EXT4 文件系统,并且“在正常工作负载下有足够的 DRAM 用来操作而不用使用交换空间“。


作者简介:

Don Watkins - 教育家、教育技术专家、企业家、开源倡导者。教育心理学硕士、教育领导硕士、Linux 系统管理员、CCNA、使用 Virtual Box 虚拟化。关注我 @Don\_Watkins。


via: https://opensource.com/article/17/1/solid-state-drives-linux-enabling-trim-ssds

作者:Don Watkins 译者:geekpi 校对:wxy

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