专题讲座:光盘\MR\Video\2\配置PHP的常见问题.exe
视频速递:重点讲解配置PHP的常见问题
程序运行出错是许多程序员最为头疼的问题,下面介绍PHP常见的配置问题。通过本节的学习,可以分清哪些错误是由于PHP环境配置不当产生的,从而避免不必要的时间资源浪费,高效地完成Web应用程序的开发。
IIS的默认端口号为80,同Apache服务器默认端口号相同。由于采用了相同的端口号80,因此,在运行网页时就会发生冲突。
如果用户机器上安装了IIS,就需要修改IIS的默认端口,否则将导致Apache服务器无法正常工作。更改IIS的默认侦听端口80,可以在IIS的管理器中进行设置,或者停止IIS的服务也可以。
用户也可以在安装Apache服务器时将默认的端口号进行更改,从而解决两个服务器共用一个端口号而产生冲突的问题。
Apache的核心配置文件是httpd.conf,存放路径为“Apache的安装路径\conf\”,用记事本打开它,定位到DocumentRoot,语句如下。
这个语句指定了网站路径,也就是主页放置的目录。可以使用默认的,也可以自己指定一个,需要注意的是,语句的末尾不要加“/”。
在网站开发的过程中,控制上传文件的大小有两个关键点:第一点是PHP的配置文件php.ini中对上传文件的控制,如果上传文件超过它指定的范围,那么上传就会执行失败;第二点是在PHP配置文件允许的范围内,在程序中对上传文件大小的控制。
(1)PHP中通过php.ini文件对上传文件进行控制,包括是否支持上传、上传文件的临时目录、上传文件的大小、指令执行的时间、指令分配的内存空间。
在php.ini中,定义File Uploads项,完成对上传相关选项的设置。上传相关选项的含义如下。
file_uploads:如果值是on,说明服务器支持文件上传;如果为off,则不支持。一般默认是支持的,这个不用修改。
upload_tmp_dir:上传文件临时目录。在文件被成功上传之前,文件首先存放到服务器端的临时目录中。多数使用系统默认目录,但是也可以自行设置。
upload_max_filesize:服务器允许上传文件的最大值,以M为单位,系统默认为2M。如果网站需要上传超过2M的数据,那么就要修改这个值。
上述是php.ini中File_Uploads项中与上传相关选项参数设置说明,除了File_Uploads项中的内容外,在php.ini中还有其他几个选项会影响文件的上传。
max_execution_time:PHP中一个指令所能执行的最大时间,单位是秒。该选项在上传超大文件时必须修改,否则即使上传文件在服务器允许的范围内,但是超过了指令所能执行的最大时间,仍然无法实现上传。
memory_limit:PHP中一个指令所分配的内存空间,单位是MB。它的大小同样会影响超大文件的上传。
(2)在客户端控制上传文件,应用form表单中的enctype属性和method属性,以及隐藏域MAX_FILE_SIZE。
enctype='multipart/form-data',指定表单编码数据方式。
method='post',指定数据的传输方式。
<input type='hidden' name='MAX_FILE_SIZE' value='10000' />,通过隐藏域控制上传文件的大小(单位为字节),该值不能超过php.ini配置文件中upload_max_filesize选项设置的值。它不能完全控制上传文件的大小,只是可以避免一些不必要的麻烦。
在客户端通过隐藏域MAX_FILE_SIZE控制上传文件的大小时,隐藏域表单元素必须放置在文件域之前,否则隐藏域是不会起到控制上传文件大小作用的。
增加PHP扩展模块也称为动态扩展,用来动态加载某个模块,它包含一个指令:extension。
在Windows操作系统下,加载模块的方法如下。
在Linux操作系统下,加载模块的方法如下。
需要说明的是,只加载这一行代码并不一定能启用相关的扩展包,有时还需要确保在操作系统中安装相关的软件。例如,为启用Java支持,需要安装JDK。
当在完成PHP扩展模块的加载之后,那么如何检测扩展模块是否加载成功呢?方法非常简单,应用PHP函数库中的phpinfo()函数。
编写一个PHP脚本,脚本中代码如下。
将这个PHP脚本存储于Apache服务器的根目录下,命名为phpinfo.php。在IE浏览器中运行这个PHP文件,在页面中即可查看扩展模块是否被加载。例如,检测PHP是否支持MySQL,其检测结果如图2.19所示,则说明PHP支持MySQL。
图 2.19 检测PHP是否支持MySQL模块