一个垃圾的服务器运维指南

(这次真的托更了好久啊,,足足拖了3个星期,不过可能还要再拖,,等frp装上之后)

本片的指南,,或者说“指南”全部是基于我的垃圾服务器s3的配置而写成的,基本可以说是个人的习惯,而且有很多仅仅是Linux的约定俗成,有经验的人士大概不用看这个东西,如果要看的话,也请仅作为参考,而不是照搬照抄,这样可能会产生意料之外的问题。

首先是操作系统,由于我用不太惯apt包管理器,于是就选择了免费的CentOS作为服务器的长期操作系统,但是有一些软件仅支持Ununtu(如MC基岩版的服务端),可以用docker解决,,系统的话也只是个人偏好,请根据自己的习惯进行选择。

(我现在都开始怀疑这到底是不是一个教程了,,)

一般刚开始拿到服务器的时候,一般都是先关闭SELINUX(当然你会用的话可以不关),更改sshd运行端口,防火墙(我用的firewalld)开放新的sshd端口,更改root密码。除此之外我一般会把root禁用,然后开一个自己的账号授予root身份(伪root账户),具体操作的话,先建立账户,设置密码,然后编辑”/etc/passwd”文件如下:

#/etc/passwd 修改前
root:x:0:0:root:/root:/bin/bash
...
YourAccount:x:1???:1???::/home/YourAccount:/bin/bash
#1???指一个数字,不确定是多少

#修改后
root:x:0:0:root:/root:/sbin/nologin
#/sbin/nologin是不能登录的
...
YourAccount:x:0:0:root:/root:/bin/bash
#把uid改成0就和root账户没什么区别

这样,root账户便不能登录,新建的YourAccount账户就有了全套的root权限(事实上就是root账户),这样可以进一步避免被暴力破解root(高权限,账户名已知)密码的风险。读者还可以使用秘钥验证来进一步增加安全性。

至于Web那一套服务器,我使用的是LNMP(Nginx+MySQL+PHP),安装的话,我使用的是lnmp.org所制作的一个一键安装/管理脚本,原因是方便管理和升级之类的操作。脚本的话使用的是编译安装,所以在ARM设备上也是可以使用的(armv6-armv8均可),理论上可以在任何平台使用(前提是有相应的编译器)。然后下面是基本的默认存放地址(Web相关,LNMP脚本版本1.5):

/home/wwwroot/ #网站根目录
/usr/local/nginx/ #nginx相关目录
/usr/local/nginx/conf/vhost/ #虚拟主机配置文件目录
/usr/local/nginx/conf/ssl/ #脚本自带证书申请默认存放目录

其他的说实话我也不记得了,,不怎么用,需要的话直接去lnmp.org查就好了。个人建议用vhost实现多个不同功能的网页/网站,不推荐写到一个配置文件或一个server块下。

顺带说一句,这个脚本创建虚拟主机(vhost)的时候,会在/home/wwwroot/相应文件夹内添加一个.user.ini,这个玩意还不能直接删除,需要执行chattr -i [file]解锁,如果只是修改的话,改完了记得加上锁(虽然我也不知道这个干什么用的)chattr +i [file]。至于升级的话,,参见这篇博客,,

补充:一般为了避免网页编码问题,我会在nginx配置文件的server块后加”charset utf-8;”,实现强制使用https的方法是在监听80端口的server后加入”rewrite ^(.*)$ https://$host$1 permanent;”

对于很多没有预编译包但提供源代码的软件,可以尝试加入epel源再试试yum安装(主要为x86平台),方法如下:

yum -y install epel-release
yum update

然后再尝试yum安装你需要安装的软件。

也可以采用编译安装的方法(更通用,适用所有处理器架构),一般情况下系统提供的gcc/c++或其他语言的库都足够进行编译,但也不排除glicb或其他依赖库版本不够的情况,这种情况就比较麻烦了,,

一般情况下编译安装的软件/usr/local/路径下(可能是约定俗成),一般软件的默认路径也都是这样,若不是,一般也手动指定到/usr/local/中,编译安装的一般指令如下:

cd /path/to/source_code/
./configure --prefix=/path/to/install_dir
#--prefix是指定安装路径的,可选。也可以加其他参数,具体看软件说明。也可能是其他配置指令
make -j4 #4线程编译,可指定。若编译失败请使用单线程(去掉-j选项)
make install #安装

一般编译安装时间较长,建议开一个screen或其他类似工具让他待在后台。还有时会出现编译配置不正确,出现某个文件编译不过去(编译选项少了-liconv等),这是可以手动编译相关文件,再试试继续执行make指令。

如果在安装或进行其他操作时提示无权限(Permission Denied),请使用sudo指令或使用更高权限账户。若还有问题,请检查相关文件/服务的操作权限。

关于ownCloud的搭建及各种问题(虽然后来用的NextCloud),参见这篇博客

关于ngrok开源版的搭建方法,参见这篇博客

关于CentOS中的使用Docker搭建Ubuntu环境并运行MineCraft基岩版服务器,参见这篇博客

关于Seafile的搭建(x86,armv7)及各种问题,参见这篇博客

若有任何意见或建议,请在评论区评论

发布者:Tabing010102

???

留下评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据