windows本地搭建apache+mysql+php环境详细讲解
为了测试方便我们可以先将环境配置中需要用到的环境变量配置好
- 打开高级系统设置
- 打开环境变量
- 点击新建,将apache,php,mysql的运行目录添加到环境变量中
- mysql下载配置
mysql官网下载地址:https://dev.mysql.com/downloads/mysql/5.7.html#downloads
mysql有安装版和解压版之分:
- 安装版:以msi结尾的,这种版本优点是安装便捷,全是傻瓜式的下一步;缺点是会不自觉的安装一些我们根本不需要的组件
- 解压版:以zip或者其他压缩格式结尾的,这种版本虽然安装麻烦一点,但有优点是轻便,不含多余的组件,甚至转移其他电脑都很容易。
这里选择下载解压版
解压到D盘的WAMP目录下
新建一个my.ini的配置文件,新建一个data目录用于储存数据库数据
my.ini配置文件内容如下:#代码开始 [Client] #设置3306端口 port = 3306 [mysqld] #设置3306端口 port = 3306 # 设置mysql的安装目录 basedir=D:\WAMP\mysql # 设置mysql数据库的数据的存放目录 datadir=D:\WAMP\mysql\data # 允许最大连接数 max_connections=200 # 服务端使用的字符集默认为8比特编码的latin1字符集 character-set-server=utf8 # 创建新表时将使用的默认存储引擎 default-storage-engine=INNODB sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES [mysql] # 设置mysql客户端默认字符集 default-character-set=utf8 #代码结束
得到文件目录如下:
以管理员身份打开cmd,进入到mysql的bin目录下执行如下代码,初始化数据库(注意这一步一定要保证data里面没有东西)
cd /d D:\WAMP\mysql\bin
mysqld.exe --defaults-file="D:\WAMP\mysql\my.ini" --initialize-insecure
安装并启用mysql服务(install后面跟服务名,不写则默认为mysql)
mysqld.exe --install MySQL
net start MySQl
./mysql.exe -u root -p
进入mysql (不需要输入密码,直接回车),设置root用户密码,刷新权限
use mysql;
update user set authentication_string=password('您的密码') where user='root';
flush privileges;
卸载mysql
mysqld.exe --remove MySQL
这样卸载只是把服务禁用了,要想把服务删除,还得执行下面这一步
sc delete MySQL
- apache下载配置
apache官网下载地址:https://www.apachehaus.com/cgi-bin/download.plx
分32位和64位 (这里注意,一定要记住VC15和VC16的选择要和PHP的选择一致。)
解压获得一个这样的目录
修改apache配置 conf/httpd.conf
主要修改这样几个地方:
apache目录
需要监听的端口
服务器名称
站点根目录
如果要配置虚拟主机,还需要开启这个,然后去修改httpd-vhosts.conf文件
管理员身份打开cmd
进入apache的bin目录下,安装并启动apache为系统服务:
cd /d D:\WAMP\apache\bin
httpd.exe -k install -n Apache24
net start Apache24
如果出现apache服务无法启动的情况:
在apache的bin目录下输入
httpd.exe
可能由于电脑中其他服务占用了443端口或者80端口,导致httpd-ssl无法启动,如vmware-hostd.exe占用443端口
详见:https://blog.csdn.net/lamp_yang_3533/article/details/53209579
或者80端口被占用,输入
netstat -ano
查看端口占用情况
这里我们可以看到80端口被pid为4的进程占用
所以我们尝试为关闭pid为4的进程
这里我们可以通过命令行输入taskkill /pid 4 -t -f
来完成
但是发现问题没有这么简单…进程拒绝访问了
于是我们又尝试通过任务管理器去查看进程,发现因为是system进程,所以无法终止
我们可以在网上找找如何终止system进程的方法,这里我选择的是修改80端口为8080端口
这里需要修改配置文件中的两个地方
修改完成之后保存配置文件,就可以去启动我们的apache服务了
注意由于修改了端口,在浏览器进行测试时,我们输入的是localhost:8080
而不是localhost
,因为localhost
默认访问的是80端口,所以我们需要在后面指定访问的端口号
如果apache服务启动没有出错,浏览器访问localhost,显示如下界面
最后还有一步关联php:
修改httpd.conf配置文件:添加下面几项
#加载php模块 LoadModule php7_module "D:/WAMP/php/php7apache2_4.dll" #加载php配置文件 PHPIniDir "D:/WAMP/php" #apache分配工作给php模块 <IfModule php7_module> AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps </IfModule>
其中 php7apache2_4.dll 库根据具体的php版本而定,可在php目录下寻找。
再重启apache。
启动apache也可以用这个小工具:
- php下载配置
php官网下载地址:https://windows.php.net/download
根据自己项目需求下载对应的版本,不过下载时要注意,因为有多个版本
x64代表电脑位数为64,x86代表电脑位数为32位,这个不用多说。
需要注意另外一个区别 thread safe (线程安全) 和 non thread
safe(线程不安全),这是因为php有两种运行方式 ISAPI 和 FastCGI 。
常见的apache 采用ISAPI 模式,及把php当成一个模块加载,需要选择线程安全的;
另外一些IIS、nginx采用FastCGI方式运行php,需要选择线程不安全的。
我们选择下载的是线程安全的php版本,由于之前apache选择的是VC15,所以我们这里php选择的依然是VC15,x64和x86这个就不用多说了,根据自己的电脑型号来选择
解压后得到一个这样的目录
在php目录下新建一个php.ini配置文件,将php.ini-development中的内容复制进去
得到一个这样的目录
修改php.ini配置文件
- extension_dir中填写的是ext目录的绝对路径
- 打开连接mysql需要可能用到的扩展
测试php环境是否搭建成功,这里同理还是要先进入php.exe的目录下才能执行的
在apache/htdocs目录下创建index.php文件
<?php echo 'hello php!'; ?>
测试apache+php是否联调成功
测试mysql+php+apache是否联调成功
在apache/htdocs目录下新建mysql.php
<?php $link = mysqli_connect('localhost', 'root', ''); if (!$link) { echo ('数据库连接失败'); } mysqli_set_charset($link, 'utf8'); mysqli_select_db($link, 'mysql'); $sql = 'select * from student;'; $obj = mysqli_query($link, $sql); $res = mysqli_fetch_assoc($obj); var_dump($res); mysqli_close($link);