Windows 下搭建 PHP+MySQL+Apache 环境

为什么不选一键包呢,因为脑残 因为 XAMPP 不太好控制控制版本,反正也就当学习了。

本文长期保持更新,比如我更新环境各种 Boom 了之后就会更新。

20190511 Update:又发现一些设置有猫饼,就改了下。

PHP

先配置个 PHP,反正配置好了随便丢哪都行不用管,以后要升级了基本覆盖一下就行,怕有问题就留着 php.ini 别的删掉,在解压进同一个文件夹即可。

Step 1

PHP官网下载 最新版,因为是搭建 Apache 环境所以就要下载线程安全(Thread Safe)版的

Step 2

随便解压到一个地方,因为是本地开发,所以要使用开发版配置模板 php.ini-development,复制一份改名为 php.ini,改点设置:

  1. 搜索 max_execution_time,数值改成 300
  2. 搜索 upload_max_filesize,数值改成 20M
  3. 搜索 post_max_size,数值改成 20M
  4. 搜索 extension_dir,把 for Windows 下面一行的分号去掉,即 extension_dir = "你电脑\\ext"
  5. 搜索 extension=mysqli,分号去掉,然后再看看自己需要哪些库
  6. 搜索 date.timezone,分号去掉,值为 Asia/Shanghai

基本就这些了,然后在 PHP 的目录开一下 PowerShell 或者 CMD,输入 php -v 看看有没有别的报错,正常的话应该如下:

$ php -v
PHP 7.2.3 (cli) (built: Feb 28 2018 05:47:26) ( ZTS MSVC15 (Visual C++ 2017) x64 )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies

如果跑不起来的话就装个 VC++ 2017 运行库,下载:64 位 - 32 位

Step 3

把 PHP 目录加进 Path 里面方便以后测试啥的,虽然用到的时候也比较少吧。

还有就是 disable_functions,我这里用的是 Hostker 的配置:

disable_functions = "disk_total_space,disk_free_space,diskfreespace,exec,passthru,shell_exec,system,popen,show_source,pclose,proc_open,dl,php_real_logo_guid,php_egg_logo_guid,php_ini_scanned_files,php_ini_loaded_file,readlink,linkinfo,symlink,link,passthru,proc_close,proc_terminate,proc_get_status,proc_nice,getmyinode,putenv,getopt,sys_getloadavg,get_current_user,import_request_variables,debug_zval_dump,ini_alter,dl,pclose,popen,mb_send_mail,openlog,syslog,closelog,posix_kill,apache_child_terminate,apache_get_version,apache_lookup_uri,apache_reset_timeout,apache_response_headers,virtual"

Apache

这个就比较麻烦了,当时配个 HTTPS 我都要吐了。

Step 1

官方的 2.4 只有源码了,不过可以去合作站点下载。先去官方下载页,点击 ApacheHaus,我选的是 OpenSSL 1.1.0 版本的,右边的 Download Location 选择下载源即可。

Step 2

解压到某个文件夹,把 Apache24/bin 目录加到 Path 方便控制。然后修改 Apache24/confhttpd.conf 文件,在最后加入以下:

##### Load PHP mod
LoadModule php7_module "你电脑\php\php7apache2_4.dll"
PHPIniDir "你电脑\php"
<FilesMatch \.php>
SetHandler application/x-httpd-php
</FilesMatch>
##### end Load PHP mod

然后做别的修改:

  • 搜索 Define SRVROOT,修改为 Define SRVROOT "你电脑\Apache24"
  • 搜索 LoadModule http2_module modules/mod_http2.so,去掉注释
  • 搜索 LoadModule ssl_module modules/mod_ssl.so,去掉注释
  • 搜索 LoadModule headers_module modules/mod_headers.so,去掉注释
  • 搜索 modules/mod_rewrite.so,去掉注释
  • 搜索 <Directory />,把 AllowOverride none 改成 AllowOverride All,注释 Require all denied
  • 搜索 DirectoryIndex,最后加入 index.htm index.php

如果不设置太多的话其实已经可以用了,网站文件放在 Apache24/htdocs 里面。

20190516:更新了 PHP 版本之后发现 curl 挂了,所以要执行一下指令:

mklink "你电脑\apache2.4\bin\libssh2.dll" "你电脑\php7\libssh2.dll"
为 你电脑\apache2.4\bin\libssh2.dll <<===>> 你电脑\php7\libssh2.dll 创建的符号链接

这就把 PHP 的 libssh2.dll 给 Apache 用了,然后就正常了。

因为前面加了 Path,所以用管理员权限运行 Powershell 或者 CMD,然后 httpd -k install 即可安装成服务并启动,需要重启的时候就 httpd -k restart

然后就可以测试了:https://127.0.0.1,可以丢个 PhpMyAdmin 进去测试,应该能跑起来了,不能的话我也不知道该怎么解决。

Step 3(可选)

如果想用域名(比如用 local.web 来访问)来做的话那就要多设置点东西了,没那么多要求就可以跳过这部分。

Apache24/conf/extra 新建个 local.web.conf 文件,内容参照这个:

20180314:修改了一下,解决了局域网访问的小问题,其他机子想用域名访问的话记得也加个 Hosts。

<VirtualHost *:80>
DocumentRoot "你网站目录\\wwwroot\\local"
ServerName local.web
</VirtualHost>

<VirtualHost *:443>
SSLEngine on
ServerName local.web:443
DocumentRoot "你网站目录\\wwwroot\\local"
SSLCertificateFile "${SRVROOT}/conf/ssl/server.crt"
SSLCertificateKeyFile "${SRVROOT}/conf/ssl/server.key"
</virtualhost>

然后在 Apache24/conf/httpd.conf 加一句 Include conf/extra/local.web.conf,然后 httpd -k restart 就生效了。

反正本地测试而已,证书无视就行,非要搞证书的话自己想办法咯。

MySQL

为了保证跟大多数主机环境一致所以选 MySQL,当然你也可以自己选 MariaDB,反正我平时搞 WordPress 比较多没什么区别。

Step 1

官网下载,如果需要 5.6 或者 5.5 的话也在同一个页面可以找到,然后点击下载。

Step 2

下好之后开始安装,不过需要 .Net Framework 4.5 以上版本,点击下载 .Net Framework 4.7.1 离线包

然后进入安装过程如下:

  1. Choosing a setup type 处,选择 Developer Default
  2. 如果还要搞 VS 或者 Python 3 的话就选 Execute,不需要就直接 Next,然后 Yes,然后 Execute,反正以后需要了还能重新装
  3. 然后一路 Next 到 Type and Networking,选 Standalone MySQL Server / Classic MySQL Replication
  4. Type and Networking 的 Config TypeDevelopment Machine,其他默认,如要换端口就把 3306 改成其他的
  5. Accounts and Roles 这里输入 root 用户的密码,然后 Next
  6. 然后就是创建 Windows 服务,默认创建,服务名为 MySQL57,系统启动时跟着启动,以标准账户启动服务,保持默认就行,不会的还是别乱改的好
  7. Plugins and Extensions,一般不需要,Next,Execute,Finish
  8. 然后又 Next,Finish,然后 Connect To Server 测试连接情况,这里输入 Root 的密码点 Check 测试能不能连接上,然后 Next,Execute,Finish
  9. 最后 Next,安装完成,那两个勾去掉就行了,反正一般用不着

然后用 PMA 试试:

剩下的该咋咋了,反正搭好了,过程有问题的话就说,反正我是不会改的。

Windows 下搭建 PHP+MySQL+Apache 环境 有 9 条评论

  1. 写得很清晰,必须点个赞。

    回复给 hooyes
  2. 收藏 以后也许用的到

    回复给 Flyer
  3. 这个搞得有点麻烦了,试试upupw或者宝塔!

    回复给 灰常记忆
  4. 有个phpstudy,一键搞定的,比较方便!

    回复给 山野愚人居

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注