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

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

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

创建环境

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

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

在几秒钟之内,您的环境将从Jelastic仪表板中可用。

建立你的Apache服务器模块

1. 使用与Apache服务器相同的版本 从 apxs 下载 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 =编译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]

最后你会得到 你的Apache模块的 .so文件。我们得到了一个 具有以下路径的 mod_pony.so文件:/usr/lib64/httpd/modules/mod_pony.so

上传和配置您的模块

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

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

3.导航到 conf 文件夹,并 通过添加以下格式的LoadModule字符串,将更正到 httpd文件:

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服务器代表了开源软件开发范例的典型。作为一个网络服务器它不仅是高效和安全,更重要的是它是可定制和高产出的。

本文的版权归 QonkeyQun 所有,如需转载请联系作者。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏皮振伟的专栏

[linux][memory]进程的最大内存使用量的讨论

前言: 一个进程最大能使用多少虚拟内存,能控制的地方还是比想象的多一点。 尤其是IaaS上,一个qemu进程能使用多少虚拟内存,就是对应着虚拟机的物理内存的最大...

2.3K11
来自专栏魏艾斯博客www.vpsss.net

解决 WordPress 插件更新“需要访问您网页服务器权限”的问题

3456
来自专栏Felix的技术分享

Stetho的通信原理

3223
来自专栏Java编程技术

Druid连接池原理学习

(1)、 如果设置了maxWait或者构造函数参数传入的为true,则创建的ReentrantLock为公平锁,否者为非公平锁 (2)、 如果设置了initi...

1.8K1
来自专栏Java编程技术

UML建模(组件图)

组件图是为了展示组元(components),组元提供的接口(provided inerfaces)和需要调用的接口(required interfaces),...

7102
来自专栏IT笔记

JavaWeb项目架构之Elasticsearch日志处理系统

Elasticsearch (ES)是一个基于 Lucene 的开源搜索引擎,它不但稳定、可靠、快速,而且也具有良好的水平扩展能力,是专门为分布式环境设计的。 ...

7907
来自专栏腾讯Bugly的专栏

H5 缓存机制浅析 移动端 Web 加载性能优化

1 H5 缓存机制介绍 H5,即 HTML5,是新一代的 HTML 标准,加入很多新的特性。离线存储(也可称为缓存机制)是其中一个非常重要的特性。H5 引入的离...

3892
来自专栏源码之家

一键安装桌面及VNC

5686
来自专栏pythonlove

Linux防火墙iptables(二)

上一篇文章我们说了一些iptables/netfilter的基础知识,本文我们来介绍一下iptables的规则编写。Iptables的规则可以概括的分为两个方面...

3832
来自专栏西安-晁州

小程序开发知识点总结

我承认,最近比较懒了,博客也很久没更新了,太对不住自己了,做了一段时间小程序开发,总结了一些知识点,直接上菜。

2521

扫码关注云+社区

领取腾讯云代金券