第2章 PHP编程硬件和软件需求
在第1章中,我们谈论了和Web相关的知识,对PHP也只是闻其声不见其人。终于,本章开始进入精彩的PHP讲解环节了,但俗话说“工欲善其事,必先利其器”,要掌握PHP,首先要了解它的操作工具。本章首先搭建PHP的开发环境,然后开发第一个PHP程序。
2.1 环境搭建
在1.1节中提到LAMP组合,L代表Linux系统、A代表Apache Web服务器、M代表MySQL数据库、P代表PHP语言解释器,它们都运行在Linux系统之上,当然也运行在Windows系统上,下面是Apache、MySQL和PHP在这两个系统上的安装过程。
2.1.1 Linux系统安装Apache、MySQL和PHP
Linux系统是一个源代码开放的操作系统,目前已经有很多版本流行。本书所用的Linux版本适用于RedHat系列。RedHat Linux系统上安装软件分两种模式,一种是安装包安装,一种是源代码安装,本书介绍源代码安装。开始安装前,首先登录到终端,然后使用root用户登录,命令如下所示。
$ su Password: #
第1行是美元符号,输入“su”命令后,要求输入root用户的密码,然后命令提示符变成“#”,说明已经登录为root管理账号。
为方便安装,新建存放安装软件的目录,命令如下所示。
#mkdir /root/php
进入新建的目录。
#cd /root/php
下载所需软件。
#wget http://www.apache.org/dist/httpd/httpd-2.2.6.tar.gz #wget http://cn2.php.net/distributions/php-5.2.4.tar.gz #wget http://mysql.sd2.mirrors.redwire.net/Downloads/MySQL-5.0/mysql-5.0.41.tar.gz #wget http://www.zlib.net/zlib-1.2.3.tar.gz #wget http://jaist.dl.sourceforge.net/sourceforge/libpng/libpng-1.2.20.tar.gz #wget http://nchc.dl.sourceforge.net/sourceforge/freetype/freetype-2.3.5.tar.gz #wget http://www.ijg.org/files/jpegsrc.v6b.tar.gz #wget ftp://xmlsoft.org/libxml2/libxml2-2.6.30.tar.gz #wget ftp://xmlsoft.org/libxml2/libxslt-1.1.22.tar.gz #wget http://www.libgd.org/releases/gd-2.0.35.tar.gz
安装zlib库。
#cd /root/php #tar zxvf zlib-1.2.3.tar.gz #cd zlib-1.2.3 #./configure --prefix=/usr/local/zlib #make #make install
安装png图形库。
#cd /root/php #tar zxvf libpng-1.2.20.tar.gz #cd libpng-1.2.20 #cp scripts/makefile.std makefile #make #make install
安装freetype库。
#cd /root/php
#tar -zvxf freetype-2.3.5.tar.gz #cd freetype-2.3.5 #./configure --prefix=/usr/local/freetype #make #make install
安装jpeg图形库。
#cd /root/php # mkdir -pv /usr/local/jpeg6/{,bin,lib,include,man/man1,man1} #tar zxvf jpegsrc.v6b.tar.gz # ./configure --prefix=/usr/local/jpeg6/ --enable-shared --enable-static # make # make install # make install-lib
安装XSLT库。
#cd /root/php #tar zxvf libxslt-1.1.22.tar.gz #cd libxslt-1.1.22 #./configure #make #make install
安装XML库。
#cd /root/php #tar zxvf libxml2-2.6.30.tar.gz #cd libxml2-2.6.30 #./configure #make #make install
安装GD库。
#cd /root/php #tar zvxf gd-2.0.35.tar.gz #cd gd-2.0.35 #./configure --prefix=/usr/local/gd --with-jpeg=/usr/local/jpeg6 \ --with-png=/usr/local \ --with-zlib=/usr/local/zlib \ --with-freetype=/usr/local/freetype #make #make install
安装MySQL数据库。
#cd /root/php #groupadd mysql #useradd -g mysql mysql #tar zxvf mysql-5.0.41.tar.gz #cd mysql-5.0.41 #./configure --prefix=/usr/local/mysql --with-charset=gbk --with-extra-charset=all #make #make install #cp support-files/my-medium.cnf /etc/my.cnf #cd /usr/local/mysql #chown -R mysql #chgrp -R mysql . #bin/mysql_install_db --user=mysql #chown -R root . #chown -R mysql var #bin/mysqld_safe --user=mysql &
安装Apache Web服务器。
#cd /root/php #tar zxvf httpd-2.2.6.tar.gz #cd httpd-2.2.6 #./configure --prefix=/usr/local/apache --enable-so #make #make install # /usr/local/apache/bin/apachectl start
安装PHP解释器。
#cd /root/php #tar zxvf php-5.2.4.tar.gz # cd php-5.2.4 #./configure --prefix=/usr/local/php \ --with-apxs2=/usr/local/apache/bin/apxs \ --with-mysql=/usr/local/mysql \ --with-pdo-mysql=/usr/local/mysql \ --with-xml=/usr/local \ --with-png=/usr/local \ --with-jpeg-dir=/usr/local/jpeg6 \ --with-zlib=/usr/local/zlib \ --with-freetype=/usr/local/freetype \ --with-gd=/usr/local/gd \ --enable-mbstring=all # make # make install # cp php.ini-dist /usr/local/php/lib/php.ini # echo “application/x-httpd-php php” >> /usr/local/apache/conf/mime.types # /usr/local/apache/bin/apachectl restart
这样,Linux下的Apache Web服务器、MySQL数据库和PHP环境安装就完成了。
2.1.2 Windows系统安装Apache、MySQL和PHP
Windows系统是目前使用最多最常见的系统,本节的安装任务是在Windows XP系统下进行的。首先在C盘建立文件夹“php”,用于保存安装文件。
首先按照下列地址下载所需的软件,并存入C盘建立的php文件夹。
Apache Web服务器
http://www.apache.org/dist/httpd/binaries/win32/apache_2.2.6-win32-x86-no_ssl.msi
MySQL数据库
http://mysql.sd2.mirrors.redwire.net/Downloads/MySQL-5.0/mysql-5.0.45-win32.zip
PHP解释器
http://cn.php.net/distributions/php-5.2.4-win32-installer.msi
1.安装Apache
(1)下载好上列软件后,进入C盘的php文件夹,双击“apache_2.2.6-win32-x86-no_ssl.msi”文件,出现安装界面后,单击“Next”按钮,选择第1个单选按钮同意版权协议,如图2.1所示。
图2.1 同意版权
(2)继续单击“Next”按钮,出现Apache介绍,单击“Next”按钮,出现服务器的信息表单,如图2.2所示。
图2.2 服务器信息
(3)在第1项“Network Domain”文本框中填写“localhost”,在第2项“Server Name”文本框中填写“localhost”,在第3项“Administrator’s Email Address”文本框中填写此服务器管理员的电子邮件地址,然后单击“Next”按钮,出现安装类型,如图2.3所示。
图2.3 选择安装类型
(4)选择单选按钮“Custom”,单击“Next”按钮,出现自定义安装界面,单击“Change”按钮,如图2.4所示。
图2.4 自定义安装
(5)显示安装目录选择对话框,如图2.5所示。
图2.5 目录选择
(6)在“Folder name”文本框输入“C:\www\Apache2.2”,单击“OK”按钮,继续单击“Next”按钮,最后单击“Install”按钮开始安装,出现安装进度条,在等待安装期间会出现两个命令行窗口,不必理会,运行成功后会自动关闭,直到最后安装成功,单击“Finish”按钮,Apache Web服务器就安装好了。
2.安装PHP
(1)双击“php-5.2.4-win32-installer.msi”文件,单击“Next”按钮,出现版权协议,选择“I accept the terms in the License Agreement”单选按钮,单击“Next”按钮,出现选择安装目录界面,如图2.6所示。
图2.6 选择PHP安装目录
(2)单击“Next”按钮,出现Web服务器设置,如图2.7所示。
图2.7 Web服务器设置
(3)选择单选按钮“Apache 2.2.x Module”,单击“Next”按钮,出现选择Apache配置目录窗口,如图2.8所示。
图2.8 Apache配置目录
(4)在“Apache Configuration Directory”文本框中输入“C:\www\Apache2.2\conf\”,单击“Next”按钮,出现选择扩展窗口,如图2.9所示。
图2.9 选择扩展
(5)选择“Extensions”中的“gd2”、“Gettext”、“imagick”、“multi-byte string”、“Mysql”、“PDO”|“MySQL”、“xsl”和“XML-rpc”,单击“Next”按钮,然后单击“Install”按钮,出现安装进度条,等待安装结束,单击“Finish”。PHP就安装好了。
3.安装MySQL
(1)用Winrar解压“mysql-5.0.45-win32.zip”压缩包里的“setup.exe”文件到当前目录,双击“setup.exe”文件出现安装界面,单击“Next”按钮,出现安装类型窗口,选择“Custom”单选按钮,单击“Next”按钮,出现自定义安装界面,单击“Change”按钮,出现选择安装目录对话框,如图2.10所示。
图2.10 选择安装目录对话框
(2)在“Folder name”文本框输入“c:\www\MySQL\ MySQL Sener 5.0\”,单击“OK”按钮,继续单击“Next”按钮,最后单击“Install”按钮开始安装,等待安装完成后,单击“Next”按钮,直到最后单击“Finish”按钮,自动跳出配置窗口,单击“Next”按钮,直到出现数据库字符集配置窗口,如图2.11所示。
图2.11 选择字符集
(3)选择“Manual Selected Default Character Set / Collation”单选按钮,然后在“Character Set”下拉列表中选择“gbk”,单击“Next”按钮,直到出现设置密码窗口,如图2.12所示。
(4)输入自己的密码,单击“Next”按钮,最后单击“Execute”按钮,执行完成后单击“Finish”按钮。完成安装MySQL数据库。
图2.12 设置密码
2.1.3 安装Zend Studio
Zend Studio是Zend公司出品的一款荣获多个大奖的PHP集成开发环境,该软件为商业软件,但可以在http://www.zend.com下载30天的试用版,本书安装的版本为5.5.0a。
(1)下载完成后,双击“ZendStudio-5_5_0a.exe”文件,进入安装界面,单击“Next”按钮,选择“I accept the terms of the License Agreement”单选按钮,如图2.13所示。
图2.13 同意版权协议
(2)继续单击“Next”按钮,直到出现“Install”按钮,如图2.14所示。
图2.14 安装Zend Studio
(3)单击“Install”按钮,直到安装完成,继续单击“Next”按钮,直至出现“Done”按钮后,单击“Done”按钮,安装成功。
为了确保新安装软件的正常启动,安装完毕后重新启动一次电脑。
2.2 Apache和PHP配置
安装完成Apache和PHP后,Apache和PHP都各自提供了一个文本配置文件,以供用户灵活地进行运行时的配置。
2.2.1 Apache服务器基本配置
此小节可选读。进入Apache配置文件目录,Windows系统在C:\www\Apache2.2\conf目录中,Linux系统在/usr/local/apache/conf目录中,用记事本打开httpd.conf文件(Linux用vi打开),其中基本配置选项的解释如下所示。
# 前面有#号表示为注释行 # ThreadsPerChild: 每个子进程的线程数 # MaxRequestsPerChild: 每个子进程的最大请求数 ThreadsPerChild 250 MaxRequestsPerChild 0 # 服务器的安装目录 ServerRoot "C:/www/Apache2.2" #监听端口,通常情况下都是80 Listen 80 #加载动态扩展 LoadModule actions_module modules/mod_actions.so LoadModule alias_module modules/mod_alias.so LoadModule asis_module modules/mod_asis.so LoadModule auth_basic_module modules/mod_auth_basic.so #LoadModule auth_digest_module modules/mod_auth_digest.so #服务器管理员的电子邮件地址 ServerAdmin foolkaka@hotmail.com #此服务器的名字 ServerName localhost:80 #网站的根目录,和上面的安装目录不一样,网站根目录可以指定到任意目录 DocumentRoot "C:/www/Apache2.2/htdocs" #目录索引文件,当访问一个目录时,自动访问到被设置的文件 #可以设置多个,文件名之间用空格分隔 <IfModule dir_module> DirectoryIndex index.html index.php </IfModule> #这里是Windows系统安装PHP后自动添加的行 #BEGIN PHP INSTALLER EDITS - REMOVE ONLY ON UNINSTALL PHPIniDir "C:/www/PHP/" LoadModule PHP 5_module "C:/www/PHP/PHP 5apache2_2.dll" #END PHP INSTALLER EDITS - REMOVE ONLY ON UNINSTALL
2.2.2 PHP的基本配置
用记事本打开PHP配置文件php.in(i Linux用vi打开),php.ini文件位于Windows系统的PHP安装目录,Linux系统在/usr/local/php/lib目录下。
基本配置选项解释如下。
; 每一行开头有分号“;”表示为注释 ; 是否打开php语言引擎。On打开,Off关闭 engine = On ; 脚本开头是否支持短标签,通常情况下php脚本开头标签是“<?php“ ; 这个选项如果设置为On,那么可以使用“<?” short_open_tag = Off ; 是否允许asp语言的 <% %> 标签 ; 通常php脚本被包含在<?php ?>标签中 ; 如果此项被设置为On,那么<% %>标签内的语句也会当成php语句执行 asp_tags = Off ; 各个脚本的最大运行时间,单位为秒 max_execution_time = 30 ; 各个脚本接收数据的最大时间 max_input_time = 60 ; php脚本使用内存限制 memory_limit = 128M ; 脚本包含的路径 ; UNIX系统使用冒号分隔多个路径,如: "/path1:/path2" ;include_path = ".:/usr/local/php/lib" ; ; Windows系统用分号分隔多个路径: "\path1;\path2" ;include_path = ".;c:\php\includes" ; 扩展目录路径 extension_dir ="C:\www\PHP\ext" ; 扩展,加载上面扩展目录中的扩展 ; 如果要使用某个扩展,可以将扩展文件放到扩展目录中,然后在下面新写一行extension=你的文件名 extension=php_gd2.dll
注意 以上设置可能和读者机器上的设置有所不同。
2.2.3 PHP文件上传配置
在php.ini文件中可以找到文件上传配置区域,配置选项解释如下。
;;;;;;;;;;;;;;;; ; File Uploads ; ;;;;;;;;;;;;;;;; ; 设置为On 允许 HTTP 文件上传,设置为Off不允许上传 file_uploads = On ; HTTP上传文件的临时目录,此项不设置PHP使用操作系统默认的临时文件夹 ;upload_tmp_dir = ; 最大允许上传文件,单位为MB upload_max_filesize = 2M
2.2.4 PHP的Session配置
在php.ini文件中可以找到Session配置区域,配置选项解释如下。
[Session] ; Session的保存方式,默认为文件方式 session.save_handler = files ; 保存Session文件的路径 session.save_path = "/tmp"
注意 以上设置可能和读者机器上的设置不同。
2.2.5 PHP的电子邮件配置
在php.ini文件中可以找到电子邮件配置区域,配置选项解释如下。
[mail function] ; Windows系统下面mail函数只能通过smtp发信 ; SMTP主机和端口 SMTP = localhost smtp_port = 25 ; Linux系统下可以直接输入sendmail的安装路径 ;sendmail_path =
2.2.6 PHP的安全设置
在php.ini文件中,有一些选项对脚本安全起着重要作用,下面是一些建议的配置。
; 此选项若打开,get,post,cookie和server将自动注册为全局变量,若变量已存在,将会覆盖旧的变量 ; 新的PHP版本将不再支持这个选项,建议设置为Off register_globals = Off ; 安全模式,必要时可以设置为On,如虚拟主机提供商 safe_mode = Off ; 禁止函数 ; 此选项可以禁止一些函数的运行,多个函数名以逗号分隔 disable_functions = ; 禁止的类 ; 此选项可以禁止一些类运行,多个类名以逗号分隔 disable_classes =
2.2.7 PHP调试设置
PHP调试器目前有好几个,如xdebug、apd等,本书用到的调试器是Zend公司的Zend Debugger,可以在http://www.zend.com下载到。
Zend Debugger是以扩展的形式提供,根据系统的不同,分别下载Windows版本或Linux版本,这里讲解Windows系统下的安装,Linux系统除了扩展文件不一样,安装步骤与Windows系统的一样。
(1)将下载的压缩包“ZendDebugger-5.2.6-cygwin_nt-i386.tar.gz”文件解压,复制“5_2_x_comp”文件夹里面的“ZendDebugger.dll”文件至PHP的扩展目录,如图2.15所示。
图2.15 Zend Debugger扩展
(2)编辑php.ini文件,在文件结尾添加下列行。
zend_extension_ts=C:/www/PHP/ext/ZendDebugger.dll zend_debugger.allow_hosts=127.0.0.1 zend_debugger.expose_remotely=always
注意 如果在安装PHP的时候你选择了不同路径,“zend_extension_ts”选项需要改成你自己的安装路径。
(3)复制ZendDebugger-5.2.6-cygwin_nt-i386目录下的dummy.php文件至网站根目录(即C:\www\Apache2.2\htdocs文件夹)。
(4)配置完保存文件后,需要重新启动Apache服务器,单击任务栏右侧的Apache服务控制图标(一片红羽毛和绿色箭头),在弹出的菜单中选择“Restart”完成服务器的重新启动,如图2.16所示。
图2.16 重启Apache服务
2.3 第一个PHP程序Hello World
经过一连串的安装和设定,有人一定会问:“这样能运行PHP了吗?”,下面就来运行第一个PHP程序。
(1)启动Zend Studio,如图2.17所示。
图2.17 启动Zend Studio
(2)选择“Project”|“New Project”命令,如图2.18所示。
图2.18 创建新项目
(3)在弹出的对话框中的“Name”文本框中输入“php”,单击“Next”按钮,如图2.19所示。
图2.19 填写项目名
(4)在弹出的对话框中单击“Add path”,弹出路径选择对话框,找到Apache安装目录,选择htdocs目录,如图2.20所示。
图2.20 添加项目路径
(5)单击“Add”按钮,返回对话框,单击“Next”按钮在该对话框中设置项目属性,如图2.21所示。
图2.21 设置项目属性
(6)取消勾选“Use System Defaults”复选框,在Debug区域中的Debug Mode中选择“Server”,在Debug Server URL文本框中填写“localhost/”,最后单击“Finish”按钮返回Zend Studio主界面。
(7)在主界面的“Project”窗口中,用鼠标右键单击htdocs目录,在弹出的快捷菜单中选择“New Folder”,在“Enter a new folder name”文本框中输入“lesson1”后单击“确定”按钮,如图2.22所示。
图2.22 新建目录
(8)在新建的lesson1目录上单击鼠标右键,在弹出的快捷菜单中选择“New File”,在“Enter a new file name”文本框中输入“helloworld.php”,如图2.23所示。
图2.23 新建文件
(9)单击“确定”按钮,返回Zend Studio主界面。此时,Zend Studio编辑区自动打开了helloworld.php文件,输入下列代码。
<?php // 你好世界 echo "Hello World!"; ?>
(10)按快捷键“Ctrl + S”或选择“File”|“Save”命令进行保存,再按“F5”键运行,这时候看到Debug Output区域内显示“Hello World!”,如图2.24所示。
图2.24 运行结果
激动人心的时刻总是那么短,能让PHP说一句“Hello world”只是一小步,但对于还没接触过PHP的人来说是一大步啊!
2.4 小结
这一章主要学习了安装和配置Apache、MySQL和PHP,以及Zend Studio的知识。按本书步骤,在Windows系统下安装好后,不用配置都能正常使用,Linux系统因可定制性太强或版本差异,可能安装时会碰到一些问题,此类问题可以根据各自情况,在网上找资料解决。PHP,Apache是自由软件,全世界有很多人在维护和开发模块,本章的配置部分虽然简单,覆盖面不多,但已经能满足普通网站的基本需要。
2.5 习题
一、填空题
1.PHP可选择的Web服务器是__________________、________________。
2.PHP一般选择的数据库是__________________。
二、选择题
1.以下站点可以下载到PHP的是( )。
A.http://www.php.net
B.http://www.apache.org
C.http://www.mysql.com
D.http://www.asp.net
2.以下站点可以下载到Apache的是( )。
A.http://www.php.net
B.http://www.apache.org
C.http://www.mysql.com
D.http://www.asp.net