/首页
/开源
/关于
兼职运维零碎篇章(一)
发表@2018-09-13 09:15:22
更新@2023-01-21 22:47:40
>前言:上大学那会儿,记得是大二开始翅膀硬了,开始折腾Linux系统,印象中ubuntu 8.04。第一次安装是使用的wubi方式安装,后来用了一两天看到有人喷wubi安装不是真正的安装,导致性能损耗,于是我就果断开始研究来一次正儿八经的安装。由于还是离不开windows的,所以必须搞双系统。手头只有一台电脑,手机是键盘式的nokia 2630是无法查询足够信息的,所以当时必要在网上查完安装教程后必须用纸和笔一步一步记录下来,而且还得充分搞明白每一步的原理(至少得搞明白为什么要这么做)。结果当然是成功的,因为功课都做的足足的。ubuntu + windows XP双系统,由grub负责引导启动。 再后来,买了一本书叫做《鸟哥的Linux私房菜》,看完后翅膀就更硬了,天天格式化我那台thinkpad折腾系统,fedora、centos、redhat、ubuntu四大样来回折腾。后来选择了ubuntu,不过那会儿最热衷的还是折腾桌面美化之类的。曾经还有一段时间,我故意把grub menu中的内容弄没,然后每次开机后手动控制grub去启动磁盘,非常地“高端”,很多人都无法借用我的电脑,因为实在是打不开,教都教不得。 后来参加工作后,接触多进程、libevent之类的,变得不得不在linux环境下工作,而不是像很多人那样,windows下sublime码代码,然后github提交控制发布。要知道,积目APP的所有代码几乎都是我在Linux下直接配合vim码出来的,以至于后来积目的员工也都直接这么搞。实际上,我认为这是一种拔高成长,而不是流程化退步。 很多小公司,十来个人直接起炉灶干活儿的,怎么可能会有运维,你去找老板要运维,老板弄不好会指着运营说“这不就在这里吗?”上天注定了就是要你不仅要撸代码而且还得管服务器。我认为国内有个很不好的风气(也可能是我太主观了),就是很多泥腿子在首次接触Linux的时候,一上来就是接触的centos,那些文章往往都是如下语句“centos是redhat的旁系分支、什么稳定可靠之类云云”,然而在我看来,所谓的稳定可能更多是内核以及软件老套不愿意更新而已,不过话说回来,人家这么说肯定是没错的,没什么好喷的,但是很多泥腿子就开始老老实实从centos开始了,而且只认centos,一说ubuntu可能就是不稳定之类。实际上,ubuntu如果你使用桌面版,那我承认他确实不怎么稳定,但是你要用ubuntu做服务器,完全没有什么问题的,在我看来(可能我见识少,没挨过坑)ubuntu也一样稳定可靠流程高性能。所以,要说的第一点就是: - 不要人云亦云 - 多尝试多折腾 - 不要一接触centos,就觉得习惯了centos。大多数泥腿子接触Linux之少的程度,压根就谈不上说习惯了哪个发行版 好了,废话不多说了,鉴于大多数游览观光我博客的都是泥腿子phper,所以,今儿这个就是简单说明下在自己兼职运维并只领一份开发工资的情况下,如何快速高效地整一套LNMP环境出来。 这里有一个大的原则,那就是能通过包管理器来搞定,就尽量不要自己去编译安装,自己啥水平心里就没点儿B数么?老板给你多发运维工资了么?说的就是你,老赵,天天装逼自己编译安装。 现在linux众多发行版的包管理器一般是氛围两大阵营:apt和yum。所以,我们按照apt和yum的纬度来简单普及一波儿LNMP,确切说是NMP。 首先是apt系: 下面我在腾讯云上搞了一台纯净的ubuntu 16.04机器,第一步,我们安装PHP。通过ssh连接上服务器后,我们先看看系统有没有自带php(比如Mac OS,php是与生俱来的,也不知道他们是不是闲的),输入php -v,结果如下图: ![](https://ti-node.com/static/upload/6437919330150645761) 一段英文提示就是“The program ‘php’ can be found in the follwing packages:”,大概意思就是php我没安装,下面的包里面有,然后注意最后一行提示:“Try:sudo apt install
”,这句话翻译过来就是“使用sudo apt install package尝试安装一下”。 这么良心的系统,连安装提示都给你列出来了,你还说你不会用,扪心自问一下自己是不是智商不够? 然后我们人家的提示按部就班地输入: ```php sudo apt install php7.0-cli(实际上我们输入sudo apt install php就可以了,包管理器一般情况下都是比较智能的) 其实如果你不知道包的正确名称,你完全可以利用tab自动补齐功能来帮你搞定,输入sudo apt install php后,不要敲回车而是多按几次tab键,有惊喜,就问你屌不屌 ``` 回车后执行,终端刷刷地闪过后,就算安装完毕了,我这里截图一小部分,你们感受一下: ![](https://ti-node.com/static/upload/6438041704976089088) 然后我们通过php -v来确认一下php版本(实际上通过上面的信息就可以知道是7.0版本): ![](https://ti-node.com/static/upload/6438042769968594945) PHP算是安装完毕了,下面安装Mysql数据库,由于并不知道准确的mysql的包名称,所以用tab键来搞定: ```php sudo apt install mysql(连续狂敲tab键) ``` ![](https://ti-node.com/static/upload/6438044108488441856) 从名字中就应该能看出来包名的大概意思和功能,只不过有些让人疑惑的地方,比如mysql-server和mysql-server-5.7是几个意思,应该用哪个?其实你可以试一下,比如就先试一下mysql-server看看,注意看下图: ![](https://ti-node.com/static/upload/6438046093828685825) 认真看图中,就可以看到如果你执行sudo apt install mysql-server实际上就是安装的mysql-server-5.7,同时还将mysql cli客户端也一并安装上去了(mysql-client-5.7),然后注意的是mysql的安装过程中可能需要你输入确认root账号的密码: ![](https://ti-node.com/static/upload/6438046962204803073) 那么mysql安装好了,如何看服务是不是已经启动了呢?其实方法太多了,我说三个: 1. netstat -ant | grep 3306,看看3306端口是不是OK的 2. ps -ef | grep -v grep | grep mysql,看看有没有mysql进程 3. sudo service mys(狂敲tab键自动补齐) status(其实这里也可以tab自动补齐) 当然了,最狠的办法还是直接输入mysql -uroot -p进行连接来确认服务是否正常启动。 然后是紧接着是nginx服务器,套路一样一样的,利用好tab补齐,输入: ```php sudo apt install nginx(狂拍tab键) ``` ![](https://ti-node.com/static/upload/6438048440122343425) 如何判定nginx是否成功安装并启动呢?作为作业,请参考检测mysql的三种方法都试试看。 ubuntu(其实本质上讲是debian系)包管理器安装有一个很大的好处,就是安装的软件都会被正确的放到正确的linux目录中,比如配置文件一定都会在/etc目录下,同时配套的启动脚本也一定会放在/etc/init.d目录下,除了通过service命令进行管理这些服务外,还可以直接通过/etc/init.d/mysql(服务脚本名)来进行管理,几乎所有的服务都是统一一致的,非常快捷好用! 比如我们要查看nginx服务当前的状态,我们就可以通过sudo service nginx status来查看,同时也可以通过sudo /etc/init.d/nginx status来查看,mysql的也一样。 到最后,留两个小问题自己尝试解决一下: 1. 如果还没有安装fpm,请使用包管理器安装好fpm并打通与nginx的通信 2. 安装好redis并能使用 如果上面问题基本上都能解决了,那作为开发你就基本上可以应付一定的运维场景的!