把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 相关文章推荐
html中select语句读取mysql表中内容
Oct 09 PHP
php 清除网页病毒的方法
Dec 05 PHP
php数据库配置文件一般做法分享
Jul 07 PHP
PHP中字符安全过滤函数使用小结
Feb 25 PHP
javascript+php实现根据用户时区显示当地时间的方法
Mar 11 PHP
PHP列出MySQL中所有数据库的方法
Mar 12 PHP
php解析url并得到url中的参数及获取url参数的四种方式
Oct 26 PHP
PHP设置头信息及取得返回头信息的方法
Jan 25 PHP
php 读取输出其他文件的实现方法
Jul 26 PHP
PHP使用GD库输出汉字的方法【测试可用】
Nov 10 PHP
php实现有序数组打印或排序的方法【附Python、C及Go语言实现代码】
Nov 10 PHP
基于ThinkPHP实现的日历功能实例详解
Apr 15 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中Object对象的笔记分享
2011/06/28 PHP
Zend Framework教程之Zend_Config_Ini用法分析
2016/03/23 PHP
PHP检查端口是否可以被绑定的方法示例
2018/08/09 PHP
用JavaScrpt实现文件夹简单轻松加密的实现方法图文
2008/09/08 Javascript
实现js保留小数点后N位的代码
2014/11/13 Javascript
JS常用函数使用指南
2014/11/23 Javascript
json实现前后台的相互传值详解
2015/01/05 Javascript
javascript数据结构与算法之检索算法
2015/04/04 Javascript
jQuery右下角旋转环状菜单特效代码
2015/08/10 Javascript
js中substr,substring,indexOf,lastIndexOf,split,replace的用法详解
2015/11/09 Javascript
跟我学习javascript的基本类型和引用类型
2015/11/16 Javascript
Angular实现form自动布局
2016/01/28 Javascript
vue-cli axios请求方式及跨域处理问题
2018/03/28 Javascript
一起写一个即插即用的Vue Loading插件实现
2019/10/31 Javascript
js键盘事件实现人物的行走
2020/01/17 Javascript
Nodejs文件上传、监听上传进度的代码
2020/03/27 NodeJs
[05:29]2014DOTA2国际邀请赛 赛后专访:LGDNewbee顺利过关
2014/07/13 DOTA
在IPython中执行Python程序文件的示例
2018/11/01 Python
python取余运算符知识点详解
2019/06/27 Python
python3实现高效的端口扫描
2019/08/31 Python
利用python、tensorflow、opencv、pyqt5实现人脸实时签到系统
2019/09/25 Python
Python实现在线批量美颜功能过程解析
2020/06/10 Python
python--shutil移动文件到另一个路径的操作
2020/07/13 Python
Selenium webdriver添加cookie实现过程详解
2020/08/12 Python
联想瑞士官方网站:Lenovo Switzerland
2017/11/19 全球购物
经理秘书岗位职责
2013/11/14 职场文书
信息服务专业毕业生求职信
2014/03/02 职场文书
企业领导对照检查材料
2014/08/20 职场文书
董事长秘书岗位职责
2015/02/13 职场文书
2015年村党支部工作总结
2015/04/30 职场文书
2015年社区教育工作总结
2015/05/13 职场文书
2019年暑期法院实习报告
2019/12/18 职场文书
将图片保存到mysql数据库并展示在前端页面的实现代码
2021/05/02 MySQL
Go标准容器之Ring的使用说明
2021/05/05 Golang
MYSQL事务的隔离级别与MVCC
2022/05/25 MySQL
oracle设置密码复杂度及设置超时退出的功能
2022/06/28 Oracle