win10系统 搭建Apache PHP MySQL的开发环境,发现Apache与PHP的整合非常麻烦,先整理记录如下:

一、准备安装包,根据机器环境,统一选择X64或者X86

apache官网下载:https://www.apachehaus.com/cgi-bin/download.plx

mysql官网下载:https://dev.mysql.com/downloads/mysql/

php官网下载:https://windows.php.net/download#php-7.4

(php 我用的是7.4)

二、安装apache

1、将压缩包解压到D:\software,打开D:\software\Apache24\conf\httpd.conf,找到:Define SRVroot,设置Define SRVROOT "D:\software\Apache24"。

如果需要修改端口,则继续找到 Listen 80,并将80改为要设置的端口。

2、打开cmd窗口,切换到D:\software\Apache24\bin目录,执行httpd -k install ,安装apache服务。

3、启动apahce服务,执行net start apache2.4,提示成功

php运行环境怎么搭建(php开发环境安装)(1)

三、安装php7

1、将压缩包解压到指定目录D:\software\php74

2、将根目录下php.ini-production 复制一份,并重命名为php.ini;

3、设置环境变量将D:\software\php74和D:\software\php74\ext加入环境变量PATH中

四、安装mysql8

1、将压缩包解压到指定目录

2、在根目录下创建my.ini文件,并添加如图内容

php运行环境怎么搭建(php开发环境安装)(2)

3、启动服务net start mysql

php运行环境怎么搭建(php开发环境安装)(3)

五、整合Apache与PHP

1.用记事本打开D:\software\Apache24\conf\httpd.conf

查找ServerRoot,修改ServerRoot "D:\software\Apache24"(这里输入的是你解压apache安装包后放的位置)

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

最后一行添加添 加 LoadModule php7_module "D:\software\php74\php7apache2_4.dll" 让 apache 支持php

换一行添加添加 PHPIniDir "D:\software\php74" (告诉apache php.ini的位置)

在<IfModule mime_module>下面 添加 AddType application/x-httpd-php .php .html .htm

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

2.用记事本打开D:\software\php74\php.ini

  将; extension_dir = "ext"修改为 extension_dir = "ext" (去掉extension前面的分号)

  将;extension=mbstring,去掉extension前面的分号,这是php多字节字符串扩展

  将;extension=mysqli,去掉extension前面的分号

  六、测试

  创建phpinfo.php,写入<?php phpinfo(); ?>,并布置到D:\software\Apache24\htdocs下,打开apache服务,在浏览器输入http://localhost/phpinfo.php,出现如下页面,则说明整合成功!

php运行环境怎么搭建(php开发环境安装)(4)

七、常见问题

1.加入php7模块后,apache无法启动

使用命令httpd.exe -w -n "apache2.4" -k start 查看失败详情。

php运行环境怎么搭建(php开发环境安装)(5)

问题原因是

php运行环境怎么搭建(php开发环境安装)(6)

LoadModule php7_module D:\software\php74\php7apache2_4.dll此内容有以下注意事项:

必须是php7_module,不能写成php_module,而且必须小写

2.mysql8密码变更命令:

alter user 'root'@'localhost' identified by '123456' (user 表没有password字段,并且mysql8没有password关键字了)

,