第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.25.tar.gz #wget http://cn2.php.net/distributions/php-5.3.28.tar.gz #wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.20.tar.gz #wget http://www.zlib.net/zlib-1.2.8.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.8.tar.gz #cd zlib-1.2.8 #./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.6.20.tar.gz #cd mysql-5.6.20 #./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.25.tar.gz #cd httpd-2.2.25 #./configure --prefix=/usr/local/apache --enable-so #make #make install # /usr/local/apache/bin/apachectl start
安装PHP解释器。
#cd /root/php #tar zxvf php-5.3.28.tar.gz # cd php-5.3.28 #./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.25-win32-x86-no_ssl.msiMySQL
数据库
http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.20-win32.msi
PHP解释器
http://windows.php.net/downloads/releases/php-5.3.28-Win32-VC9-x86.msi
1. 安装Apache
(1)下载好上列软件后,进入C盘的php文件夹,双击“apache_2.2.25-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.3.28-win32-VC9-x86.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)双击“mysql-5.6.20-win32.exe”文件出现安装界面,单击“Next”按钮,出现版权协议,选中“I accept the terms in the License Agreement”复选框,单击“Next”按钮。
(2)出现安装类型窗口,单击“Custom”按钮,出现自定义安装界面,如图2.10所示。在这个界面中单击“Browse”按钮修改安装位置,这里设置为“c:\www\MySQL\”。
图2.10 自定义安装
(3)单击“Next”按钮,最后单击“Install”按钮开始安装,等待安装完成后,单击“Next”按钮,直到最后单击“Finish”按钮,自动跳出配置窗口,单击“Next”按钮,直到出现数据库字符集配置窗口,如图2.11所示。
图2.11 选择字符集
(4)选择“Manual Selected Default Character Set / Collation”单选按钮,然后在“Character Set”下拉列表中选择“gbk”,单击“Next”按钮,直到出现设置密码窗口,如图2.12所示。
图2.12 设置密码
(5)输入自己的密码,单击“Next”按钮,最后单击“Execute”按钮,执行完成后单击“Finish”按钮。完成MySQL数据库的安装。
2.1.3 安装Zend Studio
Zend Studio是Zend公司出品的一款荣获多个大奖的PHP集成开发环境,该软件为商业软件,可以在http://www.zend.com下载30天的试用版,本书使用的版本为11.0.0。
(1)下载完成后,双击“ZendStudio-11.0.0-win32.win32.x86.msi”文件,进入安装界面,如图2.13所示。
图2.13 安装向导
(2)单击“Next”按钮,进入如图2.14所示界面,设置安装文件夹。
图2.14 安装文件夹
(3)单击“Next”按钮,进入如图2.15所示界面,单击“Install”按钮开始安装。安装完成后显示如图2.16所示界面,单击“Finish”按钮完成安装。
图2.15 安装向导 | 图2.16 安装完成 |
为了确保新安装软件的正常启动,安装完毕后重新启动一次电脑。
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.ini(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.17所示。
图2.17 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.18所示。
图2.18 重启Apache服务
2.3 第一个PHP程序Hello World
经过一连串的安装和设定,有人一定会问:“这样能运行PHP了吗?”下面就来运行第一个PHP程序。
(1)启动Zend Studio,如图2.19所示。
图2.19 启动Zend Studio
(2)第一次启动Zend Studio时,将弹出如图2.20所示的设置工作空间的窗口。
图2.20 设置工作空间
(3)选择“File”|“New”|“Local PHP Project”命令,如图2.21所示。
图2.21 选择菜单
(4)在弹出的对话框中的“Project Name”文本框中输入“HelloWorld”,在“Location”右侧输入Apache中设置的根目录,如图2.22所示。
图2.22 创建新项目
(5)单击“Finish”按钮即可创建新的项目,如图2.23所示,在左侧的“PHP Explorer”中列出了项目中的文件。
图2.23 新项目
(6)新建的项目自动添加了一个名为“index.php”的文件,双击打开该文件,在文件中输入下列代码。
<?php // 你好世界 echo "Hello World!"; ?>
(7)按快捷键“Ctrl+S”或选择“File”|“Save”命令进行保存。再按“Ctrl+F11”组合键运行代码,这时将显示如图2.24所示的对话框,选择通过哪种方式运行代码。
图2.24 选择代码运行方式
(8)选择“PHP Web Application”以网页方式来运行PHP代码,单击“OK”按钮,即可看到如图2.25所示的运行结果,这是以一个内置浏览器的方式显示代码的运行结果。
图2.25 运行结果
激动人心的时刻总是那么短,能让PHP说一句“Hello World”只是一小步,但对于还没接触过PHP的人来说是一大步啊!
2.4 典型实例
【实例2-1】Apache的管理。
Apache安装成功后,会自动注册一个服务并启动,同时运行一个软件ApacheMonitor,来管理、监视和控制这个服务。
通过ApacheMonitorr的图标,可以得知当前Apache服务的运行状态,图标内的三角形为绿色时代表服务正在运行,为红色时代表服务已经停止。
通过右击ApacheMonitor图标,弹出ApacheMonitor菜单,选择“Open Apache Monitor”菜单项。会弹出Apache服务管理器的窗口,如图2.26所示。
图2.26 Apache服务管理器
Apache服务管理器窗口,可以帮助用户启动、停止、重启Apache服务,也可以打开本机服务管理器和链接管理局域网里其他电脑主机的Apache服务。Apache服务管理器的下方状态栏里显示的是当前Apache的版本及插件状态。
【实例2-2】Apache的访问。
Apache安装完成后,默认情况下占用电脑的80端口,并使当前的电脑成为网络服务器,当这台电脑接入到互联网并拥有IP地址后,就可以被互联网中的任何一个用户访问。如果电脑没有接入到互联网,也可以通过特定的IP地址来访问Apache。
在浏览器的地址烂里输入http://localhost或http://127.0.0.1后,浏览器会向当前电脑80端口发送网络服务请求。Apache在检测到网络请求后,将用户请求的数据发送给浏览器。经过浏览器解析后,呈现给用户。当出现图2.27所示内容后,说明Apache服务运行正常。
图2.27 Apache服务成功运行
图2.27所示内容,是由Apache安装目录下htdocs目录下的index.html文件提供。htdocs文件夹是默认的工作文件夹,用户通过浏览器访问的资源,都需要放置在这个文件夹下。当然也可以通过修改Apache的配置文件,来改变这个文件夹的路径。Apache安装完成后,只支持HTML和JavaScript等语言,要想使其支持PHP,还需要为其安装PHP插件。
【实例2-3】发布PHP程序。
发布PHP程序的过程,就是把PHP代码文件复制到Apache工作目录下的过程。要想发布在2.3节中创建的PHP代码,需要以下过程。
(1)找到PHP文件,并执行复制操作。
(2)找到Apache的安装目录,进入htdocs目录下。
(3)执行粘贴操作,把PHP代码保存在Apache的工作目录下。
通过以上操作,就完成了PHP程序的发布。然后启动Apache,在浏览器的地址栏里输入http://127.0.0.1/index.php,就可以访问刚复制的hindexello.php文件了,按“Enter”键后浏览器内将会出现PHP脚本运行后的结果。
2.5 小结
这一章主要学习了安装和配置Apache、MySQL和PHP,以及Zend Studio的知识。按本书步骤,在Windows系统下安装好后,不用配置都能正常使用,Linux系统因可定制性太强或版本差异,可能安装时会碰到一些问题,此类问题可以根据各自情况,在网上找资料解决。PHP和Apache是自由软件,全世界有很多人在维护和开发模块,本章的配置部分虽然简单,覆盖面不多,但已经能满足普通网站的基本需要。
2.6 习题
一、填空题
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
共有条评论 网友评论