从零开始学PHP
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

第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