PHP脚本的10个技巧(1)


Posted in PHP onOctober 09, 2006

把PHP安装为Apache DSO

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+AJAX实现无刷新注册(带用户名实时检测)
Jan 02 PHP
理解PHP5中static和const关键字的区别
Mar 19 PHP
深入php函数file_get_contents超时处理的方法详解
Jun 03 PHP
php foreach循环中使用引用的问题
Nov 06 PHP
php防止网站被刷新的方法汇总
Dec 01 PHP
Codeigniter发送邮件的方法
Mar 19 PHP
PHP使用反射机制实现查找类和方法的所在位置
Apr 22 PHP
浅谈socket同步和异步、阻塞和非阻塞、I/O模型
Dec 15 PHP
PHP利用Socket获取网站的SSL证书与公钥
Jun 18 PHP
PHPUnit测试私有属性和方法功能示例
Jun 12 PHP
基于thinkphp5框架实现微信小程序支付 退款 订单查询 退款查询操作
Aug 17 PHP
安装PHP扩展时解压官方 tgz 文件后没有configure文件无法进行配置编译的问题
Aug 26 PHP
图书管理程序(三)
Oct 09 #PHP
一个从别的网站抓取信息的例子(域名查询)
Oct 09 #PHP
一个PHP+MSSQL分页的例子
Oct 09 #PHP
基于文本的留言簿
Oct 09 #PHP
图书管理程序(一)
Oct 09 #PHP
图书管理程序(二)
Oct 09 #PHP
改进的IP计数器
Oct 09 #PHP
You might like
php5中类的学习
2008/03/28 PHP
php分页函数示例代码分享
2014/02/24 PHP
php伪静态之APACHE篇
2014/06/02 PHP
PHP微信红包API接口
2015/12/05 PHP
Laravel 在views中加载公共页面的实现代码
2019/10/22 PHP
Javascript !!的作用
2008/12/04 Javascript
将string解析为json的几种方式小结
2010/11/11 Javascript
js解析与序列化json数据(一)json.stringify()的基本用法
2013/02/01 Javascript
JS获取iframe中marginHeight和marginWidth属性的方法
2015/04/01 Javascript
javascript实现unicode与ASCII相互转换的方法
2015/12/10 Javascript
基于jquery实现省市区三级联动效果
2015/12/25 Javascript
jquery插件autocomplete用法示例
2016/07/01 Javascript
Bootstrap导航中表单简单实现代码
2017/03/06 Javascript
js 去掉字符串前后空格实现代码集合
2017/03/25 Javascript
基于js 本地存储(详解)
2017/08/16 Javascript
bootstrap模态框嵌套、tabindex属性、去除阴影的示例代码
2017/10/17 Javascript
微信小程序实现全国机场索引列表
2018/01/31 Javascript
详解Node.js异步处理的各种写法
2019/06/09 Javascript
JavaScript闭包原理与用法学习笔记
2020/05/29 Javascript
[48:54]VGJ.T vs infamous Supermajor小组赛D组败者组第一轮 BO3 第二场 6.3
2018/06/04 DOTA
Python中不同进制互相转换(二进制、八进制、十进制和十六进制)
2015/04/05 Python
使用python中的in ,not in来检查元素是不是在列表中的方法
2018/07/06 Python
解决python3中cv2读取中文路径的问题
2018/12/05 Python
pytorch 调整某一维度数据顺序的方法
2018/12/08 Python
详解Python中is和==的区别
2019/03/21 Python
wxPython实现整点报时
2019/11/18 Python
使用python实现希尔、计数、基数基础排序的代码
2019/12/25 Python
Python实现括号匹配方法详解
2020/02/10 Python
详解Python中pyautogui库的最全使用方法
2020/04/01 Python
CentOS 7如何实现定时执行python脚本
2020/06/24 Python
美国最大的在线寄售和旧货店:Swap.com
2018/08/27 全球购物
汽车专业毕业生推荐信
2013/11/12 职场文书
交通事故协议书范文
2014/10/23 职场文书
文艺演出主持词
2015/07/01 职场文书
铁拳制作人赞《铁拳7》老头环Mod:制作精良 但别弄了
2022/04/03 其他游戏
MutationObserver在页面水印实现起到的作用详解
2022/07/07 Javascript