回顾我的服务器使用经历/重新配置Debian服务器

接触过的主机商

为了搭建自己的网站和进行测试,虽然是个前端狗,却不得不使用各种服务器。迄今为止我使用过的主机/VPS有:

  • 90启航(3块钱一个月的主机,速度死慢,用了一个月)
  • LocVPS(最初是和Ricter菊苣、Faceair菊苣和qwe小华一起合租,后来大家纷纷离开这台服务器使用自己的独立服务器,我也随之开始寻觅自己的服务器)
  • hostker主机壳(试用过这家的空间,限制很多,但是价格还可以;这家的VPS没用过,不予置评;点击这个链接注册的话,购买新的虚拟主机可以延长10天)
  • Linode(目前我用过最好用的一个VPS商,需要信用卡支付美金,这里要感谢囧叔一直以来的帮助。点击这个链接使用优惠码注册/购买)

服务器使用历程

我的Linode服务器已经使用了很久了(再次感谢囧叔)。具体的学习历程:

  • 2013年 - 使用服务器是搭建静态的纯HTML的页面做测试,那时候我还在高中,使用的是普通的90启航的静态空间,域名还是最初的nocti.me
  • 2014年上 - 困囿于服务器功能的限制,想自己手动去折腾一些php的东西,在RP主机上面开始跟着教程搭建wordpress。
  • 2014年下 - 合租VPS后,服务器的Apache配置文件当然要自己写,这阵子就开始接触到了Apache和Nginx,当时服务器使用的是Apache。
  • 2015年上 - 开始使用自己的VPS,有了自己的东京Linode服务器,尽管是最低配置($10),但是使用起来还是相当不错。这半年开始自己搭建LNMP环境,进行简单的PHP使用;搭建了自己的ShadowSocks(然而服务器重置之后是yu帮我进行的搭建…);初步开始搭建Node.js环境。
  • 2015年下 - 学习状态比较好,对于服务器的使用次数愈加频繁也更喜欢折腾,完善了Node的运行环境,又在星河的推荐下使用了Gogs,但是这时候Go语言的环境和Node的环境配置没弄好,产生了一定的冲突。
  • 2016年初 - 使用ROOT账户直接操作系统太凶残,而且也很不好,为了解决各种麻烦,让服务器更加干净有条理,将服务器进行了重新配置。
    在面板上把系统重置为Debian8.1,尝试着用更现代更易于管理的方法去使用它。

重新配置Debian服务器

新的服务器上,依旧使用Nginx作为服务器软件,php版本5.6。
数据库方面,使用了Perocna这个MySQL的分支作为数据库软件,版本信息5.6.27-76.0 Percona Server
一直以来都只用root账户对服务器进行操作修改,感觉这样并不方便,所以这次添加了用户Nocti。
在编程环境方面,为了让环境之间能够不冲突,除了php和python,都将使用Docker,将环境放进container,保持服务器整体环境的整洁有序。部分php程序也将放到container里面,做一定量的研究。

过程中的几个小问题

添加用户的问题

useradd添加用户之后,用新建用户登录,shell左侧只能见到一个$符号,而且没有tab补全、也不能使用上下左右方向键。
这个情况是因为,新添加用户所使用的shell软件与root不同。
root账户使用的shell软件是bash,而新账户使用的shell软件地址在/bin/sh,而在这里ls -l一下,就会发现如下情况:

/bin/sh -> /bin/dash

也就是说,我们的新用户使用的shell软件是dash。
此时我们应该修改用户的默认shell软件,让其使用bash。具体方法可分成3类:

  1. chsh命令来设定用户的shell
  2. 编辑/etc/passwd来设定用户的shell
  3. 修改/bin/sh的软连接,让它连接到root使用的bash软件(注:国内大部分教程采用此方法,但是极力不推荐这种方法)

将shell软件重新指定之后,就可以使用bash正常进行补全了。不过,需要重新进行登录。
再强调一次,修改软连接的方法真心不好

shell的左侧只有$符号,可以补全的情况

在修改了shell软件之后,重新登录发现可以正常补全和使用方向键,可左侧还是只有一个$符号,这是shell配置没有生效的原因。此时使用:

cd /home/username
ls -a

查看你的用户根目录有没有.bashrc这个文件。这个文件没有的话,请按照bash官方的手册进行配置或者在网上找一个。已经有这个文件之后,我们在这个目录进行source命令来执行配置:

source ./.bashrc

然后就可以直接看见效果了。左侧的$符号处的具体形态配置,可以搜索关键词PS1
可以点击bash官方文档查看更多bash相关内容,有兴趣的可以自己去折腾一下哈。

Nginx配置不生效

从旧服务器上搬运过来的Nginx配置我丝毫没动,只是简单修正了文件目录的修改,可是在php5-fpm一切正常的情况下却不能打开php文件,进行的任何php操作都是一片空白。
同种情况可能发生的原因,首先是php的起始符号的问题。有时php的配置里面是禁止使用<?这种简写的符号作为php的起始符号的,这时候修改配置(Debian下apt-get到的php的话,配置文件在/etc/php5/fpm/php.ini),修改文件内容使short_open_tag = on就好。可以在文件里进行检索关键词 short ,如果检索到:

; short_open_tag
;   Default Value: On
;   Development Value: Off
;   Production Value: Off

这样的配置,那说明默认已经是short_open_tag = on了。
而我遇到的情况不在这里。经过对于log文件的检索发现,nginx端成功地把请求甩锅给了fastCGI,然后就没有然后了,php5-fpm也接收不到,所以问题应该在fastCGI上面。
经过检索,发现需要修改fastCGI的params,我的配置位置:/etc/nginx/fastcgi_params。里面可能是少了这样一句话:

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

当然直接把这句话放进你的nginx网站具体配置也可以

location ~ .*\.php(\/.*)*$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+.php)(/.+)$;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
}

总结

折腾服务器很麻烦,部分软件的服务器环境很难搞定,互相之间的兼容也总是会出现意想不到的问题。
为了保证日后服务器管理的便利,应该熟练Docker,并配置好自己常用的几个container,以便于在更换服务器或者布置项目的时候,在处理解决服务器配置的问题上花费更少的时间。

Time is expensive.

标签: none

仅有一条评论

  1. Regards. A lot of tips.

添加新评论