首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >为PHP站点开启自定义Apache服务器模块

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

作者头像
Techeek
发布2018-01-02 16:37:39
1.6K0
发布2018-01-02 16:37:39
举报
文章被收录于专栏:云计算云计算

为了满足你对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 条评论
热度
最新
推荐阅读
目录
  • 创建环境
  • 建立你的Apache服务器模块
  • 上传和配置你的模块
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档