下载安装最新版本 OpenSSL Light;
可选,下载安装 MariaDB,打开 HeidiSQL 配置新用户凭据;
终端管理员执行choco install mkcert安装 mkcert:
继续mkcert -install安装根证书:
下载解压 Apache 2.4 放置在合适位置;
文件夹bin下,终端管理员/终端解除 sudo 限制下执行sudo ./httpd.exe -k install -n "Apache 2.4";
下载线程安全的 PHP 放在合适位置,修改php.ini-development为php.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"
打开下列扩展,其它扩展按需打开:
还可以选择装一个 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 证书:
将生成的pem证书扩展名改为crt,将-key.pem扩展名改为key;
编辑 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 服务,无报错即证明一切顺利。有报错需要去事件查看器看系统日志。
在 php 根目录下找到libssh2.dll,php ext目录下找到php_curl.dll,复制到System32文件夹中;libssh2.dll另外再复制一份到 Apache 的bin目录中。