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


Posted in PHP onOctober 09, 2006

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 服务器让它重新加载刚刚建立好的新模块即可。只需要几个简单的步骤便可以解决掉一堆烦人的问题了! 

PHP 相关文章推荐
PHP中动态HTML的输出技术
Oct 09 PHP
Gregarius中文日期格式问题解决办法
Apr 22 PHP
PHP 多维数组排序(usort,uasort)
Jun 30 PHP
PHP 图片文件上传实现代码
Dec 29 PHP
PHP中的正则表达式函数介绍
Feb 27 PHP
php引用返回与取消引用的详解
Jun 08 PHP
PHP使用curl制作简易百度搜索
Nov 03 PHP
thinkphp利用模型通用数据编辑添加和删除的实例代码
Nov 20 PHP
CI框架封装的常用图像处理方法(缩略图,水印,旋转,上传等)
Nov 22 PHP
PHP空值检测函数与方法汇总
Nov 19 PHP
php获取微信共享收货地址的方法
Dec 21 PHP
在PHP中输出JS语句以及乱码问题的解决方案
Feb 13 PHP
PHP开发文件系统实例讲解
Oct 09 #PHP
PHP动态图像的创建
Oct 09 #PHP
两种php调用Java对象的方法
Oct 09 #PHP
提升PHP执行速度全攻略(上)
Oct 09 #PHP
PHP的一个完整SMTP类(解决邮件服务器需要验证时的问题)
Oct 09 #PHP
PHP5.0正式发布 不完全兼容PHP4 新增多项功能
Oct 09 #PHP
动态网站web开发 PHP、ASP还是ASP.NET
Oct 09 #PHP
You might like
漫威DC即将合作联动,而双方早已经秘密开始
2020/04/09 欧美动漫
PHP使用mysql_fetch_row查询获得数据行列表的方法
2015/03/18 PHP
PHP中ltrim与rtrim去除左右空格及特殊字符实例
2016/01/07 PHP
详谈php静态方法及普通方法的区别
2016/10/04 PHP
thinkPHP5 ACL用户权限模块用法详解
2017/05/10 PHP
ThinkPHP框架整合微信支付之Native 扫码支付模式一图文详解
2019/04/09 PHP
jQuery 版本的文本输入框检查器Input Check
2009/07/09 Javascript
5分钟理解JavaScript中this用法分享
2013/11/09 Javascript
JavaScript实现简单图片滚动附源码下载
2014/06/17 Javascript
让javascript加载速度倍增的方法(解决JS加载速度慢的问题)
2014/12/12 Javascript
详解Vue 如何监听Array的变化
2019/06/06 Javascript
jquery实现轮播图特效
2020/04/12 jQuery
JS数组push、unshift、pop、shift方法的实现与使用方法示例
2020/04/29 Javascript
基于JQuery和DWR实现异步数据传递
2020/10/16 jQuery
[01:16:13]DOTA2-DPC中国联赛 正赛 SAG vs Dragon BO3 第一场 2月22日
2021/03/11 DOTA
python 中的列表解析和生成表达式
2011/03/10 Python
Python使用迭代器捕获Generator返回值的方法
2017/04/05 Python
python把数组中的数字每行打印3个并保存在文档中的方法
2018/07/17 Python
Python使用pandas对数据进行差分运算的方法
2018/12/22 Python
Python中三元表达式的几种写法介绍
2019/03/04 Python
Python opencv实现人眼/人脸识别以及实时打码处理
2019/04/29 Python
Python实用工具FuckIt.py介绍
2019/07/02 Python
基于python全局设置id 自动化测试元素定位过程解析
2019/09/04 Python
Flask项目中实现短信验证码和邮箱验证码功能
2019/12/05 Python
使用Python 自动生成 Word 文档的教程
2020/02/13 Python
python中使用you-get库批量在线下载bilibili视频的教程
2020/03/10 Python
如何基于Python按行合并两个txt
2020/11/03 Python
matplotlib 使用 plt.savefig() 输出图片去除旁边的空白区域
2021/01/05 Python
Html5页面获取微信公众号的openid的方法
2020/05/12 HTML / CSS
几个Shell Script面试题
2012/08/31 面试题
亲子拓展活动方案
2014/02/20 职场文书
改作风抓落实促发展心得体会
2014/09/10 职场文书
资源环境与城乡规划管理专业自荐书
2014/09/26 职场文书
村党的群众路线教育实践活动总结材料
2014/10/31 职场文书
公务员考察材料范文
2014/12/23 职场文书
导游词之苏州盘门景区
2019/11/12 职场文书