全球超过万个互联网网站的管理员都在使用PHP使得它成为最为普及的服务器端脚本语言之一其特点是运行速度快稳定可靠跨平台而且是开放源代码软件随你使用的水平不同PHP可以很简单也可以很复杂可以只使用它发送HTML表格元素还可以在PHP应用程序中集成Java和XML
如果你对PHP有一定的了解或者看过一些初步的教材这些技巧可以扩展你对PHP的认识使你掌握一些常见的和高级的PHP功能
一把PHP安装为Apache的DSO
PHP在Linux/Unix平台上经常与Apache搭配使用在安装PHP时有三种安装方式可供选择静态模式动态模式(DSO)CGI二进制模式
由于易于维护和升级我强烈建议以DSO方式安装PHP例如初次安装时如果安装的PHP仅支持数据库随后希望再安装支持加密的模块只要运行make clean添加新的配置选项然后再运行make和make install即可一个新的PHP模块就会安装在Apache中适当的位置上然后重新启动Apache而无需重新编译Apache
下面的步骤将安装一个全新的Apache并以DSO方式安装PHP
从Apache软件基金会得到最新版本的Apache源代码
把得到的源代码放到/usr/local/或者/opt/目录下或者你指定的任意目录中
运行Gunzip对文件进行解压缩得到后缀为tar的文件
运行下面的命令把文件安装到apache_[version]目录中tar xvf apache_[version]tar
进入/usr/local/apache_[version]目录(或者在步骤中安装压缩文件的目录)
键入下面的命令为编译Apache作准备用你自己的路径替换其中的[path]例如/usr/local/apache[version]现在已经设置了mod_so的新值它将允许Apache使用DSO模块
回到提示符状态后键入make并等待再次回到提示符状态
执行make install命令
至此Apache已经安装完毕系统将重回到提示符状态接下来我们开始安装PHP
在PHP主页的下载区中找到最新版本的链接
把文件下载到一个适当的目录中例如/usr/local/或/opt/或者你指定的任意目录中
运行Gunzip对文件进行解压缩得到后缀为tar的文件
执行下面的命令把文件安装在php[version]目录中tar xvf php[version]
进入/usr/local/php[version]目录或在步骤中指定的目录
至此已经作好了以DSO方式安装PHP的准备工作唯一需要修改的配置选项是withapxs(这是Apache的bin目录中的一个文件)为了得到较高的性能我没有安装对MySQL的支持模块
/configure withmysql=/[path to mysql] withapxs=/[path to apxs]
回到提示符状态后执行make命令等待重新返回到提示符状态
执行make install命令
至此系统以DSO方式在Apache的模块目录中安装了PHP并对Apache的httpdconf文件作适当的修改后返回到提示符状态回到提示符状态后你还需要对Apache的httpdconf文件作一些修改
找到包含有ServerAdmin的一行添加你的电子邮件地址如下所示
ServerAdmin you@yourdomaincom
找到以ServerName开头的行把它改为真正的值例如ServerName localhost
找到内容如下所示的小节
# And for PHP x use:
#
#AddType application/xhttpdphp php
#AddType application/xhttpdphpsource phps
修改这些行的内容使PHP 的AddType不再成为注释并添加希望在PHP中使用的文件后缀名上面的内容变为如下所示的内容
# And for PHP x use:
#
AddType application/xhttpdphp php phtml
AddType application/xhttpdphpsource phps
保存文件回到上一级目录执行下面的命令重新启动Apache
/bin/apachectl start
如果在启动时没有出现错误提示信息就可以通过创建一个名为phpinfophp的只有如下所示一行内容的文件对安装的ApachePHP进行测试
<? phpinfo() ?>
把这个文件保存到Apache的文档根目录(htdocs)中然后开启浏览器键入http://localhost/phpinfophp地址屏幕上就会出现许多的变量和它们的值
如果要重新配置PHP需要再次运行make clean命令然后执行带有一系列选项的/configure命令然后再执行make和make install命令Apache的目录模块中就会出现一个新的模块只要再重新启动Apache加载这个新的模块就一切OK了