Windows+Apache+Mysql+PHP手动搭建

温馨提示:点击页面下方以展开或折叠目录~

Windows+Apache+Mysql+PHP手动搭建

​ 不使用phpStudy、WAMP等集成环境的原因是本机已经装了mysql了,上一台机器在已有mysql的情况下装集成环境造成环境十分混乱,而且集成环境出问题时往往很难定位是哪里出问题,因此打算手动搭建

  • 环境:
    • windows 10
    • Apache-httpd-2.4.51-win64-VS16
    • php-8.0.11-Win32-vs16-x64
    • MySQL Ver 8.0.25 for Win64 on x86_64

Apache搭建

配置文件

Windows下的apache去https://www.apachelounge.com/download/下载压缩包,解压后修改conf/httpd.conf配置文件以下内容

1
2
3
4
5
Define SRVROOT "D:/DevelopTools/Apache-httpd-2.4.51-win64-VS16/Apache24"
DocumentRoot "D:/Programming/php/www"
<Directory "D:/Programming/php/www">
ServerName localhost
Listen 80
  1. ServerRoot
    • 服务器位置,设置为apache在本机的位置
  2. DocumentRoot
    • 作用:确定服务器上访问的位置,即网站文件夹所在位置
  3. <Directory “”>
    • 作用:设置可访问路径,与DocumentRoot一致即可
  4. ServerName
    • 作用:方便用户使用名字访问对应网站,给文件夹对应的取一个别名
    • 去掉注释,端口可以去掉
  5. Listen
    • 作用:设置监听端口
  6. C:\Windows\System32\drivers\etc\hosts
    • DNS解析,增加条目127.0.0.1 localhost

启动服务

配置完成后进入安装目录的bin目录下,用管理员身份打开cmd

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 检查配置是否成果
D:\...\Apache24\bin>httpd.exe -t
Syntax OK
# 启动服务
D:\...\Apache24\bin>httpd -k start
[Sun Oct 17 16:11:37.803811 2021] [mpm_winnt:error] [pid 27336:tid 408] (OS 2)系统找不到指定的文件。 : AH00436: No installed service named "Apache2.4".
# 若报以上错误则执行以下命令
D:\...\Apache24\bin>httpd -k install
Installing the 'Apache2.4' service
The 'Apache2.4' service is successfully installed.
Testing httpd.conf....
Errors reported here must be corrected before the service can be started.
# 执行成功再启动
D:\...\Apache24\bin>httpd -k start
# 访问localhost 即可看到页面

PHP环境搭建

官网下载地址:https://windows.php.net/download/

下载压缩包后解压缩

根目录下的php.exe即为php解释器,命令行运行php.exe -f 文件名即可解析php文件

image

Apache+PHP

Apache加载PHP模块

  • Apache配置文件httpd.conf添加以下

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    #加载php
    LoadModule php_module 'D:/DevelopTools/php-8.0.11/php8apache2_4.dll'
    #分配给php
    AddType application/x-httpd-php .php

    # 进入Apache24/bin
    # 查看语法是否正确
    D:\...\Apache24\bin>httpd.exe -t
    Syntax OK
    # 重启
    D:\...\Apache24\bin>httpd -k restart

可以看到php已经成功解析

image

Apache加载PHP配置文件

  1. 将php.ini-development原地复制一份,改名为php.ini

  2. Apache配置文件添加php配置文件路径

    1
    2
    3
    4
    5
    6
    7
    8
    9
    #加载php配置文件,目录到php.ini所在目录即可
    PHPIniDir 'D:/DevelopTools/php-8.0.11'

    # 进入Apache24/bin
    # 查看语法是否正确
    D:\...\Apache24\bin>httpd.exe -t
    Syntax OK
    # 重启
    D:\...\Apache24\bin>httpd -k restart
  3. 查看配置文件是否已加载

    1
    2
    3
    4
    <?php
    echo "hello";
    phpinfo();
    ?>

    Loaded Configuration File处看到已经加载了配置文件

    image

  4. 时区设定

    1
    2
    3
    # php.ini
    date.timezone = PRC
    # 重启Apache

    可以看到时区已经设定为中国时区

    image

  • 注意1:由于php的配置文件被加载在Apache中,因此每次对php.ini配置文件的修改都要重启Apache才会生效
  • 注意2:配置文件中的路径要使用斜杠而不是反斜杠!如果直接从电脑复制路径默认是反斜杠,反斜杠会导致加载不了路径!

PHP+MySQL

MySQL安装配置就不赘述了…

PHP加载MySQL扩展

  • 修改php.ini

    1
    2
    3
    4
    # 找到这一行,去掉分号注释
    extension=mysqli
    # 增加扩展路径
    extension_dir = "D:/DevelopTools/php-8.0.11/ext"
  • 重启Apache

  • 检查php环境:phpinfo()

    可以看到已加载mysql模块

    image

配置虚拟主机

  • Apache 配置文件httpd.conf

    1
    2
    3
    4
    5
    6
    # 包含虚拟主机配置文件
    Include conf/extra/httpd-vhosts.conf
    # 加载模块,这是Apache2.4的特性,它使用了mod_authz_hosts实现访问控制,同时提供mod_access_compat兼容旧语句
    LoadModule access_compat_module modules/mod_access_compat.so
    # 没有上面这行会报错
    Invalid command 'Order', perhaps misspelled or defined by a module not included in the server configuration
  • Apache 虚拟主机配置文件../Apache24/conf/extra/httpd-vhosts.conf

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    # 注释掉其他两个没用的,只剩一个
    <VirtualHost *:80>
    # 本机目录
    DocumentRoot 'D:/Programming/php/www/myTest'
    # 虚拟域名
    ServerName www.myTest.com
    # 访问控制
    <Directory "D:/Programming/php/www/myTest">
    Order Deny,Allow
    Deny from all
    Allow from all
    # 列表显示(开发环境),访问根目录时不会报403
    Options Indexes FollowSymLinks
    # 指定默认访问文件(访问根目录时跳转)
    DirectoryIndex index.html index.htm index.php
    </Directory>
    </VirtualHost>
  • DNS解析:修改hosts文件,添加一行:127.0.0.1 www.myTest.com

  • 访问 www.myTest.com,可以看到成功解析

    image

  • 当配置完成后会发现访问localhost也会跳转到这里,此时只要再多配一个虚拟主机即可

到这里就完成所有配置了,关闭Apache服务

1
2
3
D:\...\Apache24\bin>httpd -k stop
The 'Apache2.4' service is stopping.
The 'Apache2.4' service has stopped.