分类 Linux 下的文章

这是b站一个小伙伴问到的。但是具体哪里出问题了我也不是很清楚,所以就写一下我的安装过程。简而言之,就是通过archlinuxcn源来完成

1、编辑/etc/pacman.conf,在末尾添加以下文本:

[archlinuxcn]
Include = /etc/pacman.d/mirrorlist-archlinuxcn

2、通过命令pacman -Syu更新软件仓库

3、通过命令pacman -S archlinuxcn-keyring安装cn源的密钥环

4、通过命令pacman -S vmware-workstation安装vmware即可。

效果图:

视频点此

利用服务器搭建一个BT种子/磁力链下载机,省去我们自己挂机的烦恼。如果你的VPS在国外,可能还会起到些许加速的作用。

请注意,我服务器的操作系统为CentOS7,安装有宝塔面板

一、安装并配置Transmission

Transmission 是一款开源、跨平台的BT文件下载客户端,同时也提供有服务器使用的离线下载方案。对于大多数Linux发行版来说,Transmission已经进入到软件源中,只需要安装并进行简单的配置便可以投入使用了。

1、如果之前没有配置epel源,需要先行添加

yum -y install epel-release
yum -y update

2、安装Transmission-daemon

yum -y install transmission-daemon

3、先运行一次,以产生配置文件

  • 先启动 systemctl start transmission-daemon
  • 再关闭 systemctl stop transmission-daemon

4、编辑文件/var/lib/transmission/.config/transmission-daemon/settings.json,查找并修改如下几句以保证可以在任意地方通过账户密码登陆管理transmission

"rpc-authentication-required": true,  
"rpc-enabled": true, 
"rpc-password": "远程调用的密码", 
"rpc-whitelist-enabled": false,
"rpc-username": "远程调用的用户名", 

5、如果想在服务器重启后这个服务可以自动启动,可通过命令systemctl enable transmission-daemon实现

二、配置宝塔面板

1、在安全页中,放行9091端口

注意:transmission默认使用9091端口。所以请保证9091没有被占用。否则请在刚刚提到的settings.json中修改端口号

2、配置一个nginx下载,指向transmission的下载目录。默认是 /var/lib/transmission/Downloads

nginx下载服务配置方法,参见 利用Nginx建立简单的下载服务器


现在,通过命令systemctl start transmission-daemon来启动,并在浏览器中输入服务器ip:9091来看看吧。

至此,一个基本的种子离线下载环境就搭建完成了。默认的界面有些简陋,可以自行进行美化。同时,settings.json文件中还有很多其他的设置向,根据需要修改即可。

视频点此

先来假设一个场景。

众所周知,Steam的软件一定是保存在某一个文件夹下面的。假如说,我有一个分区专门保存我的游戏,那么我如何才能将Steam的游戏都直接放在分区下面而不是在Steam库文件夹下面呢?

在看过我今天这个神奇的快捷方式之后,你就知道要怎么做了。


要注意,今天这个功能,Win、Linux、Mac都是可以使用的。只是Win与另外两者的命令有些不同。而Linux对文件之类的快捷方式本身就会用到这种。所以为了对比,我这次在Win下进行演示。直接上演示让你感受一下。

一、文件

我事先已经安装好了{{7z这个压缩软件:C:\Program Files\7-Zip}},是可以正常使用的。现在,我把安装目录下的7z.dll剪切到{{桌面:C:\Users\gameb\Desktop}}。显然,由于缺少了7z.dll这个库,尝试运行时候会提示出错。

如果我们把7z.dll复制一份普通的快捷方式放到安装目录下面,它可以运行吗?很明显,快捷方式只是一个很弱鸡的快捷方式,并不能行使dll文件本身的职能,所以还是出错的。顺便请你记住这个快捷方式的大小:1KB.

现在,用管理员身份打开命令提示符,使用mklink "C:\Program Files\7-Zip\7z.dll" C:\Users\gameb\Desktop\7z.dll的形式来召唤那个更强大的快捷方式。

可以看到,它的大小占用为0K. 然而,虽然体积近似于没有,但当我们尝试运行7z的时候,你会惊奇的发现:它可以运行了!这个比弱鸡快捷方式的体积还小的快捷方式竟然可以履行dll本身的职能!

二、文件夹

现在,我们在把目光转移到文件夹上。我事先在桌面建立了一个名字叫temp的文件夹。现在我们创建一个普通的快捷方式,放到这个文件夹内,双击,资源管理器的路径会显示到哪里?

没有错,还是它本身的位置没有动。

但是,通过命令mklink /D C:\Users\gameb\Desktop\test\test C:\Users\gameb\Desktop\test,为它创建那个强大的快捷方式,放到它自身目录下面。如果我们双击这个,资源管理器的路径会如何变化?

正如你所见,它真的多了一层!不断的双击还会不断的加多!这个快捷方式真的行使了文件夹的职能了!

这个快捷方式,叫做符号连接

至于它太细节的东西我不打算多说了,因为说了也没啥用。只通过这个图来给你简要说明一下符号连接与快捷方式的不同之处就好了。

正如你所见,一个文件被存放的时候,它会对应一个名称保存在分区开始的内容表中。而快捷方式其实是一个类型为快捷方式的文件。当我们双击快捷方式的时候,其实是访问了快捷方式这个文件,然后它再给引导到它所对应的文件上面。本质上快捷方式和它所对应的文件是不一样的。

但符号连接就不同了,它其实是文件的另一个名字,所以我们双击符号连接和双击文件本身的效果是相同的。

形象一点来说。假如我是用户,你是文件,我直接访问文件就是我直接找的你;而快捷方式就是你公司的传达室大爷,我通过快捷方式访问文件,就是我去找这个老大爷,让他帮我传个话;那么符号连接,就好比是你的电话号码。我通过符号连接访问文件就是我用电话来联系你。虽然看起来多了一层,但我还是直接找到你的。

通过这个比喻,我们还可以顺带着说明另一个问题:你只有一个,而且位置确定。所以直接访问文件必须到存放文件的位置;传达室大爷可以有很多个,可以被放在公司不同的门口。所以快捷方式可以有很多个,也可以放在不同的位置;电话号码同样可以有很多个,我只需要找到任何一个电话号码就行了。所以符号连接也可以有很多个,存放在任何位置。

现在,你应该对符号连接有一个大概的认识了吧。对于应用来讲,符号连接和文件本身是同一个东西。所以借助这个,我们可以很轻易的实现我开头说到的问题——将Steam的游戏直接放在分区下面而不是在Steam库文件夹下面:只需要把游戏文件夹剪切到分区下面,然后在Steam库文件夹建立对应的符号连接就可以了。

最后,说一下Linux和OSX的命令如何书写吧——这个命令很常用所以我觉得你应该挺熟悉的:ln -s 需要创建连接的目标 创建的位置

如果你翻看过Linux系统的根目录,你会发现很多符号连接。所以这个在Linux下面的用处是很大的。当然,对于Windows也一样。只要你有足够的创造力。

视频点此

服务器还能干点儿啥?

那就搭一个全平台的同步盘吧。没有被和谐的顾虑,没有广告的困扰,还能扩展各种各样的功能。来看看怎么搭建。

一、通过docker

可以安装docker,然后通过docker run -d -p 自定义一个没用过的端口号:80 nextcloud一行命令,即可完成搭建并启动。之后,访问服务器ip:端口号来配置管理员帐号,即可完成。

二、手工搭建

1、通过按照我这个系列来的话,你应该安装过宝塔面板。那么现在去宝塔面板,安装php7.3.

2、安装完毕后,点击网站—添加站点,弹出窗口:

  • 域名自定,可以用ip,也可以用一个域名
  • 根目录自定
  • FTP不创建
  • 数据库选择mysql-utf8mb4
  • 用户名密码随意,自己能记住就好
  • PHP版本选择刚刚安装的PHP73
  • 分类随意
  • 提交

3、前往https://nextcloud.com/install/#instructions-server,复制Nextcloud的下载地址

4、宝塔中,打开到刚刚建立站点的根目录,删除文件夹下的所有文件。通过远程下载功能,将安装包下载到服务器上,并解压到根目录中(直接解压的话,会多一层Nextcloud文件夹。进入,将所有文件移动出来即可

5、访问网址,设置管理员账户。让后点开存储&数据库一项,将其改为MySQL,并填入刚刚的数据库名、用户名和密码。安装完成

三、手工搭建可能有的部分问题及解决方案

1、您的网页服务器未正确设置以解析“/.well-known/caldav”及您的网页服务器未正确设置以解析“/.well-known/carddav”

这两个警告可以一起解决,解决方法就是添加两行重定向配置。

在宝塔网站类别中,前往对应站点的设置—伪静态标签),添加如下两行:

location = /.well-known/carddav {
return 301 $scheme://$host/remote.php/dav;
}

location = /.well-known/caldav {
return 301 $scheme://$host/remote.php/dav;
}

2、PHP 的设置似乎有问题, 无法获取系统环境变量. 使用 getenv(”PATH”) 测试时仅返回空结果

从宝塔文件管理,打开/www/server/php/73/etc/php-fpm.conf,在其尾部添加一行:

env[PATH] = /usr/local/bin:/usr/bin:/bin:/usr/local/php/bin

保存并重启PHP服务。

3、PHP 模块 ‘fileinfo’ 缺失. 我们强烈建议启用此模块以便在 MIME 类型检测时获得最准确的结果

前往宝塔的PHP7.3管理窗口,选择安装扩展,安装fileinfo

4、Your data directory and files are probably accessible from the Internet. The .htaccess file is not working. It is strongly recommended that you configure your web server so that the data directory is no longer accessible, or move the data directory outside the web server document root.

同1,在伪静态中增加下列代码:

location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)/ {
    deny all;
}

5、内存缓存未配置,为了提升使用体验,请尽量配置内存缓存

同3,增加APCu模块,后去往网站根目录/config下,编辑config.php,在结尾的花括号前增加一行

'memcache.local' => '\OC\Memcache\APCu',

保存

6、The PHP OPcache is not properly configured. For better performance it is recommended to use the following settings in the php.ini:

  • 同3,增加opcache模块
  • 在PHP7.3管理界面,选择配置文件标签,找到[Zend Opcache],用以下内容覆盖zend_extension之后,下一个[]之前的内容:
opcache.enable=1
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.memory_consumption=128
opcache.save_comments=1
opcache.revalidate_freq=1

7、Some files have not passed the integrity check. Further information on how to resolve this issue can be found in the documentation

点击后面的查看列表。对照列表删除根目录下对应的文件即可。

视频点此

经过上一期的介绍,想必你已经可以建立起来一个自己的博客了。所以这种基本的网页服务我就不再多说了。但是,我们为了实现网站,给我们的服务器安装了宝塔面板和网站的执行环境。它们还能怎么用呢?今天我就来聊聊这个。

如果你是按照我的视频来操作的,那么你现在应该使用的lnmp这一套环境。而其中的N——Nginx,这个高性能HTTP和反向代理web服务器,便是今天我要拿来开刀的一个玩意儿。通过它,我们可以快速建立一个下载服务。

你可能会问:我弄这么一个下载服务,有什么用呢?

一般来讲,没什么用。但假如你有我这样的需求,就是让服务器定时的去从某个地方下载当天最新的文件——当然,我的实际用处在于每天的北京时间3点,去录制我最喜欢的Contry Radio的电台节目,供我之后下载收听。这个电台是捷克语电台,每天放送捷克语乡村音乐。如果偏爱乡村音乐的话推荐去听一听。链接在这里

需要注意一点啊,我是使用VPS的,服务器本体在德国的一个机房。所以你想让我直接用U盘拷贝那真是天方夜谭…另外,我当然可以通过宝塔面板来下载,但是每次还得登陆帐号、切换到文件管理、打开文件夹下载,这太麻烦,还不如一劳永逸,只要我输入对应的网址,就能弹出下载列表供我下载,这多好。

正是懒惰驱使了服务完善。所以今天就来看一看,如何建立一个很简易的下载服务器吧。


  • 登陆宝塔面板,在软件部分找到Nginx,点击弹出配置窗口。
注:如果没有,可以前往软件商店,在列表中找到同样的项目,点击后面的设置
  • 切换到配置修改标签,在右侧窗口的结尾添加如下文字:
server { 
    listen    9000;    #端口 
    server_name localhost;  #服务名 
    charset utf-8; # 避免中文乱码
    root  /www/wwwroot/downloads; #显示的根索引目录,注意这里要改成你自己的,目录要存在 
 
    location / {
      autoindex on;       #开启索引功能 
      autoindex_exact_size off; # 关闭计算文件确切大小(单位bytes),只显示大概大小(单位kb、mb、gb) 
      autoindex_localtime on;  # 显示本机时间而非 GMT 时间 
    }
  }
  • 保存,切换到服务标签,点击重载配置,一个简易的下载服务就做好了。
  • 但是现在可能还不能访问,因为宝塔的端口规则没有放行。前往宝塔的安全标签,在防火墙窗格中,端口填入刚刚设置的端口号,点击放行
  • 现在,你可以在浏览器输入你服务器的ip:配置的端口号来访问,或者通过对应ip的域名来访问看一看了。

注意:如果需要多个下载服务,一种方法可以在刚刚设置的根目录下面建立子文件夹,另一种方法则可以在配置文件下面新建多个server,只需要确保使用的端口没有被占用即可。


这么一个下载服务器,虽然简陋,但也很实用。就看你的创造性能不能想到它的用处了。那么一个服务器还能有什么作用呢?我们下次接着说。

视频点此

如果你看过了上次的视频,那么现在你的服务器应该已经被你赋予了运行网站的能力了。那么,我们怎样才能快速的搭建一个个人网站出来呢?今天着重来看看这个问题。

当然,你完全可以自己来写——只要你有时间来做这件事。但从零开始这东西,又难又麻烦,就不如利用现有的一些解决方案来实现对不对。那么,现如今都有哪些解决方案可以供你使用呢?

很多。所以我也不可能都介绍一遍。找一些非常容易上手的方案来介绍,我说着也省事你听着也明白,两全其美。

WordPress

一个非常知名的方案——WordPress。

这是一个可以算得上是全能型的解决方案了。它可以让你轻松搭建诸如论坛、网店、CMS等各种类型的网站——即使WordPress最初是以个人博客的身份出现的。

WordPress的用户规模很庞大,在百度上面以WordPress为关键词进行搜索,可以看到成千上万条相关的结果。此外,如果关注一下网站和大型博客的页脚——好像大型博客这词听着有点儿怪…但我也不知道怎么形容那种内容庞大、流量也大的信息发布平台——你会发现有不少都会留下一句:Powered by WordPress。可见WordPress这老大哥在业界的地位。

它为什么可以这么流行?首先,插件系统庞大,这使得管理员可以通过WP很方便搭建各种类型的网站;其次,部署方便。方便到什么程度,我们现在就来看一看。

在这之前,默认你是跟着我上次的视频,是个宝塔用户啊。毕竟我面向新手,图形化终归会更亲民一些。

  • 进入宝塔面板,选择网站—添加站点
  • 弹出窗口,这里有几个注意的地方

    • 想必你还没申请域名。所以在域名这里直接填入你服务器的IP地址即可
    • 根目录的文件夹名称是可以自定义的,可以随便修改
    • FTP可以不创建,毕竟有宝塔面板,用不到FTP来管理文件。不过对于文件夹操作,还是FTP更方便一些
    • 数据库选MySQL,版本应该只有一个,用户名密码设置好
    • PHP版本选择5.6,应该也只有一个
    • 提交,这时会告诉你一些用户名和密码,尤其记住数据库的各种信息
  • 现在在网站的根目录应该可以看到刚创建的文件夹了——不出意外,应该是/www/wwwroot/下面有一个文件夹,进入
  • 现在去往WordPress官网下载最新的WP,最好用tar.gz方便一会儿操作。另外为了避免下载再上传,可以复制下载链接,切换到刚刚的宝塔面板,点击远程下载,直接将文件下载到服务器上。当然如果没有宝塔也无所谓,终端命令下面的wget同样可以做到
  • 现在回到宝塔面板的首页,启动底部功能区的宝塔SSH终端,进行下述操作

    • cd命令切换到网站根目录
    • tar -xzvf 下载的文件名,将压缩包解压到网站根目录下
  • 好了,现在打开浏览器,输入ip,回车,WordPress的部署界面是不是出现了呢?根据提示填入,确定。一个新的WordPress站点出现了

这里可能看起来比较繁琐。主要是因为考虑到你可能用的是Windows系统。如果你也使用Linux,完全可以在文件管理器的地址栏输入sftp://ssh的用户@地址:端口号来挂载服务器磁盘,一切操作就好像在自己电脑上一样,简单明了。

有没有被Linux吸引到?

Typecho

使用WordPress,非常大的好处,就是如果有问题,百度可以很方便的找到解决方法。但正限于其功能强大插件繁多,以至于其在一些低配置的服务器上(VPS、树莓派等等)运行速度比较缓慢,从而使得网站的浏览体验变差。如果你没有很多的建站需求,仅仅是想搭建一个自己的博客,那么Typecho这个方法可能是更好的选择。

Typecho有一个最大的特点:开发进度异常缓慢——十多年了,刚刚到1.1版本(17年10月释放的最新版本)。但正是因为其开发慢,所以插件们不需要频繁的更新以兼容新版本,也使得功能的追加基本为0。所以到现在typecho仍然是一个完全专注于个人博客的一个系统。更简介的功能使得其在同等硬件配置条件下,其执行速度要优于WordPress,特别是在低配置的VPS上。

其部署过程与WordPress几乎相同,所以这里就不再说明了。


两者各有优劣。你要怎么选择呢?

我觉得上文我已经给出大概的答案了:如果你需要搭建很多种类型的网站,有很多的功能需求,那么使用WordPress绝对是最好的选择;反之,如果只是想做一个个人的博客,那么Typecho的轻量快速同样会让你眼前一亮。

但是,市面上的建站方案千千万,这里提到的这两个仅仅是动态站家族的两名成员,静态博客的方案一样很多。但是由于静态博客要求每次编写好一篇文章之后,需要手动执行生成网页的命令并上传到服务器,没有太多的精力来维护,或者初次接触个人博客的话,还是动态站来的更直接一些。

至于插件和主题,无论是WordPress还是Typecho都可以很方便的安装使用,这里自己探索一下就可以了。

建立一个个人博客是不是很简单呢?那么服务器还能干什么,我下次接着说。