如果你想用Linux配置PHP环境。网上的资料有很多,这里讲解应用三步骤Linux配置PHP环境,本文为你详细介绍Linux配置PHP环境,为你在学习Linux配置PHP环境时起一定的作用。
环境是red hat Linux 9.0 + httpd-2.2.4 + PHP-5.2.4 + mysql-5.0.22 这里mysql安装就不多说了,重点学习Apache 编译安装.(开始安装前先准备好相关源码,还有libxml2包根据所安装版本不同可能需要升级下)
Apache 安装 Apache 编译安装可分为动态编译安装 or 静态编译安装 概念区别如下(个人理解): 静态编译安装指把某个模块module(如PHP模块)直接编译进Apache内核,当apahce 要用到时可以直接拿过来用。 动态编译安装指把某个模块module(如PHP模块)名在内核里注册了下(当然你也可以在安装好以后再注册)。实际要用的东西并不编进内核,而是单独编译成一个动态共享对象(DSO),只要到用时根据这注册的模块名从外部调过这个DSO模块来用(如libphp5.so 这是PHP5的DSO Linux下.so 文件跟Windows下.dll差不多意思)。
动、静态编译 时配置上区别 静态编译时需要把要用的模块都静态编译进Apache 如
./configure--prefix =/opt/apache2
动态编译只是多个几个 shared ,(shared 指将此模块编译成动态的) /configure–prefix=/opt/apache2 –enable-so –enable-so –enable-mods-shared=[most |all]
大家注意了–enable-so相当与之前旧版本的–enable-module=so,而–enable-mods-shared=most又等同与以前的 –enable-shared=max 新旧版本配置数据有所不同,配置前可以通过./coufigure -h来查看配置参数
–enable-so 参数指定需要启动so模块,so模块是用来提DSO支持的apache核心模块 –enable-mods-shared=[most |all]这个参数的作用时编译apache时,把除了so以外的所有apache的标准模块都编译成DSO模块。而不是编译进apache核心内。 现在知道了–enable-so的意思是说 让apache 核心装载DSO,但是不实际编译任何动态模块 –enable-ModuleName的意思是说 编译并包含模块ModuleName 而 –enable-ModuleName=shared 的意思是说将这个模块编译成动态的.
如何希望动态编译模块 比如:–enable-rewrite应该替换为: –enable-rewrite=shared 如果把-shared去掉,就是静态的编译了
(Apache对独立模块的DSO支持是建立在只能被静态编译进Apache核心的mod_so基础之上的,这是core以外***不能作为DSO存在的模块,而其他所有已发布的Apache模块,都可以通过安装文档中阐述中的编译选项 –enable-module=shared 被独立地编译成DSO并使之生效。一个被编译为mod_foo.so的DSO模块,可以在httpd.conf中使用mod_so的LoadModule指令,在服务器启动或重新启动时被加载。) —————————-
编译php ./configure –prefix=/opt/php5 –with-mysql=/opt/mysql –with-apxs2=/opt/apache2/bin/apxs 如果要使用MYSQL 数据库那么在安装编译PHP之前要先安装好MYSQL。 安装完后系统默认php.ini要放在PHP安装目录下的lib文件夹里, cp /php源文件目录/php.ini-dist /opt/php5/lib/php.ini。 注意这里是apxs2!旧版本用的是with-apxs ,新提供的支持程序apxs(APache eXtenSion)可以在Apache源代码树之外编译基于DSO的模块,这样就不用重新编译Apache 来支持其它模块了。 修改httpd.conf 在AddType application/x-gzip .gz .tgz后一行添加 AddType application/x-httpd-php .php 启动一下apache /opt/apache2/bin/apachectl start