下载安装最新版本 OpenSSL Light

可选,下载安装 MariaDB,打开 HeidiSQL 配置新用户凭据;

终端管理员执行choco install mkcert安装 mkcert:

psc

继续mkcert -install安装根证书:

psc

下载解压 Apache 2.4 放置在合适位置;

文件夹bin下,终端管理员/终端解除 sudo 限制下执行sudo ./httpd.exe -k install -n "Apache 2.4"

下载线程安全PHP 放在合适位置,修改php.ini-developmentphp.ini且:

INI
; 注释以关闭 output_buffering
; output_buffering = 4096

; 修改下列配置
max_execution_time = 300
max_input_time = 300
memory_limit = 1024M
post_max_size = 64M
upload_max_filesize = 64M

; 取消 extension_dir 注释并改为实际绝对路径
extension_dir = "C:\Program Files (x86)\php8.4\ext"

打开下列扩展,其它扩展按需打开:

psc

还可以选择装一个 APCu,在此页面下载线程安全的 DLL,然后放进ext文件夹,最后修改配置文件添加扩展即可;imap 同理。

编辑 Apache 根目录httpd.conf

Apache 配置
# 校准 Apache 根路径
Define SRVROOT "C:\Program Files (x86)\Apache24"

# 解除注释
LoadModule info_module modules/mod_info.so
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule ssl_module modules/mod_ssl.so
LoadModule status_module modules/mod_status.so

# 添加 PHP Module,注意实际路径
LoadModule php_module 'C:\Program Files (x86)\php8.4\php8apache2_4.dll'

# 将 PHP 配置文件加载到 Apache 配置文件中,共同生效
PHPIniDir 'C:\Program Files (x86)\php8.4'

# 分配 Apache 工作给 PHP 模块,将 PHP 代码交给 PHP 处理
AddType application/x-httpd-php .php

# 在这里添加 index.php
<IfModule dir_module>
    DirectoryIndex index.html index.php
</IfModule>

# 根据实际开发文件夹配置下方的项目目录集合
# 比如我喜欢都塞进一个叫做 Projects 的文件夹里
<Directory "D:\RaymondRay\Projects">
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>

Apache 配置
# 由于版本不同,稍微靠前一点的版本会自动引入配置文件,向后的版本可能不会这么做
# 检查下面的三个 conf,其不应被注释
# Real-time info on requests and configuration
Include conf/extra/httpd-info.conf

# Virtual hosts
Include conf/extra/httpd-vhosts.conf

# Secure (SSL/TLS) connections
Include conf/extra/httpd-ssl.conf

我用 2.4.63 版本的时候启动服务会报函数不正确,看网上说是httpd-ssl.conf文件语法有问题,经排查:

Apache 配置
# 注释掉文件 httpd-ssl.conf 中的此配置即可
SSLSessionCache "shmcb:${SRVROOT}/logs/ssl_scache(512000)"

使用mkcert分配开发域名 HTTPS 证书:

psc

将生成的pem证书扩展名改为crt,将-key.pem扩展名改为key

psc

编辑 Apache 根目录下conf/httpd-vhosts.conf以添加新域名(注意根据实际情况填写):

Apache 配置
<VirtualHost *:443>
    ServerName crm.localdev.net
    DocumentRoot "D:/RaymondRay/Projects/1CRM"

    SSLEngine On
    SSLOptions +StrictRequire
    SSLCertificateFile "C:/Program Files (x86)/Apache24/certificates/crm.localdev.net.crt"
    SSLCertificateKeyFile "C:/Program Files (x86)/Apache24/certificates/crm.localdev.net.key"

    <Directory "D:/RaymondRay/Projects/1CRM">
        Options FollowSymLinks
        AllowOverride All
    </Directory>
</VirtualHost>

启动或重启动 Apache 服务,无报错即证明一切顺利。有报错需要去事件查看器看系统日志。

psc

在 php 根目录下找到libssh2.dll,php ext目录下找到php_curl.dll,复制到System32文件夹中;libssh2.dll另外再复制一份到 Apache 的bin目录中。