apache的bin目录下的apxs有什么作用? PHP模块加载运行方式
一个perl脚本
安装http server扩展模块用的
apxs - APache eXtenSion tool
–with-apxs2=/usr/local/apache/bin/apxs
整合 apache,apxs功能是使用mod_so中的LoadModule指令,加载指定模块到 apache,要求 apache 要打开SO模块
-with-apxs2的作用是
与 apache的工具apxs配合,产生模块文件到目录/usr/local/apache/modules/,同时也会
自动在apache的配置文件中写入一行"LoadModule php5_module modules/libphp5.so";
接着需要把php与apache整合在一起,这个过程很简单,由于在安装php时已经完成了模块的加载,接下来只要在apache的配置文件 httpd.conf加上"AddType application/x-httpd-php .php"一行就行了(注:.php前面有空格)
1. 模块加载运行方式
以模块加载的方式运行,其实就是将PHP集成到web服务器,把PHP模块化到Apache里,以同一个进程运行。思此运行模式在使用apache服务器经常使用,通过加载模块(linux SO,window DLL)中,PHP是与Web服务器(Apache)一起启动并运行的,是apache在CGI的基础上进行的一种扩展,加快PHP的运行效率。
以linux为例编译PHP,在./configure步骤需要指定--with-apxs2=/path/to/apache/bin/apxs表示告诉编译器通过Apache的mod_php5/apxs来提供对PHP5的解析。
在make install的时候我们会看到将动态链接库libphp5.so(Apache模块)拷贝到apache2的安装目录的modules目录下(编译Apache 时要带--enable-modules=so,不实际编译模块但允许加载模块),然后在httpd.conf配置文件中添加LoadModule语句来动态将libphp5.so 模块加载进来,从而实现Apache对php的支持。
LoadModule php5_module /path/to/module/modules/libphp5.so//windows下载PHP一般为php5apache2_2.dll PHPinidir "/path/to/php.ini"
DirectoryIndex index.html index.php
AddType application/x-httpd-php .php
PHP作为Apache模块,Apache服务器在系统启动后,预先生成多个进程副本驻留在内存中,一旦有请求出现,就立即使用这些空余的子进程进行处理,这样就不存在生成子进程造成的延迟了。这些服务器副本在处理完一次HTTP请求之后并不立即退出,而是停留在计算机中等待下次请求。对于客户浏览器的请求反应更快,性能较高。
参考: http://forthxu.com/blog/article/42.html
apache的bin目录下的apxs有什么作用? PHP模块加载运行方式的更多相关文章
- 解决 org.apache.ibatis.binding.BindingException: Invalid bound statement (not found) 以及MyBatis批量加载xml映射文件的方式
错误 org.apache.ibatis.binding.BindingException: Invalid bound statement (not found) 的出现,意味着项目需要xml文件来 ...
- Tomcat的bin目录下startup.bat、Tomcat6.exe、Tomcat6w.exe区别
从官方下载了apache-tomcat-6.0.37-windows-x64.zip安装包,解压后bin目录下的startup.bat.Tomcat6.exe.Tomcat6w.exe 3个程序有何区 ...
- 生成解决方案,主项目的bin目录下没有其他项目生成的dll
问题说明: 我的项目组成: 主项目为:TaskUtlity 在生成解决方案的时候在TaskUtlity的bin目录下老是找不到ProBonus项目生成的dll. 解决方案: 1.打开sln文件,找到P ...
- MongoDb的bin目录下文件mongod,mongo,mongostat命令的说明及使用
MongoDB的下载地址:http://www.mongodb.org/downloads. 下载好直接解压安装包,即可使用. bin目录下的几个文件说明: mongo 客户端程序,连接MongoDB ...
- vs2012中程序集生成无法自动在网站Bin目录下生成Dll文件?(已解决!)
最近,突然发现生成程序集后,网站bin目录下dll没有更新,也没有自动生成dll文件,通过近半个小时的摸索和实验,找到了解决方法: 1.右键网站,不是项目,选择[属性页],在左侧[引用]中如果没有,就 ...
- 2个问题,解决tomcat启动一闪而过和运行tomcat/bin目录下的startup.bat时报错(the CATALINA_HOME environment variable is not defined correctly)
1.除手动使用开始菜单自启动或者程序启动TOMCAT时TOMCAT一闪而过,这时候是发生了错误,这时候我们打开BIN目录下的“startup.bat”文件,编辑,在结尾添加pause命名,这样在CMD ...
- Mac进行 usr/bin 目录下修改权限问题,operation not permitted
一般情况下我们在使用mac系统过程中下载一些文件.新建一些项目之后,这些文件都会默认是只读状态,这时我们只需要简单的一句权限设置命令就可以解决 你要修改文件上层目录的路径 但是我们在对 usr/bin ...
- tomcat9 点击bin目录下的startup.bat一闪而过
我装的是tomcat9免安装版,jdk版本是11,之后去tomcat bin目录下点击startup.bat闪退(好吧,只有想办法解决了) 博客中的解决办法五花八门,什么环境变量没配好....不过都不 ...
- jdk1.6中bin目录下的工具及其作用
jdk的javaw.javac等的介绍java:在msdos终端窗口中执行.class文件,即解释执行.class文件.通常所说的jvm解释权.javaw:在java自己的窗口中执行.class文件而 ...
随机推荐
- django之admin管理工具
admin组件 admin是django提供的基于web的管理工具 >如何使用: 1.激活管理工具 通常会在生成项目时在urls.py中自动设置好 from django.urls import ...
- weex中使用sass(失败)
在编辑器中可以正常编写不报错 但是在页面上不起作用 <style lang="scss" scoped></style> 第一步 安装依赖 npm i ...
- 页面系统,浏览器检测- 网页基础模块(JavaScript)
// 浏览器检测,获取,弹出框提醒IE 返回浏览器详情 function GetbrowserSys() { var BrowserMatch = { init: function() { this. ...
- 基于vue的实战步骤
1.脚手架vue-cli安装 npm install -g vue-cli (npm init -f 生成package.json文件) vue init webpack myapp cd myapp ...
- vue 和react的区别
1.数据是不是可变的 react整体是函数式的思想,把组件设计成纯组件,状态和逻辑通过参数传入,所以在react中,是单向数据流,推崇结合immutable来实现数据不可变. react在setSta ...
- ubuntu1604使用之旅——网络配置
首先是虚拟机的设置是如图所示,桥接模式. 1.ifconfig,下图所示,ens32是本机的网卡,记住这个,有用. 2.输入:sudo gedit /etc/network/interfaces 默认 ...
- <? extends T> <? super T>
拿前者来说,这其实就是一个指定的泛型,不过这个泛型可以是T及T的任何子类, 如果一个set方法,是把一个泛型对象T赋值给一个泛型T属性,现在这个T变成了<? extends T>,那么se ...
- 为何放弃Eclipse,选择IntelliJ IDEA,看完终于明白了
如果你初次用idea,毫无目的的度娘如何使用IDEA 浪费的将会是大量的时间.一套让你花时间,少走弯路的视频教程(下载地址:https://pan.baidu.com/s/1gfeX3hD) ...
- TensorFlow占位符操作:tf.placeholder_with_default
tf.placeholder_with_default 函数 placeholder_with_default( input, shape, name=None ) 请参阅指南:输入和读取器>占 ...
- 【转】Win32程序中调用ActiveX控件
#include "stdafx.h" #include <iostream> #include <windows.h> #include <comd ...