LAMP应用架构部署指南-PHP安装及设置

1.
本文将以php 5.2.5为例,以CentOS 5为平台,讲述PHP的安装和设置。

2. 关于PHP
PHP(“PHP: Hypertext Preprocessor”,超文本预处理器的字母缩写)是一种被广泛应用的开放源代码的多用途脚本语言,它可嵌入到 HTML中,尤其适合 web 开发。
PHP 主要是用于服务端的脚本程序,因此可以用 PHP 来完成任何其它的 CGI 程序能够完成的工作,例如收集表单数据,生成动态网页,或者发送/接收 Cookies。但 PHP 的功能远不局限于此。
PHP 脚本主要用于以下三个领域: 
服务端脚本。这是 PHP 最传统,也是最主要的目标领域。开展这项工作需要具备以下三点:PHP 解析器(CGI 或者服务器模块)、web 服务器和 web 浏览器。需要在运行 web 服务器时,安装并配置 PHP,然后,可以用 web 浏览器来访问 PHP 程序的输出,即浏览服务端的 PHP 页面。如果只是实验 PHP 编程,所有的这些都可以运行在自己家里的电脑中。
命令行脚本。可以编写一段 PHP 脚本,并且不需要任何服务器或者浏览器来运行它。通过这种方式,仅仅只需要 PHP 解析器来执行。这种用法对于依赖 cron(Unix 或者 Linux 环境)或者 Task Scheduler(Windows 环境)的日常运行的脚本来说是理想的选择。这些脚本也可以用来处理简单的文本。
编写桌面应用程序。对于有着图形界面的桌面应用程序来说,PHP 或许不是一种最好的语言,但是如果用户非常精通 PHP,并且希望在客户端应用程序中使用 PHP 的一些高级特性,可以利用 PHP-GTK 来编写这些程序。用这种方法,还可以编写跨平台的应用程序。PHP-GTK 是 PHP 的一个扩展,在通常发布的 PHP 包中并不包含它。如果对 PHP-GTK 感兴趣,请访问其 网站以获取更多信息。

3. PHP的安装
PHP有两种安装方式:源码包安装和二进制包安装。这两种方式各有特色,二位制包安装不需编译,针对不同的平台有经过优化编译的不同的二进制文件以及包格式,安装简单方便;源码包则必须先配置编译再安装,可以根据你所用的主机环境进行优化,选择最佳的配置值,安装定制更灵活。
下面分别介绍这两种安装方式。
3.1 源码包方式安装
3.1.1 下载最新稳定发行版(GA)的PHP软件
访问PHP网站 http://www.php.net/downloads.php下载最新稳定发行版的PHP源码包。本文使用的是5.2.5版本,在linux系统下用下面的命令下载:
wget  http://cn2.php.net/distributions/php-5.2.5.tar.gz
3.1.2 解压缩下载的源码包
首先建立一个工作目录( 笔者建议的目录为/usr/local/src/php ) :
mkdir -p /usr/local/src/php
将下载的源码包移至工作目录:
mv php-5.2.5.tar.gz  /usr/local/src/php
进入工作目录并用tar命令解压源码包:
cd  /usr/local/src/php
tar zxvf  php-5.2.5.tar.gz
命令执行结束后,当前工作目录下将生成一个新的子目录php-5.2.5,此目录下即为php的源码文件。
3.1.3 配置Makefile文件
进入php源码目录:
cd php-5.2.5
执行下面的命令可查看可配置选项:
./configure –help
本文使用的配置命令如下:
CC=gcc CFLAGS= “-O3″ CXX=gcc CXXFLAGS=”-O3 -felide-constructors -fno-exceptions -fno-rtti” ./configure –prefix=/usr/local/php-5.2.5 –with-apxs2=/usr/local/apache-2.2.6/bin/apxs –with-mysql=/usr/local/mysql –with-mysqli=/usr/local/mysql/bin/mysql_config –with-pdo-mysql=/usr/local/mysql –with-openssl –with-zlib –with-gd –with-jpeg-dir –with-png-dir –with-zlib-dir –with-ttf –with-freetype-dir –with-gettext –with-curl –with-iconv –enable-gd-native-ttf –enable-ftp –enable-embed –enable-fastcgi –enable-calendar –enable-magic-quotes –enable-sockets –enable-sysvsem –enable-sysvshm –enable-sysvmsg –enable-pcntl –enable-shmop –enable-exif –enable-mbstring –with-config-file-path=/usr/local/php-5.2.5/etc
配置选项说明:
CC:C编译器的名称(用于运行configure),本文示例为gcc
CFLAGS:C编译器的标志(用于运行configure),本文示例为-O3,指定优化级别为3
CXX:C++编译器的名称(用于运行configure),本文示例为gcc
CXXFLAGS:C++编译器的标志(用于运行configure)
–prefix:指定安装目录,本文示例为/usr/local/php-5.2.5
–with-mysql[=DIR]:包含MySQL扩展,[=DIR]指定mysql安装目录,省略[=DIR]则为默认位置/usr
–with-mysqli[=FILE]:包含MySQLI扩展,[=FILE]指定mysql_config文件位置,省略[=FILE]则为默认位置/usr/bin/mysql_config
–with-pdo-mysql[=DIR]:包含PDO:MySQL扩展,[=DIR]指定mysql安装目录,省略[=DIR]则为默认位置/usr
–with-apxs2[=FILE]:编译为Apahce2共享模块,[=FILE]指定apache2 apxs文件位置,省略[=FILE]则为默认位置/usr/sbin/apxs
–with-openssl[=DIR]:包含OPENSSL扩展,[=DIR]指定openssl安装目录,省略[=DIR]为默认位置/usr
–with-zlib[=DIR]:包含ZLIB扩展,[=DIR]指定zlib安装目录,省略[=DIR]为默认位置
–with-gd[=DIR] :包含GD扩展,[=DIR]指定gd库安装目录,省略[=DIR]为默认位置
–with-jpeg-dir[=DIR]:[=DIR]指定libjpeg安装目录,省略[=DIR]为默认位置
–with-png-dir[=DIR]:[=DIR]指定libpng安装目录,省略[=DIR]为默认位置
–with-zlib-dir[=DIR]:[=DIR]指定libz安装目录,省略[=DIR]为默认位置
–with-ttf[=DIR]:[=DIR]指定FreeType 1.x安装目录,省略[=DIR]为默认位置
–with-freetype-dir[=DIR]:[=DIR]指定FreeType 2安装目录,省略[=DIR]为默认位置
–with-gettext:包含GNU gettext扩展
–with-curl: 包含CURL扩展
–with-iconv:包含iconv扩展
–enable-gd-native-ttf:允许TrueType string功能
–enable-ftp:包含ftp扩展
–enable-embed:使用内建的SAPI库
–enable-fastcgi:启用快速cgi支持
–enable-calendar:启用calendar conversion支持
–enable-magic-quotes:启用magic-quotes支持
–enable-sockets:启用socket扩展
–enable-sysvsem:启用System V semaphore支持
–enable-sysvshm:启用System V shared memory支持
–enable-sysvmsg:启用sysvmsg支持
–enable-pcntl:在CGI/CLI下启用 pcntl支持
–enable-shmop:启用shmop支持
–enable-exif:启用EXIF (metadata from images)支持
–enable-mbstring:启用多字节字符串支持
–with-config-file-path:指定配置文件路径,本文示例为/usr/local/php-5.2.5/etc
3.1.4 编译源代码
执行下面的命令编译源代码:
make
3.1.5 安装
执行下面的命令安装PHP到目标路径:
make install
3.1.6 复制配置文件到指定的配置文件目录
源码方式安装需要手动复制配置文件,配置模板位于源码树的根目录,有php.ini-dist、php.ini-recommended两个,复制其中一个到先前指定的配置文件目录,并做适当修改。关于php配置文件的详细信息请参阅笔者的其它文章或 PHP官方文档
笔者推荐选择php.ini-recommended,执行下面的命令将其复制到先前指定的配置文件目录:
cp ./php.ini-recommended /usr/local/php-5.2.5/etc/php.ini
3.1.7 修改apache配置文件httpd.conf,启用PHP模块
本文示例apache配置文件为/usr/local/apache-2.2.6/conf/httpd.conf
php的apache共享模块位于php安装目录下的lib目录,本文示例为/usr/local/php-5.2.5/lib/libphp5.so
用vi命令编辑此配置文件:
vi /usr/local/apache-2.2.6/conf/httpd.conf
在适当位置加入下面的语句来启用php模块:
LoadModule php5_module /usr/local/php-5.2.5/lib/libphp5.so
接下来加入下需的语句告知Apache将特定的扩展名解析成PHP,本例为.php 、.phtml(可以将任何扩展名指定为 PHP,只需添加它们,每一个用空格分隔):
AddType application/x-httpd-php .php .phtml
通常还将 .phps 扩展名设置成显示高亮的 PHP 源文件,可以加入下面的语句来完成:
AddType application/x-httpd-php-source .phps
接下来修改DirectoryIndex指令,设置目录索引文件查找顺序:
DirectoryIndex index.php index.html

3.2 二进制包方式安装
3.2.1 从安装媒体安装
PHP二进制包已经包含在CentOS 5的安装媒体中,可以直接从安装媒体中安装下面的rpm包:
php-5.1.6-15.el5.i386.rpm
php-cli-5.1.6-15.el5.i386.rpm
php-common-5.1.6-15.el5.i386.rpm
php-devel-5.1.6-15.el5.i386.rpm
php-bcmath-5.1.6-15.el5.i386.rpm
php-gd-5.1.6-15.el5.i386.rpm
php-mbstring-5.1.6-15.el5.i386.rpm
php-mysql-5.1.6-15.el5.i386.rpm
php-ncurses-5.1.6-15.el5.i386.rpm
php-pear-1.4.9-4.noarch.rpm
php-xml-5.1.6-15.el5.i386.rpm
php-xmlrpc-5.1.6-15.el5.i386.rpm
(不同的版本文件名有所不同,请注意区分)

执行下面的命令安装以上所有rpm包:
rpm -iUvh  php-*.rpm

3.2.2 通过yum安装
如果你安装的机器此时可以连接到互联网,笔者建议使用yum命令来简化安装过程:
yum install php*
yum将自动从centos的镜像站点查找PHP及其模块的所有最新二进制包,并检查软件包依赖关系,安装软件的同时自动安装其依赖的软件包。

3.2.3 修改apache配置文件httpd.conf,启用PHP模块
如果apache是直接RPM安装或是yum方式安装的,则跳过此步骤。
本文示例apache配置文件为/usr/local/apache-2.2.6/conf/httpd.conf
php的apache共享模块位于/usr/lib或/usr/lib64(64位系统)目录,本文示例为/usr/lib/httpd/modules/libphp5.so,并且链接到/etc/httpd
用vi命令编辑此配置文件:
vi /usr/local/apache-2.2.6/conf/httpd.conf
在适当位置加入下面的语句来启用php模块:
LoadModule php5_module /usr/lib/httpd/modules/libphp5.so
接下来加入下需的语句告知Apache将特定的扩展名解析成PHP,本例为.php 、.phtml(可以将任何扩展名指定为 PHP,只需添加它们,每一个用空格分隔):
AddType application/x-httpd-php .php .phtml
通常还将 .phps 扩展名设置成显示高亮的 PHP 源文件,可以加入下面的语句来完成:
AddType application/x-httpd-php-source .phps
接下来修改DirectoryIndex指令,设置目录索引文件查找顺序:
DirectoryIndex index.php index.html

4. 重启apache服务,以使设置生效
如果apache是直接rpm安装或yum方式安装,使用下面的命令重启服务:
service httpd restart
如果apache是源码方式安装,使用安装目录bin目录下的apachectl脚本重启服务,本文示例为:
/usr/local/apache-2.2.6/bin/apachectl restart

5. 结束语
至此,PHP基本安装完毕。希望本文能对初学者有所帮助。

服务器维护 服务器配置 服务器 维护 运维 网管 系统调优 网络调优 数据库优化