把PHP安装为Apache DSO


Posted in PHP onOctober 09, 2006

look: PHP 经常和Apache Web服务器一道用于Linux/Unix平台。当我们在Apache环境下安装PHP的时候,你有三种安装模式可供选择:静态模块、动态模块(DSO)和CGI。

我建议你最好把PHP安装为Apached的DSO ,这种安装模式的维护和升级都相当简单。比方说,假设你原先只安装了PHP的数据库支持功能。可过了几天之后你又决定要为PHP添加加密功能。很简单,你只要键入make clean命令,然后增加新的配置选项,接着再执行make和 make install命令即可。这样,新的PHP模块就会被安装到Apache上的恰当位置,你只要重新启动Apache就一切OK了,当然,整个过程完全不用重新编译Apache。

安装新版本的Apache以及安装作为Apache DSO的PHP的简单步骤如下所示:

1. 从Apache软件基金会这一站点下载Apache服务器软件的最新版本源代码。
2. 把代码文件放到/usr/local/ 或者/opt/ 等合适的目录下。
3. 用Gunzip命令对代码文件解压缩,然后你可以得到相应的*.tar文件。
4. 键入以下的解包命令把以上的tar文件放到形为apache_[version]的目录下:

tar -xvf apache_[version].tar

5. 进到/usr/local/apache_[version] 目录(或者在上面步骤中你所指定的目录)。
6. 键入下面的配置命令,用你设定的路径(比如/usr/local/apache[version]等,注意后面不要跟斜线!)取代[path]参数,同时你还要启用mod_so参数以允许Apache使用DSO。

./configure --prefix=[path] --enable-module=so

7. 回到命令提示行键入make命令并等待命令执行完成再次回到命令提示状态下。
8. 键入make install。

到这个时候,编译器即可创建最终的目录并返回到系统的命令提示状态下。

接下来安装PHP:

1. 访问PHP主页的下载区域选中最新版本源代码的链接。
2. 把下载的文件放到/usr/local/ 或者/opt/等适当的目录下。
3. 用Gunzip命令对代码文件解压缩,然后你可以得到相应的*.tar文件。
4. 键入以下的解包命令把以上的tar文件放到形为php-[version]的目录下:

tar -xvf php-[version]

5. 进到/usr/local/php-[version]目录下(或者你指定的目录)。

现在即可编译PHP DSO,其实这里只需要一个必要的配置选项--with-apxs(Apache bin目录下的一个文件)--不过,为了系统配置更为全面,我们在这里还增加了对MySQL数据库的支持。

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

6.回到命令提示行下键入make命令并等到命令执行完成再次回到命令提示状态下。
7.键入make install命令。

在这个时候,编译器将会创建最终的DSO,并把它放在Apache模块目录下,同时会为你修改Apache的httpd.conf 配置文件,之后系统回到命令提示状态下等待你输入新指令。然后,你即可打开Apache的httpd.conf 配置文件做一些修正:

1. 找到有ServerAdmin字样的一行,加入你自己的电子邮件地址,如下所示:

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

修改这些配置行以便取消PHP 4.0下的某些加在AddType之前的注释,同时你应该添加一些为PHP所使用的文件扩展名,修改后的以上各行看起来可能会是下面这样子:

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

保存以上的配置文件,回到上级目录,键入以下命令即可启动Apache:

./bin/apachectl start

如果启动期间没有出现什么问题,你即可测试Apache和PHP的安装情况,方法是创建一个名叫phpinfo.php的文件,其中包含了以下的代码行:

<? phpinfo() ?>

保存该文件并把它放置在Apache的文档根目录下(htdocs),然后启动你的Web浏览器,在浏览器地址栏里键入http://localhost/phpinfo.php,浏览器即会以很大的篇幅显示出PHP和Apache系统的各个变量和变量值。

如果你想要重新设置PHP,你需要做的不外乎是执行make clean命令,然后执行带有新配置选项的./configure命令,接着执行make和make install。这样,Apache模块目录中就会出现一个新模块,你只要重启Apache以装载新模块。以前的许多头疼问题现在就迎刃而解了。

PHP 相关文章推荐
php防盗链的常用方法小结
Jul 02 PHP
PHP获取MAC地址的函数代码
Sep 11 PHP
如何用phpmyadmin设置mysql数据库用户的权限
Jan 09 PHP
使用ThinkPHP+Uploadify实现图片上传功能
Jun 26 PHP
PHP中使用file_get_contents抓取网页中文乱码问题解决方法
Dec 17 PHP
php中Snoopy类用法实例
Jun 19 PHP
php实现在线通讯录功能(附源码)
May 13 PHP
Yii实现Command任务处理的方法详解
Jul 14 PHP
php文件上传 你真的掌握了吗
Nov 28 PHP
PHP单例模式详解及实例代码
Dec 21 PHP
php使用QueryList轻松采集js动态渲染页面方法
Sep 11 PHP
php + WebUploader实现图片批量上传功能
May 06 PHP
PHP4中实现动态代理
Oct 09 #PHP
phpmyadmin操作流程
Oct 09 #PHP
一个用于MySQL的PHP XML类
Oct 09 #PHP
ASP知识讲座四
Oct 09 #PHP
php.ini中文版
Oct 09 #PHP
用Apache反向代理设置对外的WWW和文件服务器
Oct 09 #PHP
Mysql的常用命令
Oct 09 #PHP
You might like
如何使用PHP中的字符串函数
2006/11/24 PHP
php 图片上传类代码
2009/07/17 PHP
php读取大文件示例分享(文件操作类)
2014/04/13 PHP
php使用session二维数组实例
2014/11/06 PHP
PHP清除字符串中所有无用标签的方法
2014/12/01 PHP
PHP cookie与session会话基本用法实例分析
2019/11/18 PHP
JavaScript中实现块作用域的方法
2010/04/01 Javascript
window.returnValue使用方法示例介绍
2014/07/03 Javascript
jQuery 中DOM 操作详解
2015/01/13 Javascript
JavaScript将字符串转换成字符编码列表的方法
2015/03/19 Javascript
javascript中alert()与console.log()的区别
2015/08/26 Javascript
jQuery实现的简单分页示例
2016/06/01 Javascript
浅谈jQuery为哪般去掉了浏览器检测
2016/08/29 Javascript
详解利用exif.js解决ios手机上传竖拍照片旋转90度问题
2016/11/04 Javascript
详解JS几种变量交换方式以及性能分析对比
2016/11/25 Javascript
借助node实战JSONP跨域实例
2017/03/30 Javascript
详解封装基础的angular4的request请求方法
2018/06/05 Javascript
JS获取指定月份的天数两种实现方法
2018/06/22 Javascript
解决vue组件props传值对象获取不到的问题
2019/06/06 Javascript
JavaScript展开操作符(Spread operator)详解
2019/07/20 Javascript
JavaScript 变量,数据类型基础实例详解【变量、字符串、数组、对象等】
2020/01/04 Javascript
js禁止查看源文件屏蔽Ctrl+u/s、F12、右键等兼容IE火狐chrome
2020/10/01 Javascript
[06:37]2014DOTA2国际邀请赛 昔日王者渴望重回巅峰
2014/07/12 DOTA
django缓存配置的几种方法详解
2018/07/16 Python
pandas ix &amp;iloc &amp;loc的区别
2019/01/10 Python
Python实现的统计文章单词次数功能示例
2019/07/08 Python
Python list与NumPy array 区分详解
2019/11/06 Python
Python项目跨域问题解决方案
2020/06/22 Python
Python爬虫进阶之爬取某视频并下载的实现
2020/12/08 Python
Ratchet 模态框的实现
2020/08/19 HTML / CSS
编写函数,将一个3*3矩阵转置
2013/10/09 面试题
《小儿垂钓》教学反思
2014/02/23 职场文书
买房协议书
2014/04/11 职场文书
满月酒邀请函
2015/01/30 职场文书
Vue.js 带下拉选项的输入框(Textbox with Dropdown)组件
2021/04/17 Vue.js
Python排序算法之插入排序及其优化方案详解
2021/06/11 Python