方亮的专栏

之前一直从事Windows上的客户端软件开发,经常会处理和服务器交互相关的业务。由于希望成为一个全栈式的工程师,我对Linux上服务器相关的开发也越来越感兴趣。趁着年底自由的时间比较多,我可以对这块做些技术研究。虽然这些知识很基础也很老,但是对我这样的新人来说还是挺有意思的。

初期目标是可以让虚拟机中的服务架设成功,且实体机可以访问。服务器我选择了相对熟悉点的Ubuntu——Ubuntu Server 14.04.1 LTS 32位版本()。而服务我则选用大名鼎鼎的Apache。(转载请指明出于breaksoftware的csdn博客)

简易安装Apache

我先在虚拟机的ubuntu上安装软件源上的Apache。为了简便,我直接使用了tasksel命令

打开软件配置界面

然后使用空格选中LAMP server。使用回车确认选择,这样将自动安装相关软件——包括Apache。待安装完毕,使用service httpd start方式启动http服务。这样我便可以在实体机上使用ip访问该服务了。

但是这儿有个问题,我们始终访问的是一个静态页面。而现实中http服务器要实现更多更复杂的功能。比如我们日常使用的日志服务,一般需要解析URL,并将一些参数做相关运算后放入数据库中。显然这样的需求是一个静态页面无法满足的。

编译Apache

作为一款著名的服务软件,能得到如此的市场占有率,必然有其很多优点。其中一个优点肯定是其构架是良好的——可以想象,其构架也必然是“对扩展开放”的。否则增加一点需求,就得去阅读和修改Apache的源码,无疑将大大提高使用者的难度,便不会有如此多的用户。那我们我们希望可以处理url解析这样的简单需求,肯定也是通过插件这类的方式实现的。然而,我们编译一个插件,一般是需要借助一些库——软件自带的库、软件关联的库……那么为了不遗漏这样那样的库,我们就需要构建一个环境——可以完全编译Apache源码的环境——连Apache都可以编译,那么其最基础功能的插件肯定也可以编译。

从下载Apache源码。目前使用的是2.4.12这个版本。获取完该压缩包,我们将它解压到/usr/src目录下

wget tar xvfz httpd-2.4.12.tar.gz -C /usr/src 我们切入解压目录,执行./configure 我们发现,如果环境尚不完善,将会报缺少APR和APR-Util和PCRE库。 ARP库

官网:

wget tar xvfz apr-1.5.1.tar.gz -C /usr/src./configure –prefix=/usr/local/aprmakemake install ARP-Util库

官网:

wget tar xvfz apr-util-1.5.4.tar.gz -C /usr/srcmv apr-util-1.5.4 /usr/src/./configure –prefix=/usr/local/apr-util –with-apr=/usr/local/aprmakemake install PCRE库

官网:

wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.36.tar.gztar xvfz pcre-8.36.tar.gz -C /usr/src./configure –prefix=/usr/local/pcremakemake install openssl库

官网:

因为https等模块会用到加密等方法,所以我们要拉取openssl。Ubuntu系统中好像已经带了openssl的库文件。但是我们在编写插件时,会使用到它的头文件,所以我们也把它拉取和编译下。

wget tar xvfz openssl-1.0.2.tar.gz./config –prefix=/usr/local/opensslmakemake install 这些库准备好后,我们就再到Apache的解压目录下,执行./configure就行了(可能需要指定部分库的路径)。./configure还有很多参数可以供选择,具体我不在这儿说明了。因为我们前期目标是搭建成功——能用就行。

如果我们之前已经安装了源中的Apache,那就要卸载掉它——apt-get remove apache2。

经过漫长的编译,Apache终于编译完了。但是事情总不能一帆风顺,我运行可执行文件httpd时,会报libpcre.so.1(64位系统好像是报libpcre.so.0)找不到(使用lld httpd查看文件关联)。还好这种找不到文件的问题很好解决:

启动Apache:

使用ifconfig查看IP,我们在宿主电脑的浏览器里输入IP。我们将得到如下结果:

接受失败,是我们不常听到或看到的一个命题,

方亮的专栏

相关文章:

你感兴趣的文章:

标签云: