Windows下从零搭建原生Apache2.4+PHP7.2+MySQL8.0环境运行ThinkPHP5

背景
一直用 XAMPP 做开发,兼容性稳定性很好,部署到服务器也没啥大问题,有台服务器跑了快两年了从来没崩过,也用过 XAMPPS 三天两头崩。但是发现个问题,用 绿盟检测 发现这种集成环境会有好多漏洞未修复,就尝试着自己从官网下载最新版的Apache、PHP、MySQL重新搭建了一下,中间遇到了好多坑在这里记录一下。

本文测试环境

  • 阿里云 ECS 1 核 1GB (领新人2折券)
  • Windows server 2012 R2 Datacenter
  • Intel® Xeon® CPU E5-2650 v2 @ 2.60GHz
  • RAM 1.00 GB

文章目录

  • 1. Apache
    • 1.1 推荐下载地址
    • 1.2 解压运行
    • 1.3 添加到系统服务
  • 2. ThinkPHP
    • 2.1 官网下载地址
    • 2.2 配置Apache主目录
  • 3. PHP
    • 3.1 官网下载地址
    • 3.2 参数配置
  • 4. MySQL
    • 4.1 官网下载地址
    • 4.2 配置PHP扩展支持

1. Apache

1.1 推荐下载地址

https://www.apachelounge.com/download/
官网最新的是Apache 2.4 VC15,apachelounge这里还特别贴心的给了VC15的下载链接,如果已经有VC11或14的话,可以直接点左侧选择合适的版本。
Windows下从零搭建原生Apache2.4+PHP7.2+MySQL8.0环境运行ThinkPHP5_第1张图片

1.2 解压运行

将Apache压缩包解压后,到bin目录下打开httpd.exe,若黑框正常停留,说明服务已启动,浏览器输入localhost或127.0.0.1则能正常访问,如下图所示:
Windows下从零搭建原生Apache2.4+PHP7.2+MySQL8.0环境运行ThinkPHP5_第2张图片
出错情况:
若是闪现后消失,那就说明默认80端口冲突,直接将httpd.exe拖到cmd窗口运行查看报错信息,如下图所示:
Windows下从零搭建原生Apache2.4+PHP7.2+MySQL8.0环境运行ThinkPHP5_第3张图片
解决方案:
方案①:找到占用80端口的程序并终止,重新运行httpd.exe;
方案②:修改默认端口,打开Apache/conf/httpd.conf,建议使用 Notepad++,因为记事本有时会导致格式错误,58行左右找到Listen 80,改为Listen 8080,保存后重新运行httpd.exe;

1.3 添加到系统服务

服务器上为了长期稳定运行,一般将httpd.exe添加成服务
操作方法:

# 打开CMD
#1. cd 到 Apache/bin 目录下;
cd C:\Apache24\bin

#2. 添加到系统服务
httpd -k install

Windows下从零搭建原生Apache2.4+PHP7.2+MySQL8.0环境运行ThinkPHP5_第4张图片
添加完成后在服务中可以找到Apache2.4,设置启动类型为自动就会开机启动了,以后重启服务也都在这里操作,如下图所示
Windows下从零搭建原生Apache2.4+PHP7.2+MySQL8.0环境运行ThinkPHP5_第5张图片
如果外网访问不了的话需要到防火墙里添加例外才行

2. ThinkPHP

2.1 官网下载地址

http://www.thinkphp.cn/down.html
这里我们直接下载 ThinkPHP 5.0.20 核心版

2.2 配置Apache主目录

① 将解压后的ThinkPHP文件复制到C:\Apache24\htdocs目录下;
② 用Notepad++打开C:\Apache24\conf\httpd.conf,找到248行左右,将DocumentRoot和Directory改为ThinkPHP目录,因为ThinkPHP5的index.php放在public目录下,所以我们将根目录设为thinkphp_5.0.20/public,如下所示;

#
# DocumentRoot: The directory out of which you will serve your
# documents. By default, all requests are taken from this directory, but
# symbolic links and aliases may be used to point to other locations.
#
DocumentRoot "c:/Apache24/htdocs/thinkphp_5.0.20/public"

③ 保存后到服务里重启Apache,浏览器输入localhost,效果如下图所示,因为此时Apache还配有配置PHP,所以此时不识别index.php;
Windows下从零搭建原生Apache2.4+PHP7.2+MySQL8.0环境运行ThinkPHP5_第6张图片

3. PHP

3.1 官网下载地址

https://windows.php.net/download
选择合适版本下载,本文因使用ThinkPHP5.0.20,需要PHP >= 5.4.0,官方建议在PHP7下使用,因此选用 PHP 7.2 VC15 x64 Thread Safe (2018-Apr-26 07:51:55)
Windows下从零搭建原生Apache2.4+PHP7.2+MySQL8.0环境运行ThinkPHP5_第7张图片

3.2 参数配置

① 解压下载的PHP压缩包到任意目录,本文解压到了C:\Apache24\php;
② 用Notepad++打开C:\Apache24\conf\httpd.conf,在最后添加;

# php7 support
LoadModule php7_module c:/Apache24/php/php7apache2_4.dll
AddType application/x-httpd-php .php .html .htm
# configure the path to php.ini
PHPIniDir "c:/Apache24/php"

③ httpd.conf的282行左右添加 index.php ,否则将不会识别默认页面,如果以后有需求可以再添加其他格式,比如index.htm、index.phtml;


    DirectoryIndex index.html index.php

④ 保存后到服务里重启Apache,浏览器输入localhost,效果如下图所示,表明PHP已经配置成功;
Windows下从零搭建原生Apache2.4+PHP7.2+MySQL8.0环境运行ThinkPHP5_第8张图片

4. MySQL

4.1 官网下载地址

https://dev.mysql.com/downloads/mysql/
选择系统版本后下载,注意可以跳过登录直接下载
Windows下从零搭建原生Apache2.4+PHP7.2+MySQL8.0环境运行ThinkPHP5_第9张图片

4.2 配置PHP扩展支持

原生的环境中,ThinkPHP连接MySQL会报错,一般会提示找不到函数或组件等。
可以将index.php中内容改为:


	phpinfo();
?>

这样重新访问localhost便可查看当前已加载的组件。
修改下面配置来添加PHP对MySQL连接的支持:
① 找到php根目录下有两个文件,php.ini-development和php.ini-production,我们这里使用后者,拷贝一份后重命名为php.ini;
② 找到783 、904行左右,去掉前面的;号;

783 extension_dir = "ext"
904 extension=mysqli

你可能感兴趣的:(PHP)