为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 条评论
登录 后参与评论

相关文章

来自专栏人工智能LeadAI

配置深度学习主机与环境(TensorFlow+1080Ti) | 第四章 基于Anaconda的TensorFlow安装

配置深度学习主机与环境(TensorFlow+1080Ti): 01 概念介绍 Anaconda Anaconda(https://www.continuu...

3665
来自专栏祥子的故事

Tensorflow | win10中安装tensorflow-0.12.1 (0.12.1以后的版本安装均适用)

4287

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

为了满足您的PHP应用程序的所有要求,有时您需要添加自定义模块。模块化架构是Apache服务器遍及全球的主要原因之一。大多数网站架设在Apache服务器上,我们...

1739
来自专栏开源优测

[接口测试 -基础篇] 20 用flask写一个简单server用于接口测试

概述 近期在写接口测试系列时,总感觉很不对劲,主要是缺乏一个比较完整的用于API测试的环境,四处找公开的API真心不靠谱,尝试了不少公开的,总觉得少了些什么,所...

3048
来自专栏nummy

flask生成excel下载文件

最近在使用flask的项目开发中需要从数据库读取数据,生成excel格式文件,然后供用户下载。如果想让用户下载一个文件,在http response里设置 Co...

581
来自专栏bboysoul

acccheck的使用

介绍:一个基于微软SMB协议的口令攻击工具,IPC共享攻击工具 用法:acccheck + [选项] 参数:

562
来自专栏北京马哥教育

零基础用Python | 实现12306火车票实时查询

大家都用过12306,今天我们来学习写一个Python程序,要求在命令行敲一行命令来获得你想要的火车票信息。 1 接口设置 先给这个小应用起个名字吧,既然及查询...

2849
来自专栏各种机器学习基础算法

npm下载报错情况的处理

npm是一个非常强大的包管理器,基本上前端需要的插件和框架在这上面都有,所以本人一直只用这个,其他的一律先忽视。然而使用npm时有时候会出现error以及无法下...

3218

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

为了满足您的PHP应用程序的所有要求,有时您需要添加自定义模块。模块化架构是Apache服务器遍及全球的主要原因之一。大多数网站架设在Apache服务器上,我们...

1787
来自专栏lestat's blog

ab测试中并发量导致的拒绝问题

今天对一个微信投票的小项目进行ab测试 环境:windows 10+cmd(管理员身份) 问题:在输入了ab -n 5000 -c 500 http://hos...

3459

扫码关注云+社区