本教程主要为php的面试及入门考虑,内容比较简单,高手勿喷。第一篇咱们先来学习一下Wamp环境的安装,Wamp 便是windows + apache + mysql + php的缩写,本文介绍最新版本的安装。其实在windows开发环境中有套装的集成环境wamp能够直接使用,可是对于咱们学习一门语言,也要学会它的环境,所以配置安装也是很重要的。对于production release,咱们最重要的是学会Lamp环境,便是Linux环境下的安装。下一篇教程咱们将会介绍。由于这个对于一个phper是必须的。好了,言归正传,让咱们开始学习吧~
安装 WAMP 环境
1 apache 安装
1.1 目录
咱们先从官网上下载http://www.apachehaus.com/cgi-bin/download.plx?dli=hpXRzMVVBFjTEN2aSd0Y0okVOpkVFVVcNdEbuJVQphp
apache Haus这个是新的名字,其实就是apache2.4html
下载完成后解压到你须要的目录便可。mysql

bin :apache的二进制可执行文件,用来操做apache。其中主要执行文件httpd.exec++
conf :配置文件目录,主配置文件httpd.conf,另外extra目录中的httpd-vhosts.conf能够配置虚拟主机面试
htdocs: apache默认的根目录sql
include: apache包含的C库数据库
logs:记录apache的日志包括安装日志,访问日志,错误日志等apache
modules:apache的模块windows
1.2 注册服务
非安装版的apache咱们须要手动来注册httpd服务。数组
用如下命令安装一个名字为MyServiceName的httpd服务,-n名字,默认服务名称为apache2.4
httpd.exe -k install -n "MyServiceName"
移除httpd服务能够用:
httpd.exe -k uninstall
启动httpd服务
httpd.exe -k start -n "MyServiceName"
中止httpd服务
httpd.exe -k stop -n "MyServiceName"
在windows注册服务成功后,咱们能够在服务列表中看到:

一样,咱们能够这样启动服务

中止服务

1.3 添加主机域名
因为没有DNS,咱们在测试环境须要手动添加须要的主机名,修改文件C:\Windows\System32\drivers\etc\hosts
127.0.0.1 localhost zf2-tutorial.localhost
这样咱们就添加了localhost 和 zf2-tutorial.localhost两个域名,同时会映射到咱们的本地地址,加空格能够再添加多个。
添加完后咱们来测试一下,看到这个页面说明你apache已经安装成功。

1.4 添加虚拟主机
一般来讲,在windows的apache环境添加站点,不介意直接修改主配置文件,并且主配置文件修改只能对应一个站点。
因此咱们能够经过添加虚拟主机的方法来添加多个站点。修改conf\extra\httpd-vhosts.conf文件
添加以下代码
<VirtualHost *:80> #设置站点方位端口,默认为80端口
DocumentRoot "E:\ZendSkeletonApplication-master\ZendSkeletonApplication-master\public" #网站根目录
SetEnv APPLICATION_ENV "development" #设置应用环境变量
ServerName zf2-tutorial.localhost #设置服务器名,须要和hosts文件中对应
<Directory "E:\ZendSkeletonApplication-master\ZendSkeletonApplication-master\public"> #目录权限设置
DirectoryIndex index.php #设置默认入口文件
AllowOverride All
Require all granted #apche中新的配置限制ip访问目录的方法,这里表示容许任何ip访问这个目录
</Directory>
</VirtualHost>
AllowOverride 参数说明
一般利用 Apache的rewrite模块对 URL 进行重写的时候, rewrite规则会写在 .htaccess 文件里。但要使 apache 可以正常的读取.htaccess 文件的内容,就必须对.htaccess 所在目录进行配置。从安全性考虑,根目录的AllowOverride属性通常都配置成不容许任何Override,即:
< Directory /> AllowOverride None < /Directory> |
在 AllowOverride 设置为 None 时, .htaccess 文件将被彻底忽略。当此指令设置为 All 时,全部具备 “.htaccess” 做用域的指令都容许出如今 .htaccess 文件中。
而对于 URL rewrite 来讲,至少须要把目录设置为:
< Directory /myblogroot/> AllowOverride FileInfo < /Directory> |
而对于 URL rewrite 来讲,至少须要把目录设置为:
AuthConfig
容许使用与认证受权相关的指令(AuthDBMGroupFile, AuthDBMUserFile, AuthGroupFile, AuthName, AuthType, AuthUserFile, Require, 等)。
FileInfo
容许使用控制文档类型的指令(DefaultType, ErrorDocument, ForceType, LanguagePriority, SetHandler, SetInputFilter, SetOutputFilter, mod_mime中的 Add* 和 Remove* 指令等等)、控制文档元数据的指令(Header, RequestHeader, SetEnvIf, SetEnvIfNoCase, BrowserMatch, CookieExpires, CookieDomain, CookieStyle, CookieTracking, CookieName)、mod_rewrite中的指令(RewriteEngine, RewriteOptions, RewriteBase, RewriteCond, RewriteRule)和mod_actions中的Action指令。
Indexes
容许使用控制目录索引的指令(AddDescription, AddIcon, AddIconByEncoding, AddIconByType, DefaultIcon, DirectoryIndex, FancyIndexing, HeaderName, IndexIgnore, IndexOptions, ReadmeName, 等)。
Limit
容许使用控制主机访问的指令(Allow, Deny, Order)。
Options[=Option,...]
容许使用控制指定目录功能的指令(Options和XBitHack)。能够在等号后面附加一个逗号分隔的(无空格的)Options选项列表,用来控制容许Options指令使用哪些选项。
require 参数说明
- ################################################
- 2.2上的配置
- Order deny,allow
- Deny from all
-
- 2.4上的配置
- Require all denied
-
- ################################################
- 2.2上的配置
- Order allow,deny
- Allow from all
-
- 2.4上的配置
- Require all granted
-
- #################################################
Order allow,deny
能够理解为先容许,后排除,
那么下一句要写deny from ip..来拒绝这些ip访问
Order deny,allow
能够理解为先排除,后容许
那么下一句要写allow from ip..来限定这几个ip访问
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
下面给出了几个例子在2.4版本上的配置
1. 仅容许IP为192.168.1.1的主机访问
- <RequireAll>
- require all granted
- require ip 192.168.1.1
- </RequireAll>
2.仅容许192.168.0.0/24网络的主机访问
- <RequireAll>
- require all granted
- require ip 192.168.1.0/24
- </RequireAll>
3.禁止192.168.1.2的主机访问,其余的都容许访问,
- <RequireAll>
- require all granted
- require not ip 192.168.1.2
- </RequireAll>
4.容许全部访问,
- require all granted
-
- 注,这个能够不用加容器 ......
- 直接,写在 .....里面就能够了
-
5.拒绝全部访问,
- require all denied
2 php 安装
目前windows最新php版本为PHP 5.6
http://windows.php.net/downloads/releases/php-5.6.5-Win32-VC11-x86.zip
下载完成后解压,主目录下php.ini-development开发用的配置文件重名为php.ini
修改扩展路径
extension_dir = "D:\software\php\ext"
把 extension=php_mysql.dll 前的;去掉
加载相应的模块去掉前面的;便可
修改时区,国内用PRC
date.timezone = UTC
修改apache主配置文件httpd.conf
在loadModule列表后加上
LoadModule php5_module "D:/software/php/php5apache2_4.dll"
PHPIniDir "D:/software/php/php.ini"
在IfModule mime_module标签内加入apache对php文件类型的支持
# Add Type for php
AddType application/x-httpd-php .php .html .htm
若是须要有rewrite模块的能够打开注释(用于.htacess文件中开启对url重写的功能)
LoadModule rewrite_module modules/mod_rewrite.so
到这里apache和php的集成已经完成了,
下面加入在根目录下添加一个查看配置的测试文件

Success!
3 mysql安装
windows下mySQL安装仍是比较简单的,可用“轻松+愉快”来形容。
首先咱们去mysql官网下载社区版本http://dev.mysql.com/downloads/file.php?id=455349
-选择install

-确认licence

-选择安装类型 选择自定义,去掉那些庞大无用,好比workbench,建议本身安装轻量级的客户端如sqlyog

-选择相应的开发组件,有odbc,jdbc,c++ connector,.net connector等

-正在安装

-安装完成配置参数 默认端口号3360

-配置root用户和新增用户


-配置服务名称和运行帐户

安装完成后咱们启动mysql服务/关闭mysql服务 默认安装完已经启动了

启动成功说明安装完成,建议接着安装数据库客户端,好比sqlyog,我一直用这个,很好用。
而后能够用mysql command line client 登陆数据库(开始->菜单),也可进入命令行mysql目录下操做

进入命令行,咱们先建立一个database
create database test;
使用这个数据库
use test;
建立一张数据表
create table person(
id int AUTO_INCREMENT,
name varchar(255) not null,
primary key(id)
);
插入数据
intert into person values(1, 'david');
最后咱们加入测试文件
<?php
//连接mysql
$link=mysql_connect("localhost","root","") or die('FAILD TO CONNECT!');
//选择数据库库
mysql_select_db("test");
//执行sql
$result = mysql_query("select id,name from person");
print"<table border=1>";
print"<tr><th>ID</th><th>Name</th></tr>";
//取出行数组
while($t_result = mysql_fetch_array($result)){
$tr = "<tr><td>".$t_result["id"]."</td><td>".$t_result["name"]."</td></tr>";
print $tr;
}
print"</table>";
?>
连接成功!数据显示正常!

4 参考资料
http://blog.sina.com.cn/s/blog_9082c1e501018v5x.html
http://www.chinaz.com/server/2010/0129/105397.shtml
http://httpd.apache.org/docs/current/platform/windows.html#down
5 总结
本文件简单介绍了WAMP环境的安装,此环境主要用于开发和测试,生产环境最好在Linux上部署,若是用Server的话也介意使用IIS,不要用Windows上的apache。后面咱们将会介绍Linux上的LAMP环境安装,同时咱们要深刻了解配置文件。关于MySQL的配置也会在后续的文章中详述!