关于apache与php的理解

apache与php

当客户端请求www.test.com/1.php的时候,apache监听80端口,收到客户端的请求后发现是PHP文件,将该文件先给PHP解释,解释完之后渲染成html给apache服务器,apache再返回给客户端。

vhost与hosts文件

hosts文件在本机代表本机dns 格式 IP DOMAIN,位置/Windows/system32/drivers/etc/hosts文件在本机代表本机dns
vhost文件代表了apache配置的虚拟网站。即同一主机的多个网站,需要配置根目录,域名,端口等信息。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<VirtualHost *:80>
DocumentRoot "E:/phpstudy_pro/WWW/dura.box"
ServerName dora.box
ServerAlias
FcgidInitialEnv PHPRC "E:/phpstudy_pro/Extensions/php/php7.3.4nts"
AddHandler fcgid-script .php
FcgidWrapper "E:/phpstudy_pro/Extensions/php/php7.3.4nts/php-cgi.exe" .php
<Directory "E:/phpstudy_pro/WWW/dura.box">
Options FollowSymLinks ExecCGI
AllowOverride All
Order allow,deny
Allow from all
Require all granted
DirectoryIndex index.php index.html error/index.html
</Directory>
ErrorDocument 400 /error/400.html
ErrorDocument 403 /error/403.html
ErrorDocument 404 /error/404.html
ErrorDocument 500 /error/500.html
ErrorDocument 501 /error/501.html
ErrorDocument 502 /error/502.html
ErrorDocument 503 /error/503.html
ErrorDocument 504 /error/504.html
ErrorDocument 505 /error/505.html
ErrorDocument 506 /error/506.html
ErrorDocument 507 /error/507.html
ErrorDocument 510 /error/510.html
</VirtualHost>

这里的域名dura.box其实我并没有注册,我这样写只是为了便捷访问。修改本地dns文件,添加记录 127.0.0.1 dura.box 然后cmd ipconfig/flushdns刷新本地dns缓存
重启apache服务,下次访问dura.box的时候就相当于访问根目录为E:/phpstudy_pro/WWW/dura.box/的网站。