1. Apache
1.1 Windows 端安装 Apache
Windows 端安装 (Apache Haus)[https://www.apachehaus.com/cgi-bin/download.plx],选择 x64 版本,下载完成之后是一个压缩包:

将文件解压到任意一个工作目录,如:D:/Apache24,之后打开 Apache 目录下的 /conf/httpd.conf ,修改配置文件:
- 初次修改必须要修改
Define SRVROOT,将其更改为我们解压后所放置的工作目录; Listen选项为服务的开启的端口,默认为80,如果该端口被占用,需要改变端口号才可以启动 Apache 服务。
之后进入 /bin 目录下,使用有管理员权限的 cmd 或者 powershell,输入 httpd.exe 即可开启服务。
Windows 端的 apache 目录结构:
1 | ├─bin # windows 可执行二进制文件 |
之后可以将 Apache 安装为系统服务,那样便可以使用 bin 目录下的 ApacheMonitor.exe 工具,一键开启与重启 Apache 服务器(注意这里必须使用管理员权限运行命令行程序,并保证设置的端口没有被占用):
1 | httpd -k install |
1.2 Apaceh 常用指令
查看模块状况:
1 | httpd.exe -M |
验证配置文件:
1 | httpd -t |
Ubuntu 环境下需要使用
apachectl替代httpd
2. PHP
2.1 PHP 环境配置
上官网安装适用于 Windows 的 PHP,注意要下载 Thread Safe 版本,否则没有 Apache 的模块。
下载同样是一个压缩包格式的文件,将其解压并放置到自定的目录,其目录结构为:
1 | ├─dev |
执行 php 文件:
1 | php.exe -f /dirName/fileName.php |
将 php 环境的目录设置到系统 PATH 中,即可直接编译运行 php 文件:
1 | // helloworld.php |
1 | $ php helloword.php |
2.2 Apache 加载 PHP 模块
打开 Apache 配置文件,在 LoadModule 处添加模块路径:
1 | # httpd.conf |
之后可以通过 httpd -t 来检查配置文件是否可用,同时使用 httpd -M 可以看到新增的模块:
1 | php7_module (shared) |
除此之外,我们还要显式配置 Apache 支持读取 php 文件:
1 | # httpd.conf |
此时已可以将 php 文件放置到 Apache24/htdocs/ 目录下,服务器即可处理 php 文件了。
3.3 Apache 加载 PHP 配置文件
由于 Apache 是运行 php 的环境,所以 php 的相关设置比如加载模块,需要让 Apache 读取,因此我们要让 Apache 去加载 PHP 的配置文件。
以下配置仅适用于 Windows 平台
在 Apache 配置文件中添加:
1 | # httpd.conf |
由于 PHP 环境下载下来之后,相关的配置文件并没有进行初始化操作,我们需要在 PHP 目录下创建一个 php.ini 文件,我们可以将 php.ini-development 复制一份并重命名为 php.ini 完成初始化操作。
之后我们可以在 apache 静态文件目录下(windows 平台在为 Apache 目录下的 htdocs 文件夹)中创建一个 info.php,输入:
1 | // info.php |
访问 http://localhost/env.php 既可看到当前的 php 环境配置详情:

php 的很大一个好处就是可以热更新,无需重启服务器修改文件即可生效,当然加载模块还是要重启服务器的。
3.4 PHP 选择加载模块
通过以上的设置,Apache 已经能够处理 PHP 文件了,但是 PHP 还有众多扩展包可以供我们使用,比如 mysqli 扩展可以帮助我们连接 myslq,只有我们启用了这些扩展,才可以在 PHP 中使用这些服务。
这里以启用 myslqi 扩展为例,打开 php.ini 文件,在 ;extension=mysqli 这一行取消掉前面的 ; 即启用该插件:
1 | ;php.ini |
在 php7.3 以下版本,
mysqli可能被写为php_mysqli.dll,这里也可以填写一个绝对路径来指向插件的存放位置。
在 Windows 平台上还需要额外配置 PHP 扩展的路径,如:
1 | ;php.ini |
Ubuntu 可以通过查看 phpinfo 来获取插件的默认路径。
3.5 设置 PHP 时区
系统默认的时区并不安全,需要手动切换为当前国家的时区:
1 | date.timezone = RPC |
3.6 Linux 系统下的注意事项
Linux 系统下可能会安装多个 PHP 版本,可以用
php --verison查看当前 php 版本。PHP 的目录为
/etc/php,在该目录下可以看到多个 PHP 版本。PHP 命令行环境下与 Apache 环境下加载的
php.ini文件是不一样的。- 命令行环境下执行的是
/etc/php/[php_version]/cli/php.ini,命令行中使用php -i | grep php.ini可以查看。 - Apache 环境下加载的是
/etc/php/[php_version]/cli/php.ini,php 文件中使用phpinfo()方法输出当前环境可以查看。
- 命令行环境下执行的是
模块位置在
/usr/lib/php/[php_api_version]/目录下存放。- 该位置可以按照 windows 上的设置方式显式指定(不推荐更改)。
- 该位置不同的 php 版本不一样,具体看当前的 PHP API 的值。
- 命令行环境与 Apache 环境中对于扩展的路径是相同的,命令行环境下使用
php -i | grep extension_dir查看。
如果安装有多个版本的 php 可以使用
php[version]来执行不同版本的 php ,如php7.2 --version。
可以在
/usr/bin目录下查看当前所可执行的 php 版本
- 如果要手动安装扩展,需要安装当前版本的
dev开发工具,比如 php7.3 需要安装php7.3-dev。- dev 工具中的 phpize 可以用来编译扩展,与多版本的 php 使用类似,可以使用
phpize[version]来切换不同版本的编译工具 - dev 工具中可以调用
php-config来查看当前开发工具对应的 php 环境,如果当前设备安装了php7.3而 dev 工具是php7.2-dev,那么当前的环境只会是 php7.2 的环境,响应的编译的文件也会编译到php7.2的扩展路径中。
- dev 工具中的 phpize 可以用来编译扩展,与多版本的 php 使用类似,可以使用