前言
在web开发这个领域对php 可是早有耳闻,大家对php赞不绝口,称赞有加,这让php火了一阵子,现在也依旧流行,所以我实在是忍不住想搞搞php了,以前以为学了jsp就没必要学php了,因为用j2ee这个平台也照样做web开发,但是,听到php这么多优点,这么火,所以打算学学php,而且据说有c和java基础的人学习起来特别快,因为php善于吸收其他语言的优点,如c的语法和指针(虽说没有真正意义上的指针),java的面向对象和异常处理等等,还有perl语言的优点。那我就要看看php的神秘面纱。纵观php的历史,从95年php的诞生,全称是“Personal Home Page”,到97年php发展到php3,全称是“Hypertext Preprocessor”,再到2000年php4的正式发布,再到2004年php5发布,这个时候的php面向对象的功能被强化,再到刚过去的2015年,在不久前的2015年6月php7发布,据说php7性能比php5.6提升了两倍,还提供全面一致的64位的支持。简单地了解了一下php的发展历史,可见php一直在不断地升级完善,所以非常值得研究一下,下面开始万里长征第一步php开发环境搭建,仿佛我看到了前面的曙光,哈哈。
资源准备
由于php是嵌套在html中的运行于服务器端的脚本语言, 运行于服务器端说明在前台网页的源代码中只能看到html,js,css等前端代码而看不到php的源码,因为php的源码被服务器解析了。那么和jsp开发一样需要一款服务器,jsp通常用的是tomcat服务器,那么php通常用的是什么服务器呢?php通常用的是Apache,当然还可以是IIS服务器,因为Apache服务器最大的优点是免费开源,所以更多的是选择apache服务器。php做web开发除了需要有自身的语音包支持和apache服务器外还需要有一个后台数据库,通常是用MySQL,也可以是sql server或者Oracle,而php做web开发最佳组合是PHP+MySQL+Apache,所以开发学习php web开发之前我们需要去网上下载一些资源,php web开发需要的资源如下:
(1) PHP语言包
官网下载地址:[http://windows.php.net/download#php-7.0](http://windows.php.net/download#php-7.0),在这里选择电脑处理器位数和相应的版本的php下载(最好是线程安全的)。这篇文章基于php5.6。
(2) Apache服务器
官网有很多种类和版本,这里的文章是基于Apache 2.4,去官网下载apache教程:
1、进入apache[下载官网](http://httpd.apache.org/download.cgi),如下图,点击红色部分
![这里写图片描述](https://box.kancloud.cn/2016-03-17_56ea5b3821d1b.jpg "")
2、进入第二个页面,选择红色部分
![这里写图片描述](https://box.kancloud.cn/2016-03-17_56ea5b3839420.jpg "")
3、进入第三个页面,选择相应VC版本的apache下载(注意红色部分)
![这里写图片描述](https://box.kancloud.cn/2016-03-17_56ea5b384d6f5.jpg "")
![这里写图片描述](https://box.kancloud.cn/2016-03-17_56ea5b388a1a3.jpg "")
下载好Apache后,下载安装MySQL.
(3) MySQL下载安装
可以去官网下载,这里我直接给上MySQL5.5的安装包,各个版本差异不大。[点击下载MySQL5.5]。([http://download.csdn.net/detail/ydxlt/9407169](http://download.csdn.net/detail/ydxlt/9407169))
MySQL的安装都好简单,但需要注意安装之前,先把之前安装的MySQL清理干净,否则可能会导致安装失败。如果之前的可以用,就不要在安装MySQL了。安装过程需要注意的选项如下(没有附图的代表选择默认就可以了,红色部分代表我们选择的部分):
选择第二个选择自定义安装后
![这里写图片描述](https://box.kancloud.cn/2016-03-17_56ea5b38b405e.jpg "")
![这里写图片描述](https://box.kancloud.cn/2016-03-17_56ea5b38de763.jpg "")
![这里写图片描述](https://box.kancloud.cn/2016-03-17_56ea5b3912b2c.jpg "")
用户名和密码需要记住,这里都设为root,以后我们需要这个用户名和密码连接数据库。
![这里写图片描述](https://box.kancloud.cn/2016-03-17_56ea5b3934280.jpg "")
![这里写图片描述](https://box.kancloud.cn/2016-03-17_56ea5b3952dca.jpg "")
![这里写图片描述](https://box.kancloud.cn/2016-03-17_56ea5b3974ec2.jpg "")
![这里写图片描述](https://box.kancloud.cn/2016-03-17_56ea5b399ab9a.jpg "")
MySQL安装好后,资源就准备完毕了,下面开始配置开发环境。
Apache安装配置
第一步: 找到下载的apache,解压放到一个目录下面,我这里选择的目录是D盘的AMP目录:
![这里写图片描述](https://box.kancloud.cn/2016-03-17_56ea5b39bfe1e.jpg "")
第二步:配置和安装apache服务,需要先修改配置文件的错误,因为apache解压版,默认apache是安装在c盘的Apache。可以通过命令行httpd -t指令检测配置文件是否有语法错误,如下:
![这里写图片描述](https://box.kancloud.cn/2016-03-17_56ea5b39d72fa.jpg "")
这里的意思是说apache配置文件httpd.conf配置文件语法有错误,那我们就修改过来呗。打开apache解压目录conf文件夹下的httpd.conf文件:
![这里写图片描述](https://box.kancloud.cn/2016-03-17_56ea5b39ee281.jpg "")
打开这个配置文件:
![这里写图片描述](https://box.kancloud.cn/2016-03-17_56ea5b3a14692.jpg "")
这里我用得是notopad++,这款编辑器不错推荐一下,还有sublime text编辑器也不错。这里点击全部替换。
替换后再打开cmd命令行,输入http -t再检查一下语法,如下:
![这里写图片描述](https://box.kancloud.cn/2016-03-17_56ea5b3a364a8.jpg "")
可以看到我们替换后,配置文件就有语法错误了,下面开始安装apache服务。
第三步:安装apache服务,用管理员身份打开cmd,进入apache的bin目录下执行`httpd -k install`命令安装apache服务:
![这里写图片描述](https://box.kancloud.cn/2016-03-17_56ea5b3a47f27.jpg "")
接下来启动apache服务,测试一下是否安装成功,打开apache bin目录下的ApacheMonitor.exe(如果打开提示缺少dll文件,那么就需要安装上面说的VC了,安装后就可以打开这个monitor了),打开后如下:
![这里写图片描述](https://box.kancloud.cn/2016-03-17_56ea5b3a56fac.jpg "")
OK,在浏览器中输入localhost回车,看到如下图说明apache安装成功了。
![这里写图片描述](https://box.kancloud.cn/2016-03-17_56ea5b3a821fc.jpg "")
其实浏览器显示的it works是apache默认站点htdocs(其实就位于apache目录下的htdocs文件夹)下的默认主页index.html的内容。自此,apache安装成功,接下来需要配置php,让apache和php一起工作(将php作为apache的一个模块)。
第四步:配置php模块到apache服务器,以使得apache可以解析php。
先在apache 的htdocs目录建一个php文件,这里叫index.php,在这个文件中写入如下内容:
~~~
<?php
echo "hello php world!";
?>
~~~
启动apache服务,在浏览器中输入localhost/index.php可以看到:
![这里写图片描述](https://box.kancloud.cn/2016-03-17_56ea5b3a945b1.jpg "")
原封不动地显示了php的内容,并没有解析php,那么我们在httpd.conf中做如下配置:
![这里写图片描述](https://box.kancloud.cn/2016-03-17_56ea5b3aa6de3.jpg "")
完了后重启apache服务器(修改了配置文件都要重启),再次在浏览器中访问index.php,可以看到php被解析了:
![这里写图片描述](https://box.kancloud.cn/2016-03-17_56ea5b3ac7d92.jpg "")
说明:apache配置php成功!接下来,我们需要配置做一些php的相关配置及将MySQL配置到php中。
php配置(时区和MySQL)
(1) 配置php时区
打开php解压目录,可以看到:
![这里写图片描述](https://box.kancloud.cn/2016-03-17_56ea5b3adabd1.jpg "")
复制开发阶段的文件到当前目录(也可以直接修改后缀),改名为php.ini,打开这个php.int,配置时区:
![这里写图片描述](https://box.kancloud.cn/2016-03-17_56ea5b3af3118.jpg "")
PRC代表中华人民共和国,即这里是中国时区,测试时区是否配置成功
在index.php中写如下语句:
~~~
<?php
echo "hello php world!<br>";
echo "currentTime:" . date("Y:m:d H:i:s") ."<br>";
?>
~~~
打开浏览器访问localhost/index.php:
![这里写图片描述](https://box.kancloud.cn/2016-03-17_56ea5b3b1ad9c.jpg "")
这表明,时区配置成功,如果没有做上面的时区配置,那么将会显示UTC(全国统一时间),并显示警告。接下来要配置mysql了。
(2) 配置mysql
配置之前我们先在index.php中添加如下代码(前面的root是你mysql的账号,后面的root是你mysql的密码,自己改过来):
~~~
$link = mysql_connect("localhost","root","root");
if($link){
echo "连接失败!";
}else{
echo "连接成功!";
}
~~~
访问index.php:
![这里写图片描述](https://box.kancloud.cn/2016-03-17_56ea5b3b294ff.jpg "")
发现我们调用了没有定义的函数,那我们需要将mysql模块添加到php中。
开始配置:
1、打开php.ini文件,查找extension_dir关键字
可以看到这行语句:
![这里写图片描述](https://box.kancloud.cn/2016-03-17_56ea5b3b3aa54.jpg "")
去掉前面的注释并将ext文件路径改成我们自己的ext路径,即修改为:
![这里写图片描述](https://box.kancloud.cn/2016-03-17_56ea5b3b4c628.jpg "")
2、在php.int中继续查找php_mysql关键字
![这里写图片描述](https://box.kancloud.cn/2016-03-17_56ea5b3b61fe5.jpg "")
重新启动apache,再次访问index.php:
![这里写图片描述](https://box.kancloud.cn/2016-03-17_56ea5b3b82aaa.jpg "")
至此php web开发环境就搭建好了。
总结:
php web开发环境搭建的整个过程主要是为了完成三个任务,即:
1. 配置apache以运行php,即输入第一行语句;
1. 配置时区,即输入第二行语句;
1. 配置mysql,即输入第三行的结果。
所以我们在测试页面index.php中写了如下测试代码:
~~~
<?php
echo "hello php world!<br>"; // 能解析输出hello php world!说明php模块成功添加到了apache中了
echo "currentTime:" . date("Y:m:d H:i:s") ."<br>"; // 能输出我们现在的时间,说明时区改过来了
$link = mysqli_connect("localhost","root","28b21c1cfd"); // mysql连接成功,说明mysql模块成功添加到了php中了
if($link){
echo "连接成功!";
}else{
echo "连接失败!";
}
?>
~~~
这些都能成功输出说明我们的环境搭建完成了,这里说明一下,apache安装后有个默认的站点是安装目录的htdocs文件夹,这个我们也可以修改,还可以配置多站点及访问权限和分布式权限控制,这个将在以后的文章中会记录,其实也很简单。