多数大学生出来选择的工作和专业无关
首页 > 专业知识

详解如何正确配置PHP开发环境

时间:2018-04-21 17:14:01 [来源]:郑州PHP培训学校

   详解如何正确配置PHP开发环境

  PHP语言在进行开发之前,需要将开发环境配置妥当,这样才能实现我们的程序完美运行。那么,如何正确的配置PHP开发环境呢?文章将介绍Apache、MySql、PHP的下载、安装及配置,分别讲述在windows和Linux环境下开发环境的搭建。
  一、下载Apache、MySql和PHP
  1、Apache的下载
  Apache服务器可以通过官方提供的镜像地址来下载windows的Apache安装程序,不过都是英文版的,而且下载速度太慢。我建议大家去华军、天空或者中关村下载最新版的安装程序,速度很快。
  2、MySQL的下载
  MySQL的官方网站是http://www.mysql.com。可以下载最新版本的MySQL,还是那句话,建议大家去华军、天空或者中关村下载。
  3、PHP的下载
  PHP的官方网站是http://www.php.net。可以下载最新的版本。
  二、在windows下配置PHP开发环境
  1、Apache、MySql和PHP的安装像安装windows其他软件一样,这里建议把Apache和PHP软件安装在D盘目录下,把MySQL软件安装在C盘,这样不需要做任何设置,MySQL就可以顺利启动运行。
  2、配置开发环境
  为了让windows可以执行PHP,需要做进一步的工作,按以下步骤搭建好环境:
  1)在PHP安装目录下,找到文件php5ts.dll,将其复制到C盘system32目录下。
  2)在PHP安装目录下,找到文件libmysql.dll,将其复制到C盘system32目录下。
  3)在PHP安装目录下,找到文件php.ini,将其复制到C:\windows下。这个文件是配置PHP的基本文件,如设置服务器根目录配置,用文本编辑器打开php.ini文件,找到"doc_root=",因为我把Apache默认安装在D盘根目录下,所以,修改这个配置项的值为:doc_root=d:\apache2\htdocs提示:用户根据自己安装Apache的路径,修改该配置项的值。
  4)在php.ini中找到“extension_dir ="./"”,这个配置项用来载入PHP的扩展模块,修改该配置项如下:extension_dir = d:\php\ext,(需要按自己的安装目录修改PHP的载入位置)。
  5)在php.ini中找到“;extension=php_mysql.dll”,把这项前面的分号去掉,表示使这个项生效。这个配置项用来使PHP支持MySQL,这里分号起注释作用。修改完PHP的配置文件php.ini后,保存退出该文件。
  6)进行Apache的配置。转到Apache的安装目录下的conf目录,用文本编辑器打开Apache的配置文件http.conf。在此文件中找到 dynamic shared object(DOS) Support,在LoadModule行的最后添加如下配置项:LoadModule php5_module d:/php/php5apache2.dll,(需要按自己的安装目录修改PHP的载入位置)。该项是通过Apache来载入PHP模块php5apache2.dll,即PHP以Apache的一个模块来运行。
  7)为了让Apache支持.php后缀的文件,在http.conf中找到AddType项,在最后添加如下配置项:AddType application/x-httpd-php.php。找到directoryIndex,在最后添加index.php。为了支持中文,找到AddDefaultCharset ISO-8859-1改为AddDefaultCharset GB2312。修改完后保存http.conf。即完成Apache的基本配置。
  注意:强烈建议对Apache配置文件http.conf进行修改时,一定遵守修改一点测试一点的原则,即每次修改完一项并保存http.conf后,要重启一下Apache,如果Apache正常启动,则可以进行后续修改,否则,说明本次修改有误,仔细检查并重新修改。
  三、在Linux下配置配置PHP开发环境
  1、MySQL的安装
  在MySQL官网下载MySQL的安装文件MySQL-server-4.0.20-0.i386.rpm,执行下面的命令完成MySQL的安装。
  rpm -ivh MySQL-server-4.0.20-0.i386.rpm
  在没有设置MySQL密码的情况下,通过以下命令测试MySQL是否安装成功。
  mysql -u root
  出现类似welcome to the mysql mointor. commands end with;or \g的字样,说明安装成功。
  2、Apache的安装
  从Apache的官网下载UNIX版本的压缩包,以httpd-2.0.52.tar.gz为例,假设资源包放在/usr/local/src下,进入这个目录后解压缩,命令如下:
  cd /usr/local/src
  tar -zxvf httpd-2.0.52.tar.gz
  解压缩后,进入目录httpd-2.0.52,执行以下命令:
  ./configure --prefix=/usr/local/apache2 --enable--module=so其中--prefix=/usr/local/apache2用来指定Apache的安装目录。接下来进行编译,执行一下命令完成安装。
  make
  mae install
  大型系统上PHP令人不爽的九大原因
  下面我会给出我的理由,为什么PHP不适合于比小型业余网站更大的网站。
  1. 对递归的不良支持
  递归是一种函数调用自身的机制。这是一种强大的特性可以把某些复杂的东西变得很简单。有一个使用递归的例子是快速排序(quicksort)。不幸的是,PHP并不擅长递归。Zeev,一个PHP开发人员,说道:“PHP 4.0(Zend)对密集数据使用了栈方式,而不是使用堆方式。也就是说它能容忍的递归函数的数量限制和其他语言比起来明显少。”见bug 1901。这是一个很不好的借口。每一个编程语言都应该提供良好的递归支持。
  2. 许多PHP模块都不是线程安全的
  在几年前,Apache发布了Web服务器的2.0版。这个版本支持多线程模式,在这个模式下,软件一个一部分可以同时运行多个。PHP的发明者说PHP的核心是线程安全的,但是非核心模块不一定是。但是十次有九次,你想要在PHP脚本中使用这种模块,但这又使你的脚本不能合适Apache的多线程模式。这也是为什么PHP小组不推荐在Apache 2 的多线程模式下运行PHP。不良的多线程模式支持使PHP常被认为是Apache 2依然不流行的原因之一。
  请阅读这篇讨论: Slashdot: Sites Rejecting Apache 2?.
  3. PHP 由于商业原因而不健全
  通过使用缓存,PHP的性能可以陡增500%[见基准测试]。那么为什么缓存没有被构建在PHP中呢?因为Zend——PHP的制造者,它在销售自己的Zend Accelerator,所以当然,他们不想抛弃自己的商业产品这块肥肉。
  但是有另一个可选择的: APC. (Zend后来推出Zend Optimizer,免费的加速器——译者)4. 没有命名空间
  设想某个人制作了一个PHP模块用来阅读文件。模块中一个函数叫做read。然后另一个人的模块可以读取网页的,同样包含一个函数read。然后我们就无法同时使用这两个模块了,因为PHP不知道你要用哪个函数。但是有一个很简单的解决方法,那就是命名空间。曾经有人建议PHP5加入这个特性,但不幸得是他没有这么做。现在,没有命名空间,每个函数都必须加上模块名作为前缀,来避免名称冲突。这导致了函数名恐怖得长,例如xsl_xsltprocessor_transform_to_XML让代码难于书写和理解。
  5. 不标准的日期格式字符
  很多程序员对 日期格式字符都很熟悉,它是从UNIX和C语言中来的。其他一些编程语言采用了这个标准,但是很奇怪的,PHP有它自己的一套完全不兼容的日期格式字符。在C中,“% j”表示一年中的当天,在PHP中他表示一个月中的当天。然而使事情更混乱的是:Smarty (一个很流行的PHP模版引擎)的 strftime 函数和 date_format 函数,却使用了C/UNIX的格式化字符。
  6. 混乱的许可证
  你也许认为PHP是免费的,所有的在手册中提到的PHP模块也是免费的。错了!例如,如果你想在PHP中生成PDF文件,你会在手册中发现两个模块:PDF 和 ClibPDF。但是这两个都是有商业许可证的。所以,你所使用的每个模块,你都要确保你同意他的许可证。
  PHP原版HTML编码器溢出问题的解决
  PHP5.1.6、4.4.4及以前版本中,在查找关于“htmlspecialchars() and htmlentities() ”相关字符编码的时候,当UTF-8编码被选择的时候可能会触发一个可能的缓冲器溢出。
  “While we were searching for a hole in htmlspecialchars() and htmlentities() to bypass the encoding of certain chars to exploit a possible eval() injection hole in another application we discovered that the implementation contains a possible bufferoverflow that can be triggered when the UTF-8 charset is selected.”
  最新发行的PHP5版本5.2已经修正了这个错误,但是该问题仍然在PHP4.4 版本中存在。全部信息可以在the full vulnerability 查看到。
 

上一篇:PHP基本语法入门指令分隔符和注释

下一篇:php中计算时间差的几种方法