为PHP站点开启自定义Apache服务器模块

为了满足你对PHP应用程序的所有要求,有时你需要添加自定义模块。模块化架构是Apache服务器全球普及的主要原因之一。大多数网站都是通过这个服务器搭建的,我们的统计数据也证实了这一事实。这种架构可轻松扩展可选功能,如第三方插件和自定义修改。当然,新模块并不总有适合每个问题的解决方案。如果你确定这是你的PHP应用程序的唯一解决方案,那么它不应该是一个艰巨的任务以这样一种方式去设计Apache的架构。今天我们将介绍Apache模块体系结构的关键点,并向你展示如何在Jelastic ZEROCodeChange PaaS中启用它们。

注意:默认情况下安装在Jelastic Cloud中Apache模块可以在这个清单中找到。

创建环境

1.首先登录你的Jelastic账户,然后点击面板左上角的创建环境按钮。

2.在打开的对话框中,转到PHP选项卡,选择Apache作为你的应用程序服务器,并指定你的应用程序需要的云数量。然后输入你的环境的名称,并确认创建环境。

几秒钟后,你的环境将再Jelastic面板中显示可用状态。

建立你的Apache服务器模块

1.从APXS下载与Apache服务器同一版本的Apache httpd。 在我们的案例中,我们使用的是Apache 2.2.15,所以我们下载并安装httpd 2.2.15。

2.在Apache模块列表中下载所需模块的源。 为了这个案例的需求,我们将使用一个名为mod_pony的娱乐模块。

3.下一步是你对Apache模块的编译。 以下是我们编译mod_pony模块的方法:

apxs -i -a -c mod_pony.c
/usr/lib64/apr-1/build/libtool --silent --mode=compile gcc -prefer-pic -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -Wformat-security -fno-strict-aliasing  -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE -pthread -I/usr/include/httpd  -I/usr/include/apr-1   -I/usr/include/apr-1   -c -o mod_pony.lo mod_pony.c && touch mod_pony.slo
/usr/lib64/apr-1/build/libtool --silent --mode=link gcc -o mod_pony.la  -rpath /usr/lib64/httpd/modules -module -avoid-version    mod_pony.lo
/usr/lib64/httpd/build/instdso.sh SH_LIBTOOL='/usr/lib64/apr-1/build/libtool' mod_pony.la /usr/lib64/httpd/modules
/usr/lib64/apr-1/build/libtool --mode=install cp mod_pony.la /usr/lib64/httpd/modules/
libtool: install: cp .libs/mod_pony.so /usr/lib64/httpd/modules/mod_pony.so
libtool: install: cp .libs/mod_pony.lai /usr/lib64/httpd/modules/mod_pony.la
libtool: install: cp .libs/mod_pony.a /usr/lib64/httpd/modules/mod_pony.a
libtool: install: chmod 644 /usr/lib64/httpd/modules/mod_pony.a
libtool: install: ranlib /usr/lib64/httpd/modules/mod_pony.a
libtool: finish: PATH="/usr/local/sbin:/bin:/sbin:/usr/bin:/usr/sbin:/sbin" ldconfig -n /usr/lib64/httpd/modules
----------------------------------------------------------------------
Libraries have been installed in:
   /usr/lib64/httpd/modules
 
If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:
   - add LIBDIR to the `LD_LIBRARY_PATH' environment variable
     during execution
   - add LIBDIR to the `LD_RUN_PATH' environment variable
     during linking
   - use the `-Wl,-rpath -Wl,LIBDIR' linker flag
   - have your system administrator add LIBDIR to `/etc/ld.so.conf'
 
See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
chmod 755 /usr/lib64/httpd/modules/mod_pony.so
[activating module `pony' in /etc/httpd/conf/httpd.conf]

4.最后你会得到你的Apache模块的.so文件。我们通过下面的路径得到了一个mod_pony.so文件:

/usr/lib64/httpd/modules/mod_pony.so .

上传和配置你的模块

1.回到之前创建的Jelastic环境,点击Apache服务器的Config按钮。

2.然后将您的.so文件上传到模块文件夹。

3.转到conf文件夹,并在httpd文件中添加以下格式的LoadModule字符串:

LoadModule {module-name}_module /usr/lib64/php/modules/{file-name}.so

例:

LoadModule pony_module /usr/lib64/php/modules/mod_pony.so

4.指定你的模块所需的设置。

例如,为了进一步配置mod_pony模块,我们需要在webroot> ROOT目录内创建一个.htaccess文件,并命名一个位置让它指向管理者:

<Files pony>
     SetHandler pony
</Files>

不要忘记保存你的设置!

5.重新启动Apache服务器以启用Apache模块。

6.确保您的Apache模块正常工作。 在我们的案例中,我们已经有了一个小马图像。

只需几个简单的步骤,你就可以享受你自己的自定义模块。我们可以得出这样的结论,Apache服务器对于大部分开源软件开发范例是最好的。它不仅是一个高效和安全的网络服务器,更重要的是它是非常高效的和可定制的。

本文的版权归 踏_无痕 所有,如需转载请联系作者。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏GreenLeaves

HTTP传输数据压缩

一、基础 1、HTTP压缩是指: Web服务器和浏览器之间压缩传输的”文本内容“的方法。 HTTP采用通用的压缩算法,比如gzip来压缩HTML,Javascr...

4457
来自专栏pangguoming

Ubuntu 14.04 分区方案

我磁盘大概还有70多G的空间吧,我全部拿来使用的。真实的双系统哦。 一般来讲,linux系统分区最少要包括/和/swap两个。这样据说会影响性能,没有这样安装过...

4256
来自专栏Bug生活2048

Python优雅的操作Exchange邮箱——exchangelib模块使用介绍

需求很简单,只需要登录自己的Exchange邮箱,然后遍历所有邮件,有附件的就下载下来。

6572
来自专栏Crossin的编程教室

把你开发的网站免费发布到互联网上(2)

前几天,我们介绍了通过 PythonAnywhere 在互联网上创建一个站点: 把你开发的网站免费发布到互联网上(1) 本篇是上一篇的延续,来讲一讲如何将已有的...

3789
来自专栏闵开慧

让XP支持4G内存

  4G内存已经成为很多中高档笔记本电脑的标准配置。前两篇文章介绍了WIN7系统4G内存的破解过程和4G内存的完美利用。但是,很多朋友还是习惯用32位 XP系统...

1.4K11
来自专栏智能大石头

[netcore]CentOS安装使用.netcore极简教程(免费提供学习服务器) 新生命团队netcore服务器免费开放计划

本文目标是指引从未使用过Linux的.Neter,如何在CentOS7上安装.Net Core环境,以及部署.Net Core应用。

2000
来自专栏数据和云

性能优化:Linux环境下合理配置大内存页

熊军(老熊) 云和恩墨西区总经理 Oracle ACED,ACOUG核心会员 PC Server发展到今天,在性能方面有着长足的进步。64位的CPU在数年前都已...

8705
来自专栏carven

ubuntu下的apache端口反向代理

  在国庆期间,自己这用node.js做了一个即时聊天系统,挂在2000端口上。 可是每次都在网址后面加一个:2000显得有点奇怪,也很麻烦,于是就想到了反向代...

1140
来自专栏张戈的专栏

解决启用WP-Super-Cache后出现的几个问题

近期,随着新版互推联盟自适应 iframe 代码的推出,调用的博友也慢慢增加了 ,这是很高兴的事情,也有博友反应调用的这个页面加载会有点慢。我来说明一下,因为这...

4286
来自专栏从零开始学 Web 前端

基于Github&Hexo的个人博客搭建过程

在这里我会从 Web 前端零基础开始,一步步学习 Web 相关的知识点,期间也会分享一些好玩的项目。现在就让我们一起进入 Web 前端学习的冒险之旅吧!

2593

扫码关注云+社区

领取腾讯云代金券