内容简介:为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 天前
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
A Common-Sense Guide to Data Structures and Algorithms
Jay Wengrow / Pragmatic Bookshelf / 2017-8-13 / USD 45.95
If you last saw algorithms in a university course or at a job interview, you’re missing out on what they can do for your code. Learn different sorting and searching techniques, and when to use each. F......一起来看看 《A Common-Sense Guide to Data Structures and Algorithms》 这本书的介绍吧!