首页 > 编程技术 > php

如何使用动态共享对象的模式来

发布时间:2016-11-25 15:30

PHP 通常被安装在 Linux/Unix 操作系统上,并且搭配 Apache 服务器一起使用。在将 PHP 与 Apache 服务器一起安装的时候,你有三种不同的安装方式可以选择:静态模块,动态共享对象(Dynamic Shared Object, DSO)以及 CG
I 程序执行文件。
 
在这里我建议大家使用动态共享对象的模式来安装 PHP,这是因为这种安装方式为日后的维护与升级提供了极大的便利。假设你一开始安装 PHP 的时候,只加入了PHP 的数据库相关模块。几天以后你决定再加装 PHP 的编码功能相关模块,这时候你只需要在你的系统命令列输入 make clean 指令,然后输入新的 PHP 设定选项,然后再输入 make 与 make install 指令,接下来系统就会产生一个新的 PHP 动态共享对象,并且安装到 Apache 服务器所指定的适当目录位置去了。接下来你要做的只是重新激活 Apache 服务器就行了,你就不需要把 Apache 服务器整个重新编译过。
 
下面几个基本步骤可以让你安装一套全新的 Apache 服务器,并且内含 PHP 动态加载模块:
1.到 http://www.apache.org/dist/下载最新版本的 Apache 服务器原始码。
 
2.将取得的档案复制到某个有意义的目录位置,例如 /usr/local/ 或者 /opt/ ,或者其它你觉得适当的目录位置。
 
3.将取得的档案解压缩,解开以后你会得到一些 *.tar 档案。
 
4.输入下面的指令将这些 *.tar 档案解开,并且将解开的档案放置到一个名叫 apache_[version] 的目录位置:
tar -xvf apache_[version].tar
5.输入 cd 指令将工作目录切换到 /usr/local/apache_[version](如果你在上一个步骤把 *.tar 档案解到其它不同目录,那么就切换到你所指定的目录去)
6. 输入下面的指令准备编译程序,记得将下面指令里面的 [path] 部分代换成你自己的目录名称,例如 /usr/local/apache[version] (不要加上最后面的斜线!)。这个步骤所做的工作是激活 mod_so,如此一来 Apache服务器才可以使用动态共享对象。
 
./configure --prefix=[path] --enable-module=so
7.等到系统回到命令提示符号,输入 make,然后继续等候系统回到命令提示符号。
 
8.输入 make install指令。
 
此时编译程序将会产生最后需要用到的目录与档案,完成以后会再度回到命令提示符号。
 
接下来可以开始安装 PHP 了:
1.到 PHP 官方网站:http://www.php.net/downloads.php 下载最新版本的 PHP 原始程序代码。
本文只讨论如何在Windows NT 4.0或Windows 2000下安装Apache+PHP3。
我使用的Apache为apache_1_3_12_win32.exe。
注意您得先安装PHP3哦,可以照我写的文档进行安装:在Windows下安装PHP3,注意不需要做这一步:二、软件安装->3->f)。
一、软件下载
  您可以从下列站点下载Windows版本的Apache Web Server软件:
    http://www.apache.org/dist/binaries/win32/
二、安装Apache
  1、双击下载的Apache可执行文件(如apache_1_3_12_win32.exe)进行安装,安装
的时候您可以选择安装的目的地,缺省为C:Program FilesApache GroupApache,
我用$APACHE_ROOT来代替安装目的地;
  2、修改$APACHE_ROOTconfhttpd.conf:
     Port 80
       设置Apache Web Server运行时使用的端口号,由于我这里的IIS也在运
       行,IIS使用了80端口号,于是我把它改成Port 8080,这时我在浏览器上
       输入http://localhost:8080/才能访问到Apache Web Server服务器,
       输入http://localhost/时能访问到IIS,这样两个Web Server都可以用
       了哦,我用$PORT标识
     ServerAdmin you@your.address
       设置管理员信箱,当服务器出问题时,它就会把出现的问题发到管理员信箱
       中,我这里把它改成了ServerAdmin hhzqq@chinaweal.com
     DocumentRoot "C:/Program Files/Apache Group/Apache/htdocs"
       设置文档根目录,当您在浏览器上输入http://localhost:$PORT/时,服
       务器会从文档根目录读取数据,我把它改成了
        DocumentRoot "D:HZQPHP3",我用$DocumentRoot标识
     <Directory "C:/Program Files/Apache Group/Apache/htdocs">
       把这个改成<Directory $DocumentRoot>,我这里为
       <Directory "D:HZQPHP3">
     DirectoryIndex index.html
       设置默认文档,为了支持php3,我把它改成了DirectoryIndex
        index.html index.htm index.php3 index.php index.phtml
笔者一直都在php3环境下调试程序,后来换成php4后,就觉得问题不少。
 主要是一些原来在php3下运行正常的程序忽然发现在php4下出了好多毛病。
 而原来在php4下的程序到了php3中又说xx函数没定义或者说某个函数语法不完整什么的。于是忽然想起:可以不可以把两者都装上呢?也好测试程 序对两者的兼容性啊。
 
 
  笔者参考的php4/3的安装和说明文档中并没有具体说明方法,大概只说 了两者可以通过--enable-versioning指令以及DSO模式达到共存目的。那到底是如何个DSO呢?经过笔者n次反复琢磨安装和配置实践,最终成功将 两者都顺利安装到同一个web服务器内,凡是.php3的文件就由php3解析,而.php文件就由php4解析。
 
 
实现的原理:
 
  要实现两个不同版本的解析器共存工作,必须使用enable-versioning 指令,而应该在什么时候使用呢?这个取决于哪个版本的解析器安装在 后面,那么这个指令就只需要在后面安装的时候使用。就是说,如果你 是先装php4(本例中就是这样),后装php3的,那么配置php3的时候就要 添加enable-versioning指令。反过来也是一样道理。
 
 
以下是安装配置步骤:
 
1、考虑到笔者自己的系统中装的是php4,采用的是static模式,因此如果要 采用DSO,那么只能是php3采用了。但是enable-versioning到底是什么时候 加呢?由于文档中并没清楚说明,笔者只能自己测试了。关于安装apache的配置指令这里就不多赘述了。
 
 
2、先编译和安装php4,采用静态方式,主要指令如下:
 
./configure --with-mysql=/www/mysql --with-apache=../apache_1.3.12
> --enable-track-vars
 
3、注意:编译和安装好php4后,要先将apache安装好,否则下一步以DSO模式 安装和编译php3的时候没办法apxs脚本了。并且要注意!!!!的是,配置apache 的时候要加入--enable-shared=max指令(就是使用dso方式)然后再编译并 安装好apache。
 
 
4、最后,就配置和编译php3。解压后,运行:
 
./configure --with-mysql=/www/mysql --with-apxs=/www/httpd/bin/apxs
> --enable-versioning
make
make install
 
  一般情况下基本上没问题。
 如果读者使用的是php4rc1等比较老的php4的话也许在编译的时候出现不去 编译php4rc1目录的内容而只编译php3目录内容,那么一个解决方法是在编译 好php4后将php4rc1的目录改变名字,这样就没问题了。
 
 
  测试:一般只要顺利通过编译和安装,那么只需要修改好httpd.conf关于php3和 php4的设置项,然后重新启动apache就可以了。
 
 
  在htdocs目录下建立两个文件test.php 和test.php3,正常情况下调用test.php会显示php4的内容而调用test.php3则显示php3的内容。
 test.php/test.php3内容如下:
 
phpinfo();


windows最简单易用的webserver Xitami设置全攻略
=======================
下载地址: http://www.Xitami.com
=======================
设置
将xitami的安装目录下的
defaults.cfg文件中的这一段设为如下
========================
[Filter]
.php3=c:php3php.exe
.php4=C:php4php.exe
========================
并将php3.in (php3用)或(php.ini)php4用 拷贝到 windows目录下
别忘了将php3.ini或php.ini中的这段话改为
extension_dir =c:/php3/ ;或者你的php3文件,(或php4文件)目录
=============================================
用你最爱最爱的编辑器写下
 
<?
phpinfo();
?>
存为info.php3 放到 xitami的安装目录下的webpages子目录下
 
好了,试试http://localhost/info.php3
Happy everyday to you!


标签:[!--infotagslink--]

您可能感兴趣的文章: