内容简介:为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服务器对于大部分开源软件开发范例是最好的。它不仅是一个高效和安全的网络服务器,更重要的是它是非常高效的和可定制的。
翻译人:踏_无痕,该成员来自云+社区翻译社
原文链接:https://dzone.com/articles/enabling-custom-apache-server
原文作者:Marina Sprava
发表于 1 天前
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Powerful
Patty McCord / Missionday / 2018-1-25
Named by The Washington Post as one of the 11 Leadership Books to Read in 2018 When it comes to recruiting, motivating, and creating great teams, Patty McCord says most companies have it all wrong. Mc......一起来看看 《Powerful》 这本书的介绍吧!