上一节我介绍了在Windows和Mac OS X上安装PHP集成环境的方法,本节我将介绍稍微复杂的自定义开发环境。如果你已经安装了集成环境,也希望你能了解一下本节的安装过程,这对你了解网站架构是一个十分典型的学习示例。

使用自己亲手搭建出来的PHP运行环境具有扩展性强,消耗资源更少的优点,了解了架构的同时也能扩展自己的知识面,推荐各位同学在日后有时间了一定要求亲手试一试,下面我就开始介绍在Windows环境下搭建PHP开发环境的过程。

prepar to install

准备工作

下载Apache、PHP、MySQL安装包 建立网站目录

下载安装包

我已经为你下好了本节教程中提到的所有要用到的安装包,点击链接输入密码就可以下载啦:

Apache
应用名 安装包名 下载地址 密码
Apache 32位 httpd-2.4.23-x86-vc14.zip http://pan.baidu.com/s/1o8mzMd0 exct
Apache 64位 httpd-2.4.23-x64-vc14.zip http://pan.baidu.com/s/1jICqyG2 3ce5

如果你想在官网下载,请点击这里前往官网下载对应的安装包。

PHP7

PHP 7 新版,这是十年来的首次大改版,最大特色是在性能上的大突破。同时我也建议新手学习PHP7,放弃老版本的研究(虽然用法没什么太大的区别)。

应用名 安装包名 下载地址 密码
PHP 7.0 (7.0.9) 32位 php-7.0.9-Win32-VC14-x86.zip http://pan.baidu.com/s/1dEY5ipz rkn6
PHP 7.0 (7.0.9) 64位 php-7.0.9-Win32-VC14-x64.zip http://pan.baidu.com/s/1kUGHYo3 ta9n

如果你想获取更新的PHP文件,请前往PHP官网下载。

MySQL

MySQL乃PHP的黄金搭档,在Windows中也有相当好的支持,下载列表如下:

应用名 安装包名 下载地址 密码
MySQL 32位 mysql-5.7.13-win32.zip http://pan.baidu.com/s/1mhDXYdi yvr9
MySQL 64位 mysql-5.7.13-winx64.zip http://pan.baidu.com/s/1bAoAvG v5bz

如果你想获取更新的MySQL安装包,请前往MySQL官网下载。

创建程序目录

下载完成后,在你喜欢的盘中创建一个文件夹,用来统一存放安装包,在这里我在C盘创建了一个名为packages的文件夹,如果你下载好三个文件后,那么这个文件夹中差不多和下图一样。

下载好三个文件

然后,你还需要一个目录来存放程序的运行文件,我会在C盘创建一个名为server的文件夹,你可以随意起名,但一定要有意义,日后记得住的名字。在这个示例中,我的服务器程序运行目录为C:\server

之后分别在server目录中新建 Apache24,PHP7MySQL文件夹,用于存放之后要安装的三个程序。

安装依赖库

要保证Apache在Windows下成功运行,还需要VC库来支持,如果你看过上一篇文章,应该知道要装哪些安装包,如果不知道,请直接跳转到WAMP安装错误解决方法一文中按照说明下载VC运行库。

start install

开始安装

将下载的安装文件解压并安装到系统中

安装Apache

解压获得程序文件夹Apache24和说明文件readme_first.html。将它放在之前创建好的C:\server\Apache24中。

解压获得程序文件夹Apache24

现在,我们需要修改Apache的配置文件,让它知道自己在系统中的绝对路径和网站文件的存放目录。

修改服务器根目录路径

进入Apache目录中的conf文件夹,用编辑器打开 httpd.conf 文件。这个文件就是Apache的配置文件,很多模块和功能都可以在这个文件中设置开启或关闭。

修改服务器根目录路径

Define SRVROOT "/Apache24"改为你的安装路径,我安装到了C:\server\Apache24 中,所以改为 Define SRVROOT "C:/server/Apache24"

注意:Apache中配置文件的目录分隔符和Windows中不一样,需要把 '\' 写为 '/'

定义网站根目录

Apache需要在系统中定义一个网站根目录来指定访问的网页文件,你需要把配置文件中默认的根目录改为你系统中真实存在的地址。一般来说,Apache会把根目录定义在htdocs目录中,你可以不用更改,但为了方便找目录创建文件,我想把它定义在server目录中的www文件夹,就需要做这样的修改配置操作:

修改服务器根目录路径

把 246行中 DocumentRoot "${SRVROOT}/htdocs" 改为 DocumentRoot "${SRVROOT}/../www"

把 247行中 <Directory "${SRVROOT}/htdocs"> 改为 <Directory "${SRVROOT}/../www">,同时,在C:/server/目录中建立www目录。

../的意思就是相对于当前目录的上级目录,例如C:\server\Apache24\的上级目录就是C:\server\

增加index.php为默认解析文件

由于我们安装Apache主要是为了运行PHP文件的,如果没有配置index.php作为Apache的默认加载文件的话,一个写好的应用程序(比如说Wordpress)就会出现首页404的问题,除非指定要访问index.php文件。

修改服务器根目录路径

在280行中,在DirectoryIndex index.html后面加入 index.php 即:DirectoryIndex index.html index.php

到这里,Apache的基本配置就暂时告一段落。

启动Apache服务器

由于Apache不像是Windows常用的后缀为.exe的可执行文件,而是需要通过命令行来挂载的服务,所以你需要用到Windows中自带的Cmd来执行以下命令:

按下 windows + R 在弹出的运行框中输入“cmd”,回车。

输入你要进入的盘符,我的Apache安装到了C盘,所以输入C:(不要忘记后面的冒号),之后再使用cd命令进入Apache的bin目录。输入httpd,回车,系统会弹出防火墙提示,点击确定后即可启动Apache,如下图所示。

因为Apache是作为一个系统服务项运行的,所以在你输入httpd回车之后,不会有任何的返回值,这个服务会一直运行下去,直到你关闭掉这个cmd的运行窗口。

测试Apache

因为我在前面自定义的网站的根目录(C:\server\www),这个目录是空的,我们可以把C:\server\Apache24\htdocs中的两个文件复制到www目录中,再打开一个浏览器,输入localhost/既可以看到It works!的欢迎页面了。

测试Apache安装成功页面

让Apache自启动

看到上面的做法大家肯定会觉得回回这么启动Apache是超级麻烦的一件事,当然不是这么启动了~我只是教大家如何验证Apache是否安装成功,接下来就教大家如何让Apache自启动。

首先,关闭掉你刚才开启的cmd窗口,让Apache停止服务,否则会和我们接下来做的事发生冲突。(80端口被占用)

和上面的做法一样,重新打开一个cmd窗口(管理员身份 打开方式见下图),进入到Apache的bin目录下。

在Windows徽标上单击右键后,在弹出的菜单中选择命令提示符(管理员)。

进入Apache的bin目录之后,输入httpd -k install。安装Apache为一个Windows NT的服务;如果控制台返回和上图一样的结果就说明操作成功。

Apache的安装就暂时告一段落,现在只成功了一半,因为我们的Apache还不能解析PHP文件,如果你在www目录中创建了包含PHP代码的index.php文件,再用Apache去访问它的话,他不会被Apache解析,而是会被当做一个文件下载下来。

安装PHP

生成PHP配置文件

严格意义上来讲,PHP并不是用来安装的,而是作为Apache的模块来调用,我们只需要开启Apache的PHP模块并告诉Apache,PHP在哪里以及什么样的文件需要用此模块来解析就可以了。

现在把刚下载下来的PHP安装包解压,同样放在之前创建好的server文件夹中的PHP7中,接下来我们需要修改PHP的配置文件,复制一份php.ini-development到当前目录,并改名为php.ini

修改PHP的配置文件

为了方便后期学习MySQL和测试整个环境,我们需要把PHP配置文件中的mysqli扩展和PDO扩展打开,让PHP支持这两种连接方式。具体操作如下:

搜索;extension=php_mysqli.dll;extension=php_pdo_mysql.dll 把前面的 ; 去掉,代表开启这两个扩展。

搜索;extension_dir =,去掉前面的;并将其改为extension_dir = "C:/server/PHP7/ext" 路径请参考你自己的安装PHP的绝对路径,这是告诉PHP,它的扩展文件夹在哪里。全部改完之后保存即可。

修改Apache配置文件

PHP的修改只需要做上面那一步就OK,接下来我们要告诉Apache,PHP的路径和开启PHP解析模块。

用编辑器打开Apache的安装目录中的Apache配置文件(C:\server\Apache24\conf\httpd.conf),在配置文件的末尾加入如下代码:


LoadModule php7_module "C:/server/PHP7/php7apache2_4.dll"
AddHandler application/x-httpd-php .php
PHPIniDir "C:/server/PHP7"
        

加入之后保存,然后重启Apache。以管理员身份开启一个cmd窗口,输入命令:net stop apache2.4 停止Apache服务,再运行net start apache2.4启动Apache。此时Apache会以你刚刚修改的最新的配置文件(httpd.conf)初始化Apache的服务。

重启Apache的服务

运行PHP文件

还记得之前在C:\server\www建立的网站根目录的文件夹吗,请在此文件中新建一个PHP文件,尝试在浏览器中运行,测试你的配置是否正确。

这里我以index.php为例,在index.php中写入如下代码:


<?php phpinfo(); ?>
        

保存之后打开你的浏览器,在地址栏中输入localhost/inde.php后回车,就回出现PHPInfo的信息了,如下图:

PHPInfo

至此,Apache+PHP的安装过程就告一段落了。

安装MySQL

解压并添加环境变量

和之前的做法一样,在C:\packages中找到MySQL的压缩包,解压到C:\server\MySQL中。

添加mysql的路径到windows的环境变量中,因为我们需要通过命令行来使用MySQL,每次启动MySQL都需要写入MySQL的绝对路径,这样使用起来不是很方便,把它添加到Windows的环境变量中,就可以直接输入mysql来调用MySQL服务了。

右键单击我的电脑,或者按住windows + E 打开文件资源管理器后再左侧“此电脑”上右键单击,在弹出的菜单中选择“属性”。如下图,一次点击“高级系统设置”,“高级”,“环境变量”,选中Path后点击“编辑”,或者直接双击“Path”。

配置Mysql的环境变量

在弹出的对话框中,找到变量值,在内容的末尾加上;C:\server\MySQL\bin; 请不要忘记在前面和后面加上 ; ,点击保存。之后一路点击确定使配置生效。

修改MySQL的配置文件

MySQL也需要像PHP和Apache一样修改一下配置文件,让它知道自己在系统中的路径,才能很好的工作。以我的文件目录为例,我把MySQL安装到了C:\server\MySQL下,在这个目录中找到my-default.ini,复制一份并保存为my.ini后,用编辑器打开它,作如下修改:(你也可以直接复制我写好的配置文件覆盖保存)


[mysqld]

# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M

# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin

# These are commonly set, remove the # and set as required.
basedir = C:/server/MySQL
datadir = C:/server/MySQL/data
port = 3306
# server_id = .....


# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
join_buffer_size = 128M
sort_buffer_size = 2M
read_rnd_buffer_size = 2M 

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 
        

其中,basedir就是MySQL在系统中的绝对路径;datadir是刚才新建的用来储存MySQL生成的数据库文件的文件夹;port是MySQL的端口号,默认为3306

修改完成之后,就可以安装MySQL啦。用管理员身份启动一个cmd窗口,进入到MySQL的bin目录下,先执行mysqld --initialize来初始化配置文件中定义的data目录。之后再执行mysqld -install,安装MySQL服务,最后再执行net start mysql就可以像启动Apache一样启动MySQL啦。操作命令如下图:

安装MySQL服务

因为执行了initialize命令,所以MySQL的初始密码是随机生成的,想要知道密码是什么,请在MySQL的安装目录下找到生成的data文件夹,在其中找到***.err的错误日志并打开。错误日志的命名是随机的,在本次安装中,我的错误日志是DESKTOP-CLPAG0C.err,用编辑器打开后,找到类似于下图的句式:

MySQL的默认密码

A temporary password is generated for root@localhost: _CLh*#0Vlnwt 由此见得,我的root的默认密码就是_CLh*#0Vlnwt

修改默认密码

在初始化MySQL的时候生成的密码是有时效性的,也就是说只要登录了一次就会失效,所以你最好在安装完成后修改为自己的密码。

修改MySQL的密码很简单。在MySQL的安装目录下,可以看到一个叫做 mysqladmin.exe 的文件,该文件就可以帮你修改MySQL的密码。以后如果忘记了密码,也可以使用我即将介绍给你的方法修改。

进入到MySQL的bin目录,输入mysqladmin -u root -p password,之后依次输入默认生成的密码,你的新密码和重复你的新密码即可重置MySQL的密码为你设置的密码。如图:

MySQL的默认密码

用命令行测试MySQL

用命令行连接MySQL是最直接的测试MySQL是否安装成功的方式,命令是mysql -uroot -p,回车之后输入密码,就可以连接至本地的MySQL数据库了。

用命令行连接Mysql

用PHP测试MySQL

做此操作前请先修改掉MySQL的默认密码。否则会报错类似于“Your password has expired. To log in you must change it using a client that supports expired passwords.”的密码过期的错误哦~

最后,写几行PHP代码来验证整套环境是否搭建成功,复制下面的PHP代码,修改你自己的密码部分并保存为testmysql.php,如果你是刚入门的新手,不必搞明白这些代码是什么意思,以后我会慢慢教你。


<?php
// 连接你的本地MySQL数据库 记得把 _CLh*#0Vlnwt 改为你自己的密码
$mysqli = new mysqli('127.0.0.1', 'root', '_CLh*#0Vlnwt');
// 连接失败
if ($mysqli->connect_error) {
    die('Connect Error (' . $mysqli->connect_errno . ') '
            . $mysqli->connect_error);
}
// 连接成功
echo 'Connection OK';
// 关闭MySQL连接
$mysqli->close();
?>
        

在浏览器中输入localhost/testmysql.php ,最后输出“Connection OK” 就代表一整套环境全部搭建完毕。是不是满满的成就感?

用命令行连接Mysql

请登录

WOWPHP 账号登录 GitHub 账号登录

还没有账号?现在去注册一个~