搭建php开发环境,我们至少需要安装如下三个软件
1.php安装包:主要用来提供一个php的解析器,此解析器能够将php代码中的语法错误等检测出来,以便于程序开发人员做调试处理
可到其官方网站下载:http://www.php.net/
2.mysql数据库服务器:mysql数据库相当于一个数据仓库,是存储数据的地方。当php程序需要从数据库中获取数据、存取数据、修改数据、删除数据的时候会使用到mysql,可到其官方网站下载:http://www.mysql.com/downloads/mysql/
3.web服务器:主要用来提供web服务,并支持php文件的解析。通俗点说,就是帮助我们管理web应用,也就是我们的项目。如,当用户在浏览器中输入www.itcast.cn回车时,其实就是在向web服务器发送一个http请求,web服务器会接受此请求并进行处理,最后将处理的结果返还给浏览器显示,这个过程就是一次服务的过程。至于web服务器如何管理web应用,我们在讲到apache配置的时候还会详细的讲解。可到其官方网站下载:http://httpd.apache.org/download.cgi
php的安装
准备工作:到官方网站下载最新php版本的安装包 :http://www.php.net/downloads.php ,注意:一定要下载编译过的安装包
第一步:将下载的php压缩包解压到指定目录,如,F:\wamp\php即可
php目录结构分析:
ext:此文件夹中都是php的dll扩展文件,这些以dll为后缀名的扩展文件其实都是针对特定模块而设定的函数集,如,gd2.dll扩展库文件,此扩展库文件中囊括了所有与图像操作相关的函数,比如,创建缩略图、添加水印等功能都需要此扩展库的支持
php5apache2_2.dll:apache与php整合的API接口文件
php5ts.dll:核心的php内核动态链接库文件,如果没用此文件,php的解析器将无法使用,将此文件放到c:\windows\system32下,以便在系统启动时将此文件加载进来
php.ini-development:php的主配置文件,需要将其重命名为php.ini,作为php的全局配置文件,此全局配置文件在php启动时会读取,如果php作为apache的模块安装,则在apache服务器启动时会读取php.ini
第二步:复制php.ini-development文件,并将其副本重命名为php.ini:
php.ini文件是php在启动时自动读取的配置文件,它是一个文本文件,分为多个部分,每一部分包括相关的参数;
每一部分的名称位于最前面的方括号内,接着是名称对数字,且每一名称都独占一行;
如:
[PHP]
;short_open_tag = Off
分号位于每一行的开始,作为指定标记,这就使选择使用或不使用php的这些特性变得很方便,而无需通过删除改行来实现;
对某特性进行注释(即:添加分号),则改行将不会被编译执行;
每次修改完php.ini文件,必须重新启动apache服务器,以便新的设置生效
注意:php.ini是php的配置文件,用于加载各种函数库,设置错误级别和设置服务器的时间等
第三步:打开php.ini文件进行如下配置:
注意:php.ini配置文件中,";"为注释符号,要想使得php.ini中的某些配置生效,只需将其前面的分号去掉即可
1.设置php寻找动态链接扩展库的目录
找到extension_dir = "./",并将其修改为 extension_dir = "F:/wamp/php/ext"
2.设置当php启动时所加载的动态链接扩展库
在windows下安装完php和web服务器之后,可能想要安装一些扩展库来获得更多的功能,可以通过修改php.ini来选择当php启动时加载哪些扩展库
以下为当php启动时所加载的动态链接扩展库:
extension=php_gd2.dll //让php支持GD绘图函数库
extension=php_mysql.dll //让php支持mysql数据库,主要用于php操作mysql数据库,如果需要在php5中使用mysql,则需要在php.ini文件中启动mysql模块支持
extension=php_mbstring.dll //让php支持mbstring函数库,主要是字符串操作的函数库
3.设置错误级别
error_reporting = E_ALL & ~E_NOTICE //显示所有error错误信息,屏蔽notice警告信息
4.设置是否显示所有错误信息
display_errors=On //On-显示 Off-不显示
也可通过ini_set()函数在程序运行时来动态设置配置信息
如:ini_set("display_errors","On");
ini_set("display_errors","Off");
5.设置时区
date.timezone=PRC //PRC-中华人民共和国的简称,代表的是东八区的时间
也可以通过date_default_timezone_set();来设置时区,如:date_default_timezone_set("PRC");
注意:在php语言中,日期、时间函数依赖于服务器的地区设置,而php默认设置的格林威治时间(即采用的是零时区),所以,如果用户没有对php的时区进行设置,那么使用日期、时间函数获取的将是英国伦敦本地时间
6.文件上传相关配置选项
file_uploads = On //是否允许http文件上传
upload_tmp_dir = //文件上传时存放文件的临时目录,如果未指定,则php使用系统默认值
upload_max_filesize = 2M //允许上传文件的最大值
max_file_uploads = 20 //一个程序一次最多只能上传20个附件
注意:做了任何php.ini和httpd.conf方面的更改,都需要重启 Apache Web 服务以便使更改生效。
7.设置错误日志的存储位置
在php.ini中,关闭display_errors=On后把错误信息记录下来:
log_errrors=On
同时也要设置错误日志存放的目录,建议和apache放在一起:
error_log= F:\wamp\apache\logs\php_error.log
8.其它设置
post_max_size=8M
此指令控制在采用POST ()方法进行一次表单提交中php所能够接受的最大容量。要上传更大的文件,则该值必须大于upload_max_filesize的值。
如:upload_max_filesize=10MB,那么post_max_filesize的值必须要大于10MB
max_input_time=60
此指令以秒为单位对通过POST、GET、以及PUT方式接受数据时间进行限制
第四步:将php5apache2_2.dll、php5ts.dll文件放到c:\windows\system32下,以便在系统启动时就能将这些扩展加载进来
mysql数据库服务器的安装:
第一步:首先到mysql官网下载最新的mysql版本,http://www.mysql.com/downloads/mysql/
第二步:安装步骤
在安装完成后,将进入一个数据库配置向导界面:
在此我们选择详细配置(Detailed Configuration),点击 Next 按钮,接下来是服务器运行模式的选择:
分别是开发模式、服务器模式、单一数据库模式。我们建议选择开发模式,该模式下mysql服务器占用的内存空间最小,进行本地测试足够使用。
选择完毕服务器类型配置之后,点击 Next 按钮,进入数据库用途配置界面,建议选择通用多功能型(Multifunctional Database),图略。
选择完毕数据库用途之后,点击 Next 按钮,进入选择InnoDB数据文件存放位置配置界面,不用选择,默认为安装目录。
选择完InnoDB数据文件存放位置配置之后,点击 Next 按钮,进入mysql服务器最大并发连接数量配置界面,分别为默认连接数、最大连接数、自定义连接数,我们选择手工设定(Manual Setting),可以根据需要输入连接数目,用于个人开发测试,20足够了。
选择完并发连接数配置之后,点击 Next 按钮,进入访问端口配置界面,默认为“3306”,无需更改。
选择完访问端口配置之后,点击 Next 按钮,进入字符集配置界面:
在此可以选择第三项gbk,但目前国际化趋势比较明显,越来越多的配置默认为UTF8,所以也可以选择第二项。
选择完字符集配置之后,点击 Next 按钮,进入Windows服务配置界面:
如图所示选择,第一项表示MySQL作为windows的一个服务选项,服务名为MySQL,并将“Launch the MySQL Server automatically”选择项打勾选,表示MySQL随系统自动启动而无需手工启动。
选择完Windows服务配置之后,点击 Next 按钮,进入root(管理员)密码配置界面。请设定一个root密码并牢记(如root123)。如果是正式应用,应该将密码设置得足够复杂并定期修改。“Create An Anonymous Account”表示创建一个匿名访问账号,有一定安全隐患,不要选择。
选择完root密码配置之后,点击 Execute 按钮,MySQL开始按照选项进行配置,需要耐心等待配置完成。当出现“Service started successfully”时,说明配置完成,MySQL服务启动成功。
点击 Finish 按钮完成MySQL的整个配置过程。
测试mysql数据库是否安装成功
方法一:打开php.ini配置文件,找到 ;extension=php_mysql.dll 将其前面的分号去掉
测试代码:
<?php
$conn=mysql_connect("localhost","root","123");
if($conn){
echo "数据库连接正确";
}else{
echo "数据库连接失败";
}
?>
方法二:打开命令提示符
apache服务器的安装:
安装前,需要准备如下工作:
首先到apache的官方网站下载apache最新版本:http://httpd.apache.org/download.cgi
安装过程:
安装完成后,我们可以测试一下apache是否安装成功
首先看一下系统托盘中是否出现了监视apache服务的图标, ,小三角代表apache服务是处于启动状态,小圆点代表apache处于非启动状态。
然后,在浏览器中输入http://localhost或者http://127.0.0.1回车,如果能出现下图所示界面,就表示安装成功了
到此为止,apache的安装已经完成。
怎样启动和停止apache服务?
第一种方法:左键双击托盘图标
第二种方法:左键单击托盘图标
第三种方法:开始-》控制面板-》管理工具-》服务 中手动的开启或停止apache服务
apache目录结构的分析
bin:主要是一些与apache操作相关的命令,这些命令可通过命令提示符来执行
conf:主要用来存放apache服务器的配置文件【重点】
httpd.conf:apache的主配置文件,apache的大部分功能都是通过此配置文件来协调完成的,此配置文件在apache启动时被加载
extra/httpd-vhosts.conf:虚拟主机的配置文件
error:主要用来存放apache服务器的错误信息文件
htdocs:网站程序默认存放目录,注意:项目的存储位置不是固定不变的,只要apache web服务器能够解析的到就可以了
icons:主要存放apache的图标文件
logs:主要存放apache的日志文件
manual:主要用来存放apache帮助手册
modules:主要用来存放apache的各个功能模块的二进制文件 *.so
u apache与php的整合
apache服务器安装成功后,接下来对apache服务器进行配置,以便让apache服务器能够识别php文件
具体步骤如下:
第一步:配置apache服务器主要是在apache安装目录下的conf子目录中的httpd.conf文件中进行,找到该文件并用编辑器打开编辑
第二步:定位到 DocumentRoot "f:/wamp/apache/htdocs" 行,可以将其路径修改为合适的路径。例如:DocumentRoot "f:/wamp/www" 表示apache服务器的虚拟目录,也即,定义apache服务器的web存储路径
定位到 <Directory "f:/wamp/apache/htdocs"> 行,可以将其路径修改为合适的路径。例如:<Directory "f:/wamp/www"> 表示apache
服务器的虚拟目录,也即,定义apache服务器的web存储路径
第三步:找到#LoadModule vhost_alias_module modules/mod_vhost_alias.so,行,在下面添加如下指令:
#将php作为apache的一个扩展模块加载进来 加载php处理模块
LoadModule php5_module "c:/php/php5apache2_2.dll"
#让apache告诉php解析器应该对后缀名为.php的文件进行解析,即:让web服务器能够识别php文件
AddType application/x-httpd-php .php
#告诉apache在什么位置找到php.ini主配置文件
PHPIniDir "f:/wamp/php"
第四步:设置php的默认执行页面,如:www.baidu.com回车 会默认执行 www.baidu.com/index.php
<IfModule dir_module>
DirectoryIndex index.php index.html
</IfModule>
配置完成后,在f:/wamp/www目录下建立一个test.php文件,然后在浏览器地址栏中输入 http://localhost进行测试
注意:确保"www"目录存在,否则在重启apache时会报错
apache的运行原理
apache是基于模块化设计的,总体上看起来代码的可读性高于php,他的核心代码并不多,大部分都被分散到各个模块中,各个模块在系统启动的时候按需载入,php就是作为apache的一个模块被载入进来的,更加透彻的理解是阅读apache的源代码,即:main.c
LoadModule php5_module D:/php-5.3.5/php5apache2_2.dll
AddType application/x-httpd-php .php .phtml
上面两句配置文件就是告诉apache,只要url地址的后缀是 php phtml 都要使用 php5apache2_2.dll 模块来处理
如何修改网站的默认端口
打开conf/httpd.conf文件,找到 Listen 80 将其修改为其它端口即可
设置完成之后进行测试,如:http://127.0.0.1:81/test.php
注意:IIS服务器、迅雷的默认端口号为80,与apache的默认端口号相同。由于采用了相同的端口号80,因此在运行网页时就会发生冲突。
解决方法:
1.修改IIS服务器的端口号
2.修改apache的端口号。如果对apache的端口号进行了修改,那么在运行php项目时,输入的地址就会发生一些变化。如:若将apache的端口号修改为8080,那么在运行本机的php项目时,应输入 http://127.0.0.1:8080/
如何配置虚拟主机?
所谓虚拟主机,是指在一台机器上虚拟出多台web服务器。如,一家公司有多个不同域名的网站,他只需要购买一台物理服务器,通过配置虚拟主机实现为多个站点提供web服务,而访问者通过输入不同的域名来获取想要的web信息。
在虚拟主机的配置中,可以实现域名与指定项目的对接,在网页中输入指定的域名,即可访问对应的项目内容
1.基于主机名的虚拟主机
要想在只有一个ip地址的服务器上支持多个网站,我们可以通过设置虚拟主机的主机名来进行区分,这样就可以达到多个虚拟主机共享同一个IP地址的目的,同时也可以缓解IP不足的压力
基于主机名的虚拟主机的配置相对来说比较简单,因为只需要配置DNS服务器,将每个主机名映射到正确的IP地址,然后配置apache服务器,使其能够辨别不同的主机名即可
注意:在apache服务器配置中创建一个虚拟主机并不会自动在你的DNS中对主机名进行相应的更新,你必须自己的DNS中添加域名来指向你的IP地址,否则你的web站点将无法访问
在conf/httpd.conf配置文件中找到 #Include conf/extra/httpd-vhosts.conf 将其前面的#号去掉
在conf/extra/目录中找到httpd-vhosts.conf配置文件,打开进行如下配置:
<VirtualHost *:80> //定义虚拟服务器的标签,指定端口号
DocumentRoot "f:/wamp/www" //定义要访问的项目在apache服务器中的具体路径
ServerName www.test.com //指定虚拟主机的名称,即:与项目绑定的域名
#由于一些特殊需要,很多服务器希望能通过多个域名来访问。我们可以通过ServerAlias指令来指定多个域名,多个域名之间使用空格来区分
ServerAlias www.test1.comwww.test2.com //指定虚拟主机的别名
</VirtualHost> //定义虚拟服务器的结束标签
找到C:\WINDOWS\system32\drivers\etc\hosts文件,进行DNS域名注册
如: 127.0.0.1 www.test.com
127.0.0.1 www.test1.com //可通过虚拟主机名和别名同时访问同一网站
127.0.0.1 www.test2.com //可通过虚拟主机名和别名同时访问同一网站
在浏览器地址栏中输入www.test.com,测试一下是否能访问到f:/wamp/www目录下的程序文件文件
注意:当我们在浏览器中输入域名时,首先会到hosts文件中去查找域名对应的ip,如果找到的话,则访问当前hosts文件下的主机
注意:做了任何php.ini和httpd.conf方面的更改,都需要重启 Apache Web 服务以便使更改生效。