从0到1搭建属于自己的服务器

01

序言

云计算这个概念从提出到现在已经十多年了,在这些年里,云计算取得了飞速的发展与翻天覆地的变化,而云计算也给我们很多开发者带来了福音,比如早期的微信公众号开发,我们可以利用百度的 BAE 或者是新浪云 SAE 很快的完成微信公众号开发。

百度的 BAE 也给我们提供了 app.conf 这种可以很快速完成路由过滤、自定义错误页面、设置过期时间等功能,而这些功能都是经过高度封装,很多时候,我们只是知道它有这些功能,但是却不知道具体是如何实现的,这个对于很多想从事开发的人来说却并非是好事。

百度 BAE 在部署容器的时候,可以选择不同的运行环境以支持用户编写的语言环境,价格比如内存 256MB,磁盘 2GB,宽带 5Mb/s,1 个执行单元的每天才 4 毛钱,价格还算是合理,而且还免费提供数据库(内存 256MB,容量 1GB)。

但是,它开放端口需要收费,每个端口按每天 0.12 元计费,此外,如果我的网站需要 Elasticsearch 做站内搜索的,如果你采用一些云平台提供的服务,相对来说价格是比较贵的,比如 BAE 的 Elasticsearch 一个节点最少都要 520 元,所以,自己动手丰衣足食!

我们干脆自己租台云服务器,自己玩,想装什么软件就装什么软件,想放行什么端口就放行什么端口,很自由,而且利用云计算的优势价格也算实惠,此外现在阿里也在大力推广自己的云平台。

下面的文章都是按照有点 Linux 基础来编写的,如果有些地方你会,请选择性阅读!整篇文章的图比较多,大家流量要充裕啊。

还得再提一下,下面的积木搭建服务器合起来就一句话:下载、编译、安装、配置文件、启动这 5 个步骤,中间可能还会涉及到其它必要环境的安装,这个就是所谓的坑,跳过去就好啦。

通篇文章,Linux 命令会很多,如果你在阅读的时候,如果对某个命令不是非常了解,你可以在 Linux 里面man 命令一下,你可以查看这个命令的帮助文档,如果你英文不是非常好,可以直接百度。

02

租赁一台服务器

我现在的服务器是购买阿里的(价格适中,在接受的范围内),我自己用的云服务器也很多,这里就不细说了,以免有打广告的嫌疑。我现在在阿里用的那个服务器是通过推荐好友送服务器的活动搞来的,这个活动目前已经结束了。

现在大家也可以看看阿里其它活动,租台服务器,通过实操中不断地积累经验,因为总在自己的电脑搞本地服务器,总会腻的,就算你玩穿透,免费经常撞壁你又吐槽,收费又嫌贵,哈哈哈,不讲大道理,这里要求一下,希望大家都用阿里的云服务器,这样我们云服务器管理控制台长得才能一样。

当然,如果你喜欢折腾,那就忽视我说的那个要求,此外购买的服务器安装的是 CentOS6 系列的 (目前我的是 CentOS6.8),大家最好和我的版本一致,CentOS6 系列和 CentOS7 系列命令有很多差别的。

如果你已经有了云服务器,那么我们开始吧。

我们先看看我们的服务器资源信息吧,首先,打开你的阿里云控制台界面,如下:

比如我的磁盘信息如下:

因为我这里没有数据盘,所以我不需要执行挂载操作,如果你的服务器有数据盘,你远程登录的时候先把那个盘格式化后挂载。如果你不知道如何远程登录没关系,下面就慢慢道来。

03

远程登录

我用的远程登录软件叫 SecureCRT,如果你没有,请点击下面的链接下载吧! 链接:https://pan.baidu.com/s/17jVMbbNuqG6DBun1gC07lQ 密码:qas6

下载后,解压,然后打开 SecureCRTPortable.exe,然后它应该长这样的:

现在我们就来连接我们的服务器吧。点击 File-Quick Connect...

然后在你的云服务器控制台找到云服务 ESC,里面的公网地址就是你远程登录的 Hostname,而 username 就是你购买服务器的时候需要给你的服务器输入用户名和密码,那个用户名就是 username,如果你没有更改,那么默认是 root,如下图:

然后点击 Connect,如下图:

输入你在购买服务器时候给你服务器设置的密码,然后勾选 save password,这样你每次登陆的时候就不必再输入密码了。如果一切顺利,那么你应该远程登录上去了。

我的进来时候是这样子的,你们刚开始的时候肯定和我的有差距的。

下面就是教大家如何更改和我一样的,首先是 alicloud 这个名词,大家的是用 IP 地址进行标识的,这个我们更改如下图所示:

点击你要更改名字的那个,然后鼠标右键,选择 rename 就可以对你已经成功登陆上的那个 IP 地址进行更名操作了。

然后我们更改背景颜色,字体还有编码,我们选择 Options---Session Options

选择 Emulation,在 Terminal 里面选择 Linux,勾选 User color scheme。

然后再选择 Appearance,Current color scheme 选择 Traditional,字体自己调试大小,Character encoding 请选择 UTF-8,否是你的服务器目录如果有中文肯定是乱码的。

以上的背景,字体,可以根据自己的喜欢来调整,如果觉得调试完成,直接点击 ok 保存即可。

最后,更改我们的欢迎界面吧,我的服务器一登录是 "Tourbis Cloud",这个是可以更改的,命令:

[root@tourbis ~]# vim /etc/motd

这个时候你进去的不是编辑模式,你需要按 a 进入编辑模式,那个时候你才能往这个文件里面写数据,里面写入你想写的任何文字,写完后,我们需要对这个文件进行保存,所以我们需要退出编辑模式,我们按 "Esc",退出编辑模式后,我们需要按一个“shift+:”然后按 wq,保存即可。

这个时候我们关闭远程登录,再次登录我们就可以看到我们的欢迎界面效果了。

04

安装 Apache 服务器

我们虽然买了一台服务器,但并不意味着我们可以通过 http 来访问我们服务器里面的资源,因为我们购买的服务器只是安装了一个 Linux 操作系统而已,而这个操作系统只是安装了基本的命令罢了 (因为我曾经购买的服务器里面连 vim,wget 这些命令都没有,都是需要自己安装)。

所以如果你想让你这台装有 Linux 的操作系统能够对外提供服务的话,那么你就需要安装一个能够对外提供服务的软件,比如微软开发的 IIS 服务器,它只能在 Windows 操作系统上跑,支持语言 asp.net,asp,PHP,tomcat 服务器,既可以在 Windows 跑也可以在 Linux 上跑,它是 Apache 基金会的 Java 服务器,搞 Java 的用它比较多。

当然还有其它服务器,比如 Apache 服务器,对静态页面支持效果很好,Nginx 服务器,对动态支持效果很好,可以做反向代理,有些公司,为了提高网站整体架构,会充分的利用 Apache 和 Ngnix 的优点,将其整合在一起使用,动态的交付给 Ngnix 处理,静态的交付给 Apache 处理。

现在我们就开始安装 Apache 这款服务器吧。

这里我们通过源码包进行安装吧。

安装编译支持工具

要编译,肯定需要一些能支持编译的插件的,所以在我们新够买的服务器应该没有装这类支持编译的工具,所以我们需要把他们装上。

命令:yum -y install gcc gcc-c++

这条命令的意思是安装 gcc,gcc-c++,可选项 - y 表示 yes 的意思,就是安装的时候不会提示你是否安装这个操作,直接就给你装了。

安装 Apache 环境支持工具

我们首先要安装 Apache 需要的支持工具,我们先安装 ARP(Apache Portable Runtime),Linux 下载命令:

wget http://mirrors.hust.edu.cn/apache//apr/apr-1.6.3.tar.gz

这个时候,它下载文件的路径是在 /root 下面,我们直接敲 cd 回车也可以到 /root 下面去的,然后我们 ls 查看,可以看到我们下载好的 apr 安装包,我们命令切换到 /usr。

[root@tourbis ~]# cd /usr

然后我们在这个目录里面创建一个 app 文件,命令 mkdir app

[root@tourbis usr]# mkdir app

然后把我们 /root 下面的 apr-1.6.3.tar.gz 文件移动到 /usr/app 下面去,命令 mv/root/apr-1.6.3.tar.gz/usr/app,如下图:

然后在 /usr/app 目录里面将其解压,解压命令:

[root@tourbis app]# tar -xvzf apr-1.6.3.tar.gz

解压后如下:

然后我们 cd apr-1.6.3 这个目录里面,执行下面的命令:

[root@tourbis apr-1.6.3]# ./configure

然后回车,它会进行检测你需要的环境是否满足,如果出现 Error,那么你一定要解决,如果没有 Error,说明检测通过,这个时候我们执行编译和安装命令。

[root@tourbis apr-1.6.3]# make;make install

上面执行了 2 条命令,先进行编译 (如果你的 gcc 这些没装,肯定是没法编译的),编译完成后安装,默认安装到 /usr/local 下面。

然后再安装 APR-util,Linux 下载命令:

[root@tourbis ~]# wget http://mirrors.shu.edu.cn/apache//apr/apr-util-1.6.1.tar.gz

注意,它编译的时候是需要 APR 的,因为我们前面是安装了 APR,所以我们在编译 APR-util 的时候需要指定这个 APR 路径。

和安装 APR 一样,把下载好的 apr-util-1.6.1.tar.gz 移动到 /usr/app 里面,命令和上面的操作一样,这里不再叙述了,然后解压,然后进入解压后的目录里面,即:

[root@tourbis app]# cd apr-util-1.6.1/

然后执行命令:

[root@tourbis apr-util-1.6.1]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr

解析一下这个命令,这个命令意思是把 APR-util 安装到 / usr/local/apr-util 里面去,后面的是它编译需要 apr 的安装路径,然后你回车,你会发现在检测的时候有 Error 出现,这个 Error 我们必须解决,不能不管直接就编译安装了。编译错误如下:

xml/apr_xml.c: In function ‘apr_xml_parser_geterror’:xml/apr_xml.c:500: error: ‘apr_xml_parser’ has no member named ‘xp_err’xml/apr_xml.c:500: error: ‘apr_xml_parser’ has no member named ‘xp_err’make[1]: *** [xml/apr_xml.lo] Error 1make[1]: Leaving directory `/usr/app/apr-util-1.6.1'make: *** [all-recursive] Error 1

解决办法:

命令:[root@tourbis apr-util-1.6.1]# yum install expat-devel

然后再进行检测一次,即:

[root@tourbis apr-util-1.6.1]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr

然后检测通过在进行编译安装。

[root@tourbis apr-util-1.6.1]# make;make install

然后我们再安装 Apache 第三个支持工具,PCRE。它的下载页面:https://sourceforge.net/projects/pcre/files/latest/download

我们需要在 Windows 上下载这个安装包,然后将其上传到服务器上去,由于它下载的是 zip 包,你可以利用 Windows 解压,然后将其上传到服务器上,也可以直接将 zip 包上传到服务器上去。

那么如何把 Windows 的文件上传通过 SecureCRT 上传到服务器呢?

我们在 SecureCRT 的登录窗口上,按着 Alt+P,然后就会出现一个 stfp session,比如,我们下面是把 E 盘的 Anaconda3 上传到服务器上去:

sftp> put -r e:/Anaconda3/

那个 - r 是可选项,如果你上传的是目录,则必须加上 - r,如果是文件可以不用加上。假设你电脑下载好了 PCRE,你解压了,那么你上传的就是一个目录,你需要 - r 才能将其上传,如果你不加 - r,它会报错。

好吧,找到你下载的 PCRE 包,将其 put 到你的服务器上去。

假设你在 Windows 上将下载的 PCRE 解压再上传,那么你这里可以选择性阅读,如果你是将 PCRE 的 zip 包上传到服务器,那么你新买的服务器如果不支持 unzip 命令,则你需要自己安装:

[root@tourbis app]# yum install -y unzip

装好后,你前面 put 的文件是存储到 / root 下面,所以我们和前面的安装一样,把它移动到 app 里面去,命令:

[root@tourbis ~]# mv /root/pcre-8.42.zip /usr/app/

如果你只细看,你会发现我现在所在的目录就是 / root,我担心有些 Linux 基础不好,所以我写了全路径,因为在这里我们其实可以这样写也是 OK 的。

[root@tourbis ~]# mv pcre-8.42.zip /usr/app/

然后解压:

[root@tourbis app]#unzip pcre-8.42.zip

然后开始安装 PCRE,进入到解压后的 pcre-8.42 目录下面,执行下面的命令:

[root@tourbis pcre-8.42]# ./configure --prefix=/usr/local/pcre ;make;make install

不知道有没有人不会看当前所在位置的,这里顺便提一下,注意看,我所在的命令执行的目录 root@tourbis pcre-8.42 是在 pcre-8.42 里面,也就是说我当前所在位置是 pcre-8.42 目录里面,命令也是在里面执行的,那个 root 就是用户名,而 tourbis 是我的 ip 映射名称,我们可以查看这个映射文件:

[root@tourbis pcre-8.42]# cat /etc/hosts

cat 命令是 Linux 的查看命令,你也可以更改这个映射名称,通过 vim 进入将其修改即可。

当我们 ARR,ARR-Util 和 PCRE 安装成功之后,我们再执行下面命令:

[root@tourbis app]# yum install zlib*

这个是必须安装,否则 Apache 服务器在编译安装的时候是会报错的。

我们就开始下载我们的 Apache 服务器,进行安装这个玩意吧。

安装 httpd

同样的道理,下载 Apache httpd 服务器,Linux 命令:

[root@tourbis ~]# wget http://archive.apache.org/dist/httpd/httpd-2.4.10.tar.gz

把下载好的 httpd-2.4.10.tar.gz 从 /root 移动到 /usr/app 下面:

[root@tourbis ~]# cd httpd-2.4.10.tar.gz /usr/app

然后再到 app 里面解压 httpd-2.4.10.tar.gz 文件

[root@tourbis app]# tar -xvzf httpd-2.4.10.tar.gz

然后把外面之前解压的 APR 和 APR-util 复制到 /usr/app/httpd-2.4.10/srclib 里面,命令:

[root@tourbis app]# cp -r apr-1.6.3 httpd-2.4.10/srclib/apr[root@tourbis app]# cp -r apr-util-1.6.1 httpd-2.4.10/srclib/apr-util

上面命令的意思解析一下,cp 是拷贝的意思,因为apr-1.6.3是目录,所以需要带可选项 - r,后面的httpd-2.4.10/srclib/是复制到的目标路径,后面的apr-util是拷贝到目标目录之后再重新命名为apr-util的意思。

然后开始进行 configure 操作,这里需要启动./configure –enable-so 编译模式,所以编译命令:

[root@tourbis httpd-2.4.10]# ./configure --prefix=/usr/app/httpd-2.4.10/apache --with-apr=/usr/local/apr/ --with-apr-util=/usr/local/apr-util/ --with-pcre=/usr/local/pcre --with-included-apr --enable-so

上面的 --prefix 指定这个编译文件安装的目录,我把它编译安装的目录选择安装到/usr/app/httpd-2.4.10/apache里面,其实就是把它安装到我的 httpd 的源码包里面的 apache 目录里面,当然,你可以自行选择安装路径。

如下图:

注意,这个 Apache 目录是它 httpd 安装时候生成的,你的源码包里面是没有这个 Apache 目录的,必须编译安装之后才会有这个目录的。如果你到了这一步,执行都是非常顺利的,那么恭喜你,你的 Apache 服务器编译安装也就结束了。

原文发布于微信公众号 - GitChat精品课(CSDN_Tech)

原文发表时间:2018-05-14

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏生信技能树

史上最全​Git使用手册

Git使用手册 目录: Git是什么 基本概念 Git的诞生 Git的安装与配置 创建版本库 Git操作略览 远程仓库:git的杀招 分支管理 便签管理 使用g...

3355
来自专栏北京马哥教育

ansible基础应用

一、运维主要工作 ? ansible聚集以上功能于一身,能够完整轻易的实现应用部署和批量命令功能,适用于主机数量不太多,再大的用puppet。 二、ansib...

3757
来自专栏程序员叨叨叨

【9】全民博客时代的到来——20分钟简要教程

很久以前就想搭建一个个人技术博客的网站了,但是那时候接触的东西不多,没有听说过hexo、jekyll、wordpress等快速blog生成工具,自己在网上找了博...

1253
来自专栏F-Stack的专栏

F-Stack Q&A 第一期

Q1:F-Stack有中断模式吗,有计划支持吗?在计算密集型的应用中,轮询模式会占用更多的CPU资源? A1:F-Stack暂时只支持轮询模式,后续会支持中断+...

6765
来自专栏deepcc

IE=edge,chrome=1的META信息详解

3918
来自专栏惨绿少年

Grafana数据可视化

一个类似Kibana的东西,也是对后端的数据进行实时展示,那么Grafana和Kibana有什么区别?在我看来区别不大,不过在大家的日常使用中Kibana是跟着...

2.6K2
来自专栏dotnet & java

这可能是最low的发布dotnet core站点到centos7教程

不得不说:我在chrome上写了好长一段,贴了23张图,然后一个crash。。我想说我电脑上的chrome已经crash太多次了 以后一定要搞离线编辑的。

853
来自专栏邹立巍的专栏

Linux 的进程间通信:管道

管道,英文为 pipe 。这是一个我们在学习 Linux 命令行的时候就会引入的一个很重要的概念。管道是UNIX 环境中历史最悠久的进程间通信方式。本文主要说明...

8362
来自专栏Python攻城狮

Django教程(一)- Django视图与网址1.简介2.环境搭建3.安装pycharm4.Ubuntu下 正确安装VMware Tools5.Django主要模块6.Django基本命令7. Dj

Django 是用Python开发的一个免费开源的Web框架,可以用于快速搭建高性能,优雅的网站!

1482
来自专栏木子昭的博客

美轮美奂的Arch, 详解Arch虚拟机安装

6305

扫码关注云+社区

领取腾讯云代金券