前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >为PHP站点启用自定义Apache服务器模块

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

作者头像
QonkeyQun
发布2018-01-09 09:30:41
1.2K0
发布2018-01-09 09:30:41

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

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

创建环境

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

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

Apache服务器PHP站点的环境
Apache服务器PHP站点的环境

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

Apache服务器环境
Apache服务器环境

建立你的Apache服务器模块

1. 使用与Apache服务器相同的版本 从 apxs 下载 Apache httpd。在我们的例子中,我们有Apache 2.2.15,所以我们将下载并安装 httpd 2.2.15。

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

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

代码语言:javascript
复制
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服务器。

Apache服务器配置
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

Httpd文件编辑
Httpd文件编辑

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

例如,为了进一步配置 mod_pony 模块,我们需要 在webroot> ROOT 目录内创建一个 .htaccess文件, 并命名映射到处理程序的位置:

代码语言:javascript
复制
<Files pony>
     SetHandler pony
</Files>

Apache服务器模块设置
Apache服务器模块设置

不要忘记保存您的设置!

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

6.确保您的Apache模块正常工作。在我们的情况下,我们有一个小马图像。

Apache服务器模块
Apache服务器模块

只需几个简单的步骤,您就可以享受您自己的自定义模块。我们可以得出这样的结论:Apache服务器代表了开源软件开发范例的典型。作为一个网络服务器它不仅是高效和安全,更重要的是它是可定制和高产出的。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 创建环境
  • 建立你的Apache服务器模块
  • 上传和配置您的模块
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档