• 欢迎访问马东东的博客,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

Apache+PHP+MySQL环境搭建和配置

专项技术 马 东东 2年前 (2017-12-24) 811次浏览 3个评论 扫描二维码
文章目录[隐藏]

引言

Apache+PHP+MySQL的组合,简称AMP, 是一个网站开发黄金组合。

Apache: Web服务器软件,它快速、可靠并且可通过简单的API扩充,将Perl/Python/Php等解释器编译到服务器中。PHP:是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利于学习,跨平台,使用广泛,PHP可以编译成具有与许多数据库相连接的函数,主要适用于Web开发领域。
MySQL: MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。与Oracle、DB2、SQL Server 等数据库类似。

LAMP:Linux操作系统下通过Apache和MySQL支持PHP语言的一种网络运行环境。

Linux+Apache+Mysql/MariaDB+Perl/PHP/Python一组常用来搭建动态网站或者服务器的开源软件,本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的Web应用程序平台。随着开源潮流的蓬勃发展,开放源代码的LAMP已经与J2EE和.Net商业软件形成三足鼎立之势,并且该软件开发的项目在软件方面的投资成本较低,因此受到整个IT界的关注。从网站的流量上来说,70%以上的访问流量是LAMP来提供的,LAMP是最强大的网站解决方案。

本文将要介绍的是Windows下搭建Apache+PHP+MySQL的环境,笔者所使用的系统及软件版本是(搭建时获取的软件均为官网最新版本64位,32位的同理,下载相关软件必须是对应的32位版本)):

Windows 10 64位

Apache 2.4.29 64位

PHP 7.2.0 64位

虽然PHP集成开发环境有很多,如XAMPP、AppServ、WAMPserver、PHPstudy等众多Windows下AMP集成开发环境,只要一键安装就把PHP环境给搭建好了,不需要开发者进行过多的配置。但这种安装方式不够灵活,软件的自由组合不方便,同时也不利于学习。所以本文采用手工搭建PHP开发环境,需要哪个模块自己安装就行了,或者那个软件需要升级,直接升级那个软件就行了,并不影响其他软件,非常方便。

一、准备工作-下载所需软件

每个版本的PHP是与固定版本的Apache是有配套关系的,比如PHP7,支持的是Apache2.4版本,PHP5.6支持的是Apache2.2,具体所下载的PHP需要哪个版本的Apache,可以查看PHP目录下的php*apache*.dll文件,比如php7apache2_4.dll,说明所下PHP为7,需要的Apache版本为2.4,如题所言,安装PHP7,则下载Apache2.4。本文采用的安装方式均为解压免安装方式。Apache+PHP+MySQL环境搭建和配置

 

vcredist_x64.exe

Apache httpd-2.4.29-Win64-VC15.zip

PHP      php-7.2.0-Win32-VC15-x64.zip

MySQL mysql-5.7.20-winx64.zip

1、下载安装vcredist_x64.exe

安装Apache前必须先安装VC11(VSU_4\vcredist_x64.exe),网址为http://www.microsoft.com/en-us/download/details.aspx?id=30679,选择时选择英文版的,如果系统是32位的请下载VSU_4\vcredist_x86.exe,下载页面参看下图Apache+PHP+MySQL环境搭建和配置

下载完可直接双击安装。

2、下载Apache

地址为https://www.apachelounge.com/download/Apache+PHP+MySQL环境搭建和配置

3、下载PHP

地址为http://windows.php.net/download

Apache+PHP+MySQL环境搭建和配置

选择64位Thread Safe(线程安全)的。

4、下载MySQL

地址为https://dev.mysql.com/downloads/mysql/

Apache+PHP+MySQL环境搭建和配置

选择windows系统,系统为64位,点击第一个下载。

二、AMP配置

1、解压重命名

在D盘等非C盘(放在C系统盘系统重装会丢失)下新建一个名叫webtools(名字自定义,叫什么都可以)的文件夹,将Apache、PHP、MySQL的压缩包复制到webtools目录下,分别解压压缩包并重命名(文件夹名称不能有中午和其它特殊符号),如下图(笔者的系统用的虚拟机只有C盘所以只能放在C盘下,有其它盘时最好不要放在C盘)

Apache+PHP+MySQL环境搭建和配置

2、配置环境变量

键盘使用Win + R运行sysdm.cpl打开“系统属性”。

Apache+PHP+MySQL环境搭建和配置

或者在桌面“此电脑”右键->属性->高级系统设置打开“系统属性”。

Apache+PHP+MySQL环境搭建和配置

Apache+PHP+MySQL环境搭建和配置

选择高级->环境变量

Apache+PHP+MySQL环境搭建和配置

在用户变量中新建变量MYSQL_HOME,值为MySQL的解压路径,例如我的为:C:\webtools\MySQL57

Apache+PHP+MySQL环境搭建和配置

在用户变量中选择Path,若没有Path新建一个Path。

知识点:有的教程会让在系统变量中编辑Path,两个不同点在于:用户变量中的变量只用于当前登录到系统中的用户,系统变量对所有登录到系统的用户都适用,因为有时候计算机不止一个用户。

Apache+PHP+MySQL环境搭建和配置

 

分别新建变量,将PHP路径C:\webtools\php72,PHP扩展支持路径C:\webtools\php72\ext,Apache bin路径C:\webtools\Apache24\bin、MySQL bin路径%MYSQL_HOME%\bin放入。

知识点:2个%中间加上变量名表示引用前面建的MYSQL_HOME变量,与C:\webtools\MySQL57\bin这种写法作用是一样的。关于环境变量的原理请看另一篇博文:Windows下PATH等环境变量详解

Apache+PHP+MySQL环境搭建和配置

3、配置Apache

首先修改Apache的配置文件,让Apache支持解析PHP文件。Apache配置文件在Apache解压目录的conf目录下的httpd.conf。用记事本或Sublime、notepad++等编辑器打开httpd.conf文件。

1、查找ServerRoot,修改ServerRoot “c/Apache24” => ServerRoot “c:/webtools/Apache24″(这里输入的是你解压apache安装包后放的位置)

Apache+PHP+MySQL环境搭建和配置

2、查找#ServerName www.example.com:80 ,修改为 ServerName www.example.com:80 (去掉前面的#,#表示注释此行)

Apache+PHP+MySQL环境搭建和配置

3、查找DocumentRoot “c:/Apache24/htdocs” , 修改为DocumentRoot “c:/webtools/Apache24/htdocs” (如果一样,就不用改) 

Apache+PHP+MySQL环境搭建和配置

4、查找<Directory “c:/Apache24/htdocs”> ,修改为 <Directory “c:/webtools/Apache24/htdocs “> (如果一样,就不用改) 

5、查找DirectoryIndex index.html ,修改为 DirectoryIndex index.html index.php index.htm (这里我们添加了index.php index.htm)

6、查找ScriptAlias /cgi-bin/ “c:/Apache24/cgi-bin/”  ,修改为 ScriptAlias /cgi- bin/ ” c:/webtools/Apache24/cgi-bin” (如果一样,也不用改)

7、查找<Directory “c:/Apache24/cgi-bin”> 修改为 <Directory “c:/webtools/Apache24/cgi-bin/”>  (如果一样,也不用改)

8、让Apache可以解析php文件,在配置文件中搜索

#LoadModule vhost_alias_module modules/mod_vhost_alias.so。

在下面空白处添加

#php7 support
PHPIniDir “c:/webtools/php72″(php的解压路径,告诉apache php.ini的位置)
LoadModule php7_module “c:/webtools/php72/php7apache2_4.dll”
AddType application/x-httpd-php .php .html .htm

Apache+PHP+MySQL环境搭建和配置

9、继续找,找到:Listen 80 若你的80端口被占用(可在cmd下用命令netstat -a查看),则将80端口改为别的,比如为8010、8080

保存httpd.conf文件,至此,httpd.conf 配置完成。

10、将Apache安装到系统服务中。打开CMD窗口,输入:

httpd -k install -n apache
该命令的意思是,安装apache服务,并将该服务名称命名为apache(你也可以改成别的),回车。
服务安装完毕,完毕后,会自动测试,若有问题,窗口会提示错误,此时,请根据错误自行排查。
其中,Errors reported here must be corrected before the service can be started.意思是,若该句话后面有错误信息,则表示服务安装失败,需要先改正错误。若没有,则成功。
在安装目录中,找到C:\webtools\Apache24\bin\ApacheMonitor.exe可执行文件,双击运行,桌面右下角会出现图标,双击打开窗口界面,可看到如下图有apach服务出现,表示服务安装成功。先暂时不要start,等后面配置完再start。
Apache+PHP+MySQL环境搭建和配置

4、配置PHP

1、配置时区:

打开php解压目录,找到php.ini-development文件,将其复制一份并改名为php.ini,用记事本等编辑器打开。

找到(带分号,分号代表注释此行) 

;date.timezone =

去掉前面的分号,修改为  

date.timezone = Asia/Shanghai

2、设置PHP扩展包的具体目录,查找extension_dir关键字,去掉前面的注释并将ext文件路径改成我们自己的ext路径,即修改为:

1
extension_dir = "c:/webtools/php72/ext"

3、将;extension=mbstring 修改为 extension=mbstring(去掉extension前面的分号,这是php多字节字符串扩展)

Apache+PHP+MySQL环境搭建和配置

4、将;extension=mysqli 修改为 extension=mysqli(去掉extension前面的分号)

如果之后在php运行中,缺少扩展,可将相应的内容之前的分号去掉。

5、设置编码,查找 

default_charset =

将其改为:

default_charset = “UTF-8”

至此PHP环境配置完成。

5、配置MySQL

i、创建配置文件

我解压MySQL的目录是C:\webtools\MySQL57,在此根目录下创建一个MySQL配置文件叫my.ini,里面内容填写如下

Apache+PHP+MySQL环境搭建和配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[client]
port=3306
default-character-set=utf8
#客户端字符类型,与服务端一致就行,建议utf8
[mysqld]
port=3306
character_set_server=utf8
#服务端字符类型,建议utf8
basedir=c:\webtools\MySQL57
#解压MySQL的根目录
datadir=c:\webtools\MySQL57\data
#mysql data所在目录,需要在MySQL在当前盘下创建文件夹data
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
[WinMySQLAdmin]
c:\webtools\MySQL57\bin\mysqld.exe
#解压根目录\bin\mysqld.exe

注意这句话:

1
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

这里设置的是,如果要在表里面的某一列添加空数据,不能使用  ”  的方式,必须要写入  NULL  不能加引号。

如果想用 ” 的方式,就把这句话改成:

1
sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

至此 MySQL就配置完了。

ii、MySQL初始化

1、以管理员身份运行cmd,执行命令mysqld –initialize 进行初始化

2、创建1个文本文件,并将下述命令置于单一行中:

SET PASSWORD FOR ‘root’@’localhost’ = PASSWORD(‘MyNewPassword’);

用任意名称保存该文件。在本例中,该文件为C:\webtools\MySQL57\data\init.txt。在命令行中执行mysqld –init-file=C:\webtools\MySQL57\data\init.txt。其中的root是MySQL的管理员账号,MyNewPassword是MySQL管理员对应的密码。

知识点:退出mysqld 服务时可以通过任务管理器结束mysqld.exe进程。

 3、以管理员身份运行cmd(如果不用管理员身份运行,将会因为权限不够而出现错误:Install/Remove of the Service Denied!) ,输入如下命令,安装mysql服务。

mysqld -install
提示:Service successfully installed.及即安装成功。
(CMD命令解释:CD\  返回根目录 D: 进入D盘  cd xxx  进入xxx文件夹)
1
2
3
4
5
启动、停止、移出MYSQL服务
启动MYSQL服务:net start mysql
停止MYSQL服务:net stop mysql
移出mysql服务:mysqld -remove
这里启动服务,方便下一步操作。

安装成功后就要启动服务了,继续在cmd中输入:net start mysql,服务启动成功!

服务启动成功之后,就可以登录了,输入mysql -u root -p,再根据提示输入密码,如图所示登录成功

Apache+PHP+MySQL环境搭建和配置

若在配置MySQL中遇到一些问题,请参考这两篇文章解决:

MySQL 5.6 for Windows 解压缩版配置安装

MySQL 5.7.13 for Windows 免安装版配置

三、测试配置开发环境

1、编写一个PHP测试文件

至此,所有要配置的事项已经完成了,是不是有点小激动呢,接下来我们就可以跃跃欲试运行PHP了。

现在可以将php文件放入htdocs文件夹中运行了。为了检验PHP配置是否生效,我们可以在apache 的htdocs目录建一个php文件,这里叫index.php,在这个文件中写入以下代码(/** **/包围的部分为注释不用解释了吧):

Apache+PHP+MySQL环境搭建和配置

1
2
3
4
<?php
 echo date("Y:m:d H:i:s");
  phpinfo();
?>

代码解释:

PHP代码以 <? php 开头,以 ?> 结尾,中间第2行是打印当前时间,第3行是调用phpinfo()函数,此函数会显示php的配置信息。

编写完保存,在Apache安装目录中,找到C:\webtools\Apache24\bin\ApacheMonitor.exe可执行文件,双击运行,桌面右下角会出现图标,双击打开窗口界面,点击左侧start,启动apache服务。

打开浏览器,输入访问 http://localhost:80/

出现如下图所示,则代表Apache、PHP、MySQL配置成功了

Apache+PHP+MySQL环境搭建和配置

这样Apache+PHP+MySQL的环境就搭建完成了。

若Apache服务器软件不想用了,想要卸载,需要先卸载apache服务(切记,若直接删除安装路径的文件夹,会有残余文件在电脑,可能会造成不必要的麻烦)

在CMD命令窗口,输入如下(建议先停止服务再删除):

sc delete apache

apache是Apache服务器的服务名

 

参考信息:

https://jingyan.baidu.com/article/154b46315242b328ca8f4101.html

https://jingyan.baidu.com/article/d8072ac47baf0eec95cefdca.html

 


版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明文章地址:https://www.madongdong.me/technology/special-technology/2017/12/25/1101/mdd/
喜欢 (1)
[821300079@qq.com]
分享 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到
(3)个小伙伴在吐槽
  1. I was looking evyeewhrre and this popped up like nothing!
    匿名2018-10-05 17:59 回复 Windows 7 | Chrome 40.0.2214.111
  2. 马 东东
    签到成功!签到时间:2017-12-25 01:14:22,每日打卡,生活更精彩哦~
    马 东东2017-12-25 01:14 回复 Windows 10 | Chrome 55.0.2883.87
    • I'm imesesrpd you should think of something like that
      匿名2018-10-05 21:55 回复 Windows 7 | Firefox浏览器 41.0