去年年末,重新整理了一套基础环境搭建的Guide,之后在四次机器迁移中起到了蛮重要的作用(偷懒)。内容不定期更新修正,如有错误,欢迎指出。

大Debian系的Ubuntu使用起来甚是顺手。

首先根据自己的情况选择系统版本,建议使用最新的LTS。

比如:Ubuntu 14.04 LTS 如果安装源慢(使用国内机器/虚拟机/连接国外网络环境不佳),则替换安装源(可选)。

如果是测试环境的虚拟机,安装好之后如果没有开sshd,需要安装 openssh,开启远程SSH。

安装完毕,检查是sshd否运行:

为了机器和脚本的正常运行,设置系统时间。

更新系统,安装git、zsh、oh-my-zsh,并设置zsh为默认shell(你也可以使用你喜欢的shell)。

更新主机名称(如:bai)

如果运行WEB服务,且非资源代理机器,将HOSTS记录更新一下。

添加用户,设置用户权限(建议运行软件单独设置用户和权限)

设置“免”登录,如果你觉得用KEY安全系数还是低的话,尝试使用带密码的KEY。

如非自建靠谱二步验证机器,慎重考虑使用第三方二步验证软件,以免引入不必要的麻烦。

另外,如果有VNC这类的同网段管理软件,且不能附加key,请不要修改ssh_config中的禁止使用密码登录。

建议顺手改了sshd的端口,例如12345(改成你自己喜欢的高位端口号)

使用PAM再次对root登录用户做判断

虽然用包安装的nginx比较方便维护,但是服务器一般基础设施完备后,不会轻易变动,故,推荐使用tenginx。

下面有nginx和tenginx的安装对比,如果你喜欢nginx,简单快捷的使用。

当然,如果你想使用更多的features。

由于我的机器需要PHP runtime,而距离PHP7的来到还尚早,HHVM又发布了新版本,而且使用这么久,发觉性能真的是神一样的提高,故推荐HHVM。 安装hhvm,如果访问不能(虚拟机,网络),先绑定hosts。

然后进行安装

如果你不需要io.js的新特性,nodejs就能满足你的话,不妨使用以下命令安装:

安装mysql和redis, 因为使用supervisor管理进程,需设置redis配置daemonize:no(自己vim config就好,略)

安装进程管理工具

配置防火墙,先创建一个打底配置。

根据自己的情况选择是否开启443,如果修改过ssh的端口,顺手改掉。

应用防火墙规则

开机自动添加规则

修改系统打开文件句柄数目,有人反馈开太大会导致无法登录机器,开51200吧。

修改nginx(tenginx)的打开文件句柄上限,应对突发状况。

修改进程数量,不需要倍数,CPU几核心就几个线程就好。

如果你需要安装PMA,那么请手动安装,因为ubuntu下的包安装,会附带安装一堆apache相关内容,没必要。 这段忘记记录了,为了安全,请使用本地ip绑定访问pma,并开启自签名ssl,开启登录次数限制。 安装fail2ban

关于服务设置,稍后详述。 部分相关内容: