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

PHP 通常被安装在 Linux/Unix 操作系统上,并且搭配 Apache 服务器一起使用。在将 PHP 与 Apache 服务器一起安装的时候,你有三种不同的安装方式可以选择:静态模块,动态共享对象(Dynamic Shared Object, DSO)以及 CGI 程序执行文件。

在这里我建议大家使用动态共享对象的模式来安装 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 原始程序代码。

2.将取得的档案放置到某个有意义的目录位置,例如 /usr/local/ 或者 /opt/ ,或者其它你觉得适当的目录位置。

3.将取得的档案解压缩,解开以后你会得到一些 *.tar 档案。

4.输入下面的指令将这些 *.tar 档案解开,并且将解开的档案放置到一个名叫 php-[version] 的目录位置:

tar -xvf php-[version]

5.输入 cd 指令将工作目录切换到 /usr/local/php-[version](如果你在上一个步骤把 *.tar 档案解到其它不同目录,那么就切换到你所指定的目录去)。现在你就可以开始编译 PHP 动态共享对象了,真正必须的设定选项只有一个:--with-apxs(这是一个位在 Apache 服务器安装位置下的 bin 目录里面的一个档案)。不过在这里我建议把 PHP 的 MySQL 相关模块也一起加入。

./configure --with-mysql=/[path to mysql] --with-apxs=/[path to apxs]

6.等到系统回到命令提示符号,输入 make指令,然后继续等候系统回到命令提示符号再输入make install指令。

接下来编译程序便会产生我们最后要使用的 PHP 动态共享对象,将它放置到Apache 用来放置动态共享对象的目录下,并且替你修改 Apache 服务器设定档 httpd.conf 的某些部分,最后系统会再度回到命令提示符号。等你回到命令提示符号以后,你必须回头去修改 httpd.conf 档案,里面有些设定必须修改:

1.找出 ServerAdmin 那一行,把你的 email 信箱加上去,也就是把那一行修改成: ServerAdmin you@yourdomain.com

2.找出 ServerName 那一行,并且将服务器名称设定好,例如:ServerName localhost

3.找出下面这一段设定:

# And for PHP 4.x, use:
#
#AddType application/x-httpd-php .php
#AddType application/x-httpd-php-source .phps

你必须修改这里的设定值,把 AddType 那两行前面的#符号去掉(这里的#符号是代表批注),并且加入其它你想要配合 PHP 程序使用的扩展名,修改完以后这段设定看起来应该像是(请注意里面的 .php 和 .phtml 就是将来你可以用来分辨 PHP 程序的扩展名):

# And for PHP 4.x, use:
#
AddType application/x-httpd-php .php .phtml 
AddType application/x-httpd-php-source .phps

把 httpd.conf 存盘,输入 cd 指令回到上一层目录,然后输入下面的指令激活Apache 服务器:

./bin/apachectl start

如果激活过程没有任何错误讯息出现的话,接下来我们就可以开始测试看看刚刚安装好的 Apache 服务器和 PHP 模块是不是真的一切无误了。请建立一个档案,命名为 phpinfo.php,里面只要输入下面这行 PHP 程序代码就可以了:

<? phpinfo() ?>

将档案存盘,然后把它放置到 Apache 服务器的文件根目录(该目录名称是 htdocs)去。启动你的浏览器,在地址列输入 http://localhost/phpinfo.php,如果一切安装无误的话,你应该会看到一个很长的网页,上面显示了完整的 PHP系统设定信息,这表示我们已经顺利安装完成 Apache 服务器和 PHP 了!

在初次安装完成以后,日后当你想要重新设定 PHP 的时候(比方说加入原本没有安装的 PHP 模块),你只需要在系统命令提示符号下输入 make clean指令,然后输入新的 ./configure设定指令,再输入 make和 make install指令,系统便会产生一个新的PHP动态共享对象。 接下来你只需要重新激活 Apache 服务器让它重新加载刚刚建立好的新模块即可。只需要几个简单的步骤便可以解决掉一堆烦人的问题了!

(0)

相关推荐

  • PHP使用GIFEncoder类生成gif动态滚动字幕

    今天在公司,经理让做一个滚动字幕.但是,不许生成gif图片.所以上网找了GIFEncoder这个类库.确实很好用,但是,应用过程中也出现了一些问题,现在写在这里,以供后来人参考,少走弯路. 文字滚动分为两种情况.第一种为水平滚动: 复制代码 代码如下: <?php require_once("GIFEncoder.class.php"); $count=0;   //设置默认计数器 while(true){     $str = $_REQUEST['str'] ? $_REQU

  • PHP 动态随机生成验证码类代码

    下面是效果图,这个效果图是没有开启干扰码的效果图 下面是类代码 复制代码 代码如下: <?php /************************************************ //FILE:ImageCode //DONE:生成动态验证码类 //DATE"2010-3-31 //Author:www.5dkx.com 5D开心博客 *********************************************************************

  • PHP使用GIFEncoder类生成的GIF动态图片验证码

    相信很多人都想过如何用PHP生成GIF动画来实现动态图片验证码,以下是实现过程. ImageCode函数通过GIFEncoder类实现的GIF动画的PHP源代码,有兴趣的朋友可以研究一下. 效果如图: 复制代码 代码如下: /**   * ImageCode 生成GIF图片验证   * @param $string 字符串   * @param $width 宽度   * @param $height 高度   * */   function ImageCode($string = '', $w

  • php运行时动态创建函数的方法

    本文实例讲述了php运行时动态创建函数的方法.分享给大家供大家参考.具体分析如下: 一般的语言函数必须定义了在运行,而php支持在运行时动态创建函数,下面是一个简单的范例,在运动时根据不同的条件创建函数$a <?php if (count($_POST) > 0) { $prepped = create_function('$a', 'return trim($_POST[$a]);'); } elseif (count($_GET) > 0) { $prepped = create_f

  • 用PHP动态创建Flash动画

    Macromedia 公司出品的 Flash 动画软件现已经成为Web页面上非常流行的表现工具,网站开发者利用它引起浏览者的兴趣.然而不幸的是,仅仅使用ActionScript创建动画受到很大的限制,Macromedia已经宣布,打算放弃Flash Generator产品,转而采用支持Flash MX的Cold Fusion,我们的网站将向何处去呢?现在,我们可以利用Ming PHP库来轻松地动态创建Flash动画,并且和我们的代码无缝集成.我们可以根据数据库里的数据创建出各种不同效果的动画.

  • PHP使用方法重载实现动态创建属性的get和set方法

    在PHP中,我们不能够直接通过方法名相同,签名不同的方法来实现方法重载,因为PHP是弱数据类型,不能很好的区分签名.但是,可以在PHP的类中运用__call()方法来实现方法重载.当调用一个类中并不存在的方法时,会自动调用__call()方法,其形式为__call($name,$arguments) 其中$name是方法的名称,$arguments是一个数组类型的参数. 下面的例子是使用PHP的方法重载来动态创建get和set方法.(在面向对象编程中,一个类中的属性会使用get和set来赋值,但

  • PHP动态创建Web站点的方法

    PHP有4个用于使用外部函数的函数:include().include_once().require()和require_once(). 为了使用它们,PHP脚本中将包括如下代码行: include_once('arr.php'); require('/path/to/filename.html'); 两种使用外部函数的区别: 使用起来完全一样,只是在出错时会有所不同:include()函数不工作,就会向Web浏览器打印一个讲稿,但是脚本会继续运行,如果require()失败,就会打印一个错误,

  • 一个ASP创建动态对象的工厂类(类似PHP的stdClass)

    最近整理ASP/VBScript代码,发现过去的一个ASP实现的MVC框架,可惜是个半成品,效率也成问题,不过发现里面有些我写的代码,感觉还稍稍可以拿出来见人,于是今天作此文以记之. 说是ASP,其实和VBScript也脱不了干系,VBScript语言传承于Visual Basic,VB的语法灵活度已经不尽如人意了,VBS作为其子集可想而知.神马反射.自省等先进的技术,微软在.NET中才引入.作为被抛弃的技术,也不奢望微软能够提供支持,于是顽固守旧的程序员只有绞尽脑汁的去模仿实现一些类似的功能.

  • php 动态执行带有参数的类方法

    官方手册给出了以下范例: 复制代码 代码如下: <?php // 使用了NameSpace的例子 namespace Foobar; class Foo { static public function test() { print "Hello world!\n"; } } call_user_func(__NAMESPACE__ .'\Foo::test'); // As of PHP 5.3.0 // Hello world! call_user_func(array(__

  • php使用变量动态创建类的对象用法示例

    本文实例讲述了php使用变量动态创建类的对象.分享给大家供大家参考,具体如下: 这是一个能用变量动态创建类的对象的用法,就是根据$pay_code变量值来创建对象. 例如下例就是创建类T的一个对象$payment.然后就可以使用了.咋一看像是个新的知识点,其实不然,只不过是编程中的一个技巧而已. $pay_code='T'; $payment = new $pay_code(); echo $payment; echo $payment->ep(); class T{ function ep()

  • PHP动态地创建属性和方法, 对象的复制, 对象的比较,加载指定的文件,自动加载类文件,命名空间

    PHP前言: •动态地创建属性和方法 •对象的复制 •对象的比较 •加载指定的文件 •自动加载类文件 •命名空间 示例 1.类的相关知识点 3(动态地创建属性和方法) class/class3.php <?php /** * 类的相关知识点 3(动态地创建属性和方法) */ // 用于演示如何动态地创建属性(这就是 php 中所谓的重载) class Class1 { // __set 魔术方法,当设置的属性不存在或者不可访问(private)时就会调用此函数 public function _

  • PHP通过反射动态加载第三方类和获得类源码的实例

    使用反射动态加载第三方类 用反射加载第三方类用处在于: 使用XML或其他配文件配置要加载的类,从而和系统源代码分离. 对加载的类进行类检查,是加载的类符合自己定义的结构. <?php abstract class Module { #核心Module类库 function baseFunc() { echo "I am baseFunc"; } abstract function execute(); } class ModuleRunner { private $configD

随机推荐