01.WAMP搭建 [Win7+Apache2.4+MySQL5.7+PHP7

WAMP搭建[Win7+Apache2.4+MySQL5.7+PHP7


一、背景

将电脑光驱位拆换成固态硬盘(120g),专门装了一个系统用于工作。之前一直使用PHPstudy和WAMP这种集成环境,但这类集成环境的MySQL版本最高的都是5.5的,PHP版本最高是5.6的,Apache最新版本是2.2。目前Apache最新版本是2.4.x,PHP最新版本是7.0.x,MySQL最新版本是5.7.x,掌握WAMP|LAMP环境的搭建是非常重要的,虽然工作中自行开发的时候大多数都是使用集成环境开发的,但是集成环境的本质也是将各个套件单独组装在一起的。在整个搭建过程中,遇到了许多问题,在网上也没有找到完整的将WAMP搭建过程写出来的,因此将自己搭建的过程写出来。

使用WAMP集成环境开发的优点是:1).使用方便快捷;2).有多种PHP版本可切换开发。但是缺点也是很明显的,你不知道WAMP集成配合使用的本质。在本博文中,将从下载WAMP组件开始说到WAMP组件[Apache+MySQL+PHP]可以配合使用。具体各个组件配置文件是如何的,将不在本文中提及。若文中有表达不准确之处,欢迎拍砖给我指正,也请多多见谅!

二、WAMP包括什么?如何从官网下载WAMP组件

1.WAMP包括什么?

一图顶千文,客官有图有真相☟ 01.WAMP搭建 [Win7+Apache2.4+MySQL5.7+PHP7

由图可得:用户访问B/S程序的一个流程是☛在Windows操作系统下,装有(Apache|IIS|Nigix)服务器,用户直接访问服务器。服务器会根据访问的程序选择加载所需要的语言解析引擎(php.exe/JDK/Python...),去数据库(MySQL|SQL Server |oracle...)动态获取数据后解析为客户端(浏览器)可以识别的方式(html)返回给客户端,由客户端展现。

WAMP环境包括了:操作系统(Windows系统)+服务器(Apache)+数据库(MySQL)+语言解析模块(PHP解析引擎)

2.如何从官网下载所需要的各个组件?

W:Windows系统

1)百度搜索MSDN,该网站上可以下载微软的所有正版产品。下载操作系统,自行安装。
01.WAMP搭建 [Win7+Apache2.4+MySQL5.7+PHP7
2).版本介绍
① Windows 7 Enterprise (x64) -- Win7 64位 企业版
② Windows 7 Enterprise with Service Pack 1 (x64) -- Win7 64位 企业版【附带各种服务包】
③ Windows 7 Home Basic (x86) -- Win7 32位 家庭基础版
④ Windows 7 Home Premium (x64) -- Win7 64位 家庭付费版
⑤ Windows 7 Professional -- Win7专业版
【需要什么版本自己下载即可】

A:Apache服务器

1).百度搜索进入Apache服务器官网,点击跳转Apache服务器官网下载中心
2).注意点
① 官网已经不再提供Apache的msi镜像安装文件,只提供源码编译解析文件
② 注意自己下载的Apache位数是什么【X86还是X64的,下载的PHP版本需要和此处对应】
3).版本介绍
① Apache 2.4.x VC14 -- 后面的VC14是php.exe程序运行的时候所需要Windows VC++ 运行库所需要的版本【后面与PHP的VC14即可】
【需要什么版本自己下载即可】

M:MySQL数据库

1).百度搜索进入MySQL数据库官网,点击跳转Apache服务器官网下载中心
2).注意:
① 官网下载社区版本,数据库服务;
【企业版是需要钱的,社区版已经足以我们开发等了,如果喜欢用MySQL官方客户端MySQL Watch 的可以自己在官网下载】

01.WAMP搭建 [Win7+Apache2.4+MySQL5.7+PHP7

② 如果在安装mysql的时候提示VCxxx.dll缺失,可以安装一个DLL-files-fixer,可以自动帮你解决掉这些dll文件缺失问题
3).版本介绍
① 现在官网上提供的也是源码编译包,建议上百度下载安装镜像

P:PHP语言解析引擎

1).百度搜索进入PHP解析引擎官网,点击跳转PHP解析引擎官网下载中心
2)注意:
① 如果自己去官网下载PHP7的时候要下载VC14 x86 Thread Safe,不要下载Non Thread Safe 版本的,不然里面是找不到php7apache2_4.dll这个文件的
② 注意下载的Apache和PHP的版本位数要对应【如果是x64的系统就都下载x64,如果是x86的就都下载x86==>我下载的是x64的】
③ VC6支持Apache;VC9支持IIS用在Apache也没有问题
④ ZIP版本是源码解压包;Debug Pack对使用者而言是毫无意义的,是给C++程序员开发或修改php扩展用的
3).版本介绍
① non-thread-safe -- 非线程安全版本 -- 与IIS搭配
②thread-safe -- 线程安全版本 -- 与Apache搭配

01.WAMP搭建 [Win7+Apache2.4+MySQL5.7+PHP7

将上述

1) Apache源码目录解压到:C:/WAMP/Apache24文件夹中

【注意:1).我将htdocs网站根目录改名为WWW文件夹;2).F盘有WAMP目录】

F盘WAMP目录结构如下:

01.WAMP搭建 [Win7+Apache2.4+MySQL5.7+PHP7

2) MySQL安装到:C:/WAMP/MySQL Server 5.7
3) php源码目录解压到:C:/WAMP/php7.0.11
4) 将' ;C:\Self\WAMP\MySQL Server 5.7\bin;C:\Self\WAMP\Apache24\bin;C:\Self\WAMP\php7.0.11;' 追加到环境变量Path路径中
【注意:1).是追加,不是修改;2).注意分号要英文状态】

三、如何将WAMP各个组件加入系统服务?

按住:win+R键-->输入:service.msc打开系统服务列表
01.WAMP搭建 [Win7+Apache2.4+MySQL5.7+PHP7
此时可以看到,即使我们解压了各个组件,也安装了mysql server服务,但是在本地服务列表中依然找不到我们的Apache+mysql服务
<br

1.将MySQL服务加入系统服务

1).mysql初始化配置文件

01.WAMP搭建 [Win7+Apache2.4+MySQL5.7+PHP7

打开my.ini文件,编辑即可。具体配置自行百度,但是此时一定要配置这两个地方

01.WAMP搭建 [Win7+Apache2.4+MySQL5.7+PHP7

2).将MySQL服务加入系统服务

按住:win+R键-->输入:cmd,使用管理员打开cmd.exe窗口

01.WAMP搭建 [Win7+Apache2.4+MySQL5.7+PHP7

【删除MySQL服务 mysqld –remove MySQL服务名】

3).开启MySQL服务

01.WAMP搭建 [Win7+Apache2.4+MySQL5.7+PHP7

4).注意:

①. mysql 默认root用户初始密码:mysql -h localhost -uroot -p 即可登录
②. 修改root用户密码:

mysql> use mysql;
mysql> update user set Password=password('newpassword') where User='root';
mysql> flush privileges;

2.修改PHP配置文件

1).php初始化配置文件

01.WAMP搭建 [Win7+Apache2.4+MySQL5.7+PHP7
打开php.ini文件,编辑即可。具体配置自行百度,但是此时一定要配置这两个地方
01.WAMP搭建 [Win7+Apache2.4+MySQL5.7+PHP7

2).测试 执行以下程序,运行得到结果,表示成功:

01.WAMP搭建 [Win7+Apache2.4+MySQL5.7+PHP7

3). 需要打开的扩展程序【搜索扩展名,去掉前面的";",重启服务器即可】

打开mysqli支持:extension=php_mysqli.dll
打开pdo方式mysql连接支持:extension=php_pdo_mysql.dll
打开curl请求方式支持:extension=php_curl.dll
开启mongodb支持:[PHP7.0废弃了mongo扩展,却支持mongodb扩展]
在http://pecl.php.net/package/mongodb下载PHP7.0的支持
【如果PHP下载的线程安全版本,此处也要下载线程安全版本】
在php.ini配置文件中加入extension=php_mongodb.dll。
运行phpinfo(),出现这个扩展即可

01.WAMP搭建 [Win7+Apache2.4+MySQL5.7+PHP7

3.将Apache服务加入系统服务

1).Apache初始化配置文件httpd.conf

01.WAMP搭建 [Win7+Apache2.4+MySQL5.7+PHP7
需要修改的配置文件有:
① httpd.conf;
② extra文件夹中:httpd-ahssl.conf
之所以需要修改如此多的配置文件是因为:
① 网站根目录我没有放在Apache24安装目录下
② 网站根目录我更名为WWW

(1). 打开httpd.conf文件,编辑:

01.WAMP搭建 [Win7+Apache2.4+MySQL5.7+PHP7
搜索本文件httpd.conf中含有htdocs的“${SRVROOT}/htdocs”全部修改为"$ {HTDOCS}"

(2)整合Apache和PHP模块

01.WAMP搭建 [Win7+Apache2.4+MySQL5.7+PHP7

(3). 后续的文件中请逐一打开,搜索"htdocs",凡是“${SRVROOT}/htdocs”的全部修改为"${HTDOCS}"

2).将Apache服务加入系统服务

按住:win+R键-->输入:cmd,使用管理员打开cmd.exe窗口

01.WAMP搭建 [Win7+Apache2.4+MySQL5.7+PHP7

【如果已经成功安装了服务了,可以使用httpd.exe -t命令检测配置文件是否有错】

3). 删除Apache服务

01.WAMP搭建 [Win7+Apache2.4+MySQL5.7+PHP7

4).开启Apache服务

01.WAMP搭建 [Win7+Apache2.4+MySQL5.7+PHP7

[ 若将bin目录加入环境变量中:httpd -k start(开启)|stop(停止)|restart(重启) -n (服务名)Apache24 ]

6.虚拟站点的配置

虚拟站点工作原理:

1). 打开浏览器输入www.wangjia.com
2). 系统会首选到本机的hosts文件中寻找对应域名的IP地址
3). 发现域名的IP是127.0.0.1【本机服务器IP地址】
4). 去请求本地服务器(Apache|IIS)
5). Apache加载httpd.conf文件,载入vhosts.conf文件,在文件中找到对应的目录,从而实现整个过程

Apache虚拟站点配置:

① 打开编辑httpd.conf,搜索httpd-vhosts.conf
01.WAMP搭建 [Win7+Apache2.4+MySQL5.7+PHP7

② 将Apache安装路径\conf\extra\httpd-vhosts.conf复制一份改名为vhosts.conf,在文末修改如下图:
01.WAMP搭建 [Win7+Apache2.4+MySQL5.7+PHP7

③ 打开编辑C:\Windows\System32\drivers\etc\hosts文件,在文末加上:127.0.0.1 ServerName
01.WAMP搭建 [Win7+Apache2.4+MySQL5.7+PHP7

④ 重启Apache服务器

This document was created with MarkdownPad, the Markdown editor for Windows (http://markdownpad.com)

*:first-child {
margin-top: 0 !important;
}

body>*:last-child {
margin-bottom: 0 !important;
}

/* BLOCKS
=============================================================================*/

p, blockquote, ul, ol, dl, table, pre {
margin: 15px 0;
}

/* HEADERS
=============================================================================*/

h1, h2, h3, h4, h5, h6 {
margin: 20px 0 10px;
padding: 0;
font-weight: bold;
-webkit-font-smoothing: antialiased;
}

h1 tt, h1 code, h2 tt, h2 code, h3 tt, h3 code, h4 tt, h4 code, h5 tt, h5 code, h6 tt, h6 code {
font-size: inherit;
}

h1 {
font-size: 28px;
color: #000;
}

h2 {
font-size: 24px;
border-bottom: 1px solid #ccc;
color: #000;
}

h3 {
font-size: 18px;
}

h4 {
font-size: 16px;
}

h5 {
font-size: 14px;
}

h6 {
color: #777;
font-size: 14px;
}

body>h2:first-child, body>h1:first-child, body>h1:first-child+h2, body>h3:first-child, body>h4:first-child, body>h5:first-child, body>h6:first-child {
margin-top: 0;
padding-top: 0;
}

a:first-child h1, a:first-child h2, a:first-child h3, a:first-child h4, a:first-child h5, a:first-child h6 {
margin-top: 0;
padding-top: 0;
}

h1+p, h2+p, h3+p, h4+p, h5+p, h6+p {
margin-top: 10px;
}

/* LINKS
=============================================================================*/

a {
color: #4183C4;
text-decoration: none;
}

a:hover {
text-decoration: underline;
}

/* LISTS
=============================================================================*/

ul, ol {
padding-left: 30px;
}

ul li > :first-child,
ol li > :first-child,
ul li ul:first-of-type,
ol li ol:first-of-type,
ul li ol:first-of-type,
ol li ul:first-of-type {
margin-top: 0px;
}

ul ul, ul ol, ol ol, ol ul {
margin-bottom: 0;
}

dl {
padding: 0;
}

dl dt {
font-size: 14px;
font-weight: bold;
font-style: italic;
padding: 0;
margin: 15px 0 5px;
}

dl dt:first-child {
padding: 0;
}

dl dt>:first-child {
margin-top: 0px;
}

dl dt>:last-child {
margin-bottom: 0px;
}

dl dd {
margin: 0 0 15px;
padding: 0 15px;
}

dl dd>:first-child {
margin-top: 0px;
}

dl dd>:last-child {
margin-bottom: 0px;
}

/* CODE
=============================================================================*/

pre, code, tt {
font-size: 12px;
font-family: Consolas, "Liberation Mono", Courier, monospace;
}

code, tt {
margin: 0 0px;
padding: 0px 0px;
white-space: nowrap;
border: 1px solid #eaeaea;
background-color: #f8f8f8;
border-radius: 3px;
}

pre>code {
margin: 0;
padding: 0;
white-space: pre;
border: none;
background: transparent;
}

pre {
background-color: #f8f8f8;
border: 1px solid #ccc;
font-size: 13px;
line-height: 19px;
overflow: auto;
padding: 6px 10px;
border-radius: 3px;
}

pre code, pre tt {
background-color: transparent;
border: none;
}

kbd {
-moz-border-bottom-colors: none;
-moz-border-left-colors: none;
-moz-border-right-colors: none;
-moz-border-top-colors: none;
background-color: #DDDDDD;
background-image: linear-gradient(#F1F1F1, #DDDDDD);
background-repeat: repeat-x;
border-color: #DDDDDD #CCCCCC #CCCCCC #DDDDDD;
border-image: none;
border-radius: 2px 2px 2px 2px;
border-style: solid;
border-width: 1px;
font-family: "Helvetica Neue",Helvetica,Arial,sans-serif;
line-height: 10px;
padding: 1px 4px;
}

/* QUOTES
=============================================================================*/

blockquote {
border-left: 4px solid #DDD;
padding: 0 15px;
color: #777;
}

blockquote>:first-child {
margin-top: 0px;
}

blockquote>:last-child {
margin-bottom: 0px;
}

/* HORIZONTAL RULES
=============================================================================*/

hr {
clear: both;
margin: 15px 0;
height: 0px;
overflow: hidden;
border: none;
background: transparent;
border-bottom: 4px solid #ddd;
padding: 0;
}

/* TABLES
=============================================================================*/

table th {
font-weight: bold;
}

table th, table td {
border: 1px solid #ccc;
padding: 6px 13px;
}

table tr {
border-top: 1px solid #ccc;
background-color: #fff;
}

table tr:nth-child(2n) {
background-color: #f8f8f8;
}

/* IMAGES
=============================================================================*/

img {
max-width: 100%
}
-->

上一篇:Qt学习:线程间共享数据(使用信号槽传递数据,必须提前使用qRegisterMetaType来注册参数的类型)


下一篇:树莓派(raspberry)启用root账户 分类: 服务器搭建 Raspberry Pi 2015-04-12 18:45 95人阅读 评论(0) 收藏