天気雨

All things bright and beautiful.

Windows 下搭建 PHP+MySQL+Apache 环境

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

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. 搜索 extension_dir,把 for Windows 下面一行的分号去掉,即 extension_dir = "你电脑\\ext"
  4. 搜索 extension=mysqli,分号去掉,然后再看看自己需要哪些库
  5. 搜索 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,去掉注释
  • 搜索 DirectoryIndex,最后加入 index.htm index.php

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

因为前面加了 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. Eiko 回复 hooyes

      毕竟自己搭的时候查了一堆有用没用的,然后在虚拟机再来一次

    1. Eiko 回复 灰常记忆

      我这是在 Windows 里搭开发环境,我自己本身用的还是算虚拟主机一类,毕竟 Linux 真的玩不过来

发表评论

电子邮件地址不会被公开。 必填项已用*标注