Apache HTTP服务器扩展模块的工具-apxs

摘要:
不,web和php现在不能一起使用。apxs是为了实现apache扩展功能,以便php和web服务可以一起使用。因此,要使用这种扩展机制,您的平台必须支持DSO功能,并且Apachehttpd必须内置mod_So模块。如果满足所有这些条件,您可以轻松地使用apxs安装自己的DSO模块,以扩展Apache服务器的功能。

1.安装httpd

  1. # yum install httpd 
  2.  
  3. # service httpd start 

在地址栏里输入http://172.16.22.1(你输入你自己的IP地址,这个是我的),验证web服务是否可以正常工作。

2.安装mysql

方法和LAMP(linux下apache+mysql+php)平台编译安装的实现的安装mysql的方法一样,这里不再赘述。

说明:这个mysql安装不是编译安装,而是解压之后就可以使用,相当于绿色软件哦。

3.编译安装php

①解决依赖关系:

  1. # yum -y groupinstall "X Software Development" 
  2. # yum -y groupinstall "Development Libraries"  # yum -y groupinstall "Development Tools" 

如果想让编译的php支持mcrypt扩展,需下载 libmcrypt-2.5.7-5.el5.i386.rpm

libmcrypt-devel-2.5.7-5.el5.i386.rpm两个软件包,此时我们支持扩展。

  1. # rpm –ivh libmcrypt-2.5.7-5.el5.i386.rpm libmcrypt-devel-2.5.7-5.el5.i386.rpm 

②编译安装php-5.3.10

 首先下载源码包至本地目录。

  1. # tar xvf php-5.3.10.tar.bz2 
  2. # cd php-5.3.10 
  3. # ./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-openssl --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml  --with-apxs2=/usr/local/apache/bin/apxs --with-mcrypt 

说明:如果前面第1步解决依赖关系时安装mcrypt相关的两个rpm包,此./configure命令还可以带上--with-mcrypt选项以让php支持mycrpt扩展。

说明:此时你是不是发现编译不通过呢?答案是肯定的了,因为你给的路径--with-apxs2=/usr/local/apache/bin/apxs系统找不到apxs,当然就编译不通过了,你说干脆把这一句给删除了,不要了。

不行,此时web和php就不能结合使用了,apxs就是实现apache扩展功能使php和web服务结合使用的啊。怎么办呢?

仔细想一想:是不是只要编译的时候给的apxs路径系统能找到apxs这个工具就行,yeah,思路正确了,下面就是安装这个工具了。只要安装httpd-devel这个软件包,就会有apxs了。

  1. # yum install httpd-devel –y   
  2. # rpm –ql httpd-devel | grep “apxs” 

此时你会发现真的有apxs这个工具啊!并且路径在/usr/sbin/apxs

于是赶紧:

  1. # ./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-openssl --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml  --with-apxs2=/usr/sbin/apxs --with-mcrypt 
  2.  
  3. # make 
  4. # make test 
  5. # make install 

为php提供配置文件:

  1. # cp php.ini-production /usr/local/php/lib/php.ini 

③编辑apache配置文件httpd.conf,以apache支持php

  1. # vim /etc/httpd/httpd.conf 

 添加如下二行

AddType application/x-httpd-php  .php 

AddType application/x-httpd-php-source  .phps  

 定位至DirectoryIndex index.html

   修改为:  

DirectoryIndex  index.php  index.html 

而后重新启动httpd,或让其重新载入配置文件即可测试php是否已经可以正常使用。

  1. # service httpd restart 
  2.  
  3. #cd /usr/local/apache/htdocs 
  4.  
  5. #vim index.php 
  6.  <?php 
  7.  phpinfo() 
  8. ?> 

此时你发现使用rpm格式的httpd也能和mysql以及编译安装的php构建LAMP平台了。

补充知识:

    apxs是一个为Apache HTTP服务器编译和安装扩展模块的工具,用于编译一个或多个源程序或目标代码文件为动态共享对象,使之可以用由mod_so提供的LoadModule指令在运行时加载到Apache服务器中。

    因此,要使用这个扩展机制,你的平台必须支持DSO特性,而且Apache httpd必须内建了mod_so模块。apxs工具能自动探测是否具备这样的条件,你也可以自己用这个命令手动探测:

# httpd -l

    该命令的输出列表中应该mod_so模块。如果所有这些条件均已具备,则可以很容易地借助apxs安装你自己的DSO模块以扩展Apache服务器的功能。

-------------------------------

原文:https://blog.51cto.com/lihuan/821448

免责声明:文章转载自《Apache HTTP服务器扩展模块的工具-apxs》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Python三方库PyAutoGUI的使用方法pc端遇到的知识点下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

PHP错误处理函数set_error_handler()的用法

定义和用法 set_error_handler() 函数设置用户自定义的错误处理函数。 该函数用于创建运行时期间的用户自己的错误处理方法。 该函数会返回旧的错误处理程序,若失败,则返回 null。 语法 set_error_handler(error_function,error_types)   参数 描述 error_function 必需。规...

Windows安装mysql8.0

一、下载并解压 地址:https://dev.mysql.com/downloads/mysql/  如下图: 下载解压后 二、创建my.ini文件 在D:mysqlmysql-8.0.13-winx64下创建my.ini文件,里面写入: [mysql]# 设置mysql客户端默认字符集default-character-set=utf8[mysq...

springboot备份mysql后发送邮件并删除备份文件,支持win和Linux

首先加入springboot的邮箱依赖 <!--邮箱依赖--> <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-mail --> <dependency> <groupId>...

PHP的反射类ReflectionClass、ReflectionMethod使用实例

PHP5 具有完整的反射API,添加对类、接口、函数、方法和扩展进行反向工程的能力。 反射是什么? 它是指在PHP运行状态中,扩展分析PHP程序,导出或提取出关于类、方法、属性、参数等的详细信息,包括注释。这种动态获取的信息以及动态调用对象的方法的功能称为反射API。反射是操纵面向对象范型中元模型的API,其功能十分强大,可帮助我们构建复杂,可扩展的应用。...

Solr与MySQL查询性能对比

测试环境 本文简单对比下Solr与MySQL的查询性能速度。 测试数据量:10407608     Num Docs: 10407608 普通查询 这里对MySQL的查询时间都包含了从MySQL Server获取数据的时间。 在项目中一个最常用的查询,查询某段时间内的数据,SQL查询获取数据,30s左右 SELECT * FROM `tf_hotspotd...

MySQL如果频繁的修改一个表的数据,那么这么表会被锁死。造成假死现象。

MySQL如果频繁的修改一个表的数据,那么这么表会被锁死。造成假死现象。 比如用Navicat等连接工具操作,Navicat会直接未响应,只能强制关闭软件,但是重启后依然无效。 解决办法: 首先执行: show full processlist; //列出当前的操作process,一般会看到很多waiting的process,说明已经有卡住的proces...