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 | Define SRVROOT "D:/DevelopTools/Apache-httpd-2.4.51-win64-VS16/Apache24" |
- ServerRoot
- 服务器位置,设置为apache在本机的位置
- DocumentRoot
- 作用:确定服务器上访问的位置,即网站文件夹所在位置
- <Directory “”>
- 作用:设置可访问路径,与DocumentRoot一致即可
- ServerName
- 作用:方便用户使用名字访问对应网站,给文件夹对应的取一个别名
- 去掉注释,端口可以去掉
- Listen
- 作用:设置监听端口
- C:\Windows\System32\drivers\etc\hosts
- DNS解析,增加条目
127.0.0.1 localhost
- DNS解析,增加条目
启动服务
配置完成后进入安装目录的bin目录下,用管理员身份打开cmd
1 | # 检查配置是否成果 |
PHP环境搭建
官网下载地址:https://windows.php.net/download/
下载压缩包后解压缩
根目录下的php.exe即为php解释器,命令行运行php.exe -f 文件名
即可解析php文件
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已经成功解析
Apache加载PHP配置文件
将php.ini-development原地复制一份,改名为php.ini
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查看配置文件是否已加载
1
2
3
4
echo "hello";
phpinfo();在Loaded Configuration File处看到已经加载了配置文件
时区设定
1
2
3# php.ini
date.timezone = PRC
# 重启Apache可以看到时区已经设定为中国时区
- 注意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模块
配置虚拟主机
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,可以看到成功解析
当配置完成后会发现访问localhost也会跳转到这里,此时只要再多配一个虚拟主机即可
到这里就完成所有配置了,关闭Apache服务
1 | D:\...\Apache24\bin>httpd -k stop |