Apache配置(Apache与PHP联系)

版权声明:未经同意,不得随意转载转载 https://blog.csdn.net/lucky541788/article/details/82919332

以wampserver为例:
httpd-vhosts.confhttpd.confD:\wamp64\bin\apache\apache2.4.23\conf
里面内容若是改错了,在original中复原(复制粘贴到错的位置)
在这里插入图片描述
注意:配置文件中的行首#是指注释

监听端口

监听端口可以随意修改为任意一个未被其他程序监听的端口,可以通过设置配置文件httpd.conf中的Listen指令后面的数字修改

Listen 80

网站根目录

  • 网站根目录就是存放我们网站文件的最顶层目录,通常url中域名后面的第一个斜线对应的就是网站根目录
  • 默认文档指的是我们在访问某一个目录时(没有指定具体的文件),默认访问的文件叫做默认文档
    注:动态网站情况会比较特殊,需要单独考虑,不一定是这个规则。

默认 Apache 的网站根目录是安装目录中的 htdocs 文件夹,为了方便对网站文件的管理,一般我们会将其设置在一个自定义目录中(如果你不介意其实不修改也无所谓)。
如果需要设置网站根目录,可以通过修改配置文件 httpd.conf 中的网站根目录选项切换。
以下例子修改到 D:/www 目录下

DocumentRoot "E:/desk/github/github"
<Directory "E:/desk/github/github">

默认文档

当客户端访问的是一个目录而不是具体文件时,服务端默认返回这个目录下的某个文档(文件),这个文档就称之为默认文档
配置文件 httpd.confDirectoryIndex ,默认文档可以配置多个(有前到后依次去找,找到为止,如果没找到任何一个则启用目录浏览)

<IfModule dir_module>
    DirectoryIndex index.php index.php3 index.html index.htm
</IfModule>
index.php index.php3 index.html index.htm都是默认文档

禁止启用默认文档(一般公司为了文件保密,不让别人看到)
删除 Option 中的 Indexes

<Directory "E:/desk/github/github">
	...
    Options +Indexes +FollowSymLinks +Multiviews
    ...
</Directory>

虚拟主机

如果一台机器上只有一个网站的话,没有任何问题,但是如果想要在一台机器上部署多个站点,就必须通过配置虚拟主机的方式解决。

  • 由于后期对虚拟主机的配置操作非常常见,所以我们一般将虚拟主机的配置单独放到一个配置文件中,然后在主配置文件中引入,避免破坏主配置文件中的其他配置。
  • Include conf/extra/httpd-vhosts.conf 配置的作用就将另外一个配置文件引入(使其生效)

具体的操作方式就是在主配置文件 httpd.conf 取消注释

# Virtual hosts
Include conf/extra/httpd-vhosts.conf

然后找到 Apache 的虚拟主机配置文件httpd-vhosts.conf,添加如下的虚拟主机配置节点,然后重新启动 Apache。(以后这两个地址的文件可直接输入对应 ServerName 进入,而输入localhost进入httpd.conf中定义的地址E:/desk/github/github
注:第一次浏览器输入自定义域名,可能弹出搜索内容,可以输入:http://ServerName正确访问

<VirtualHost *:80>
    # 域名
	ServerName practice
	# 根目录
	DocumentRoot E:/desk/github/github/QD-practice
	# 字典
	<Directory  "E:/desk/github/github/QD-practice">
		Options +Indexes +Includes +FollowSymLinks +MultiViews
		AllowOverride All
		Require local
	</Directory>
</VirtualHost>

<VirtualHost *:80>
    # 域名
	ServerName project
	# 根目录
	DocumentRoot E:/desk/github/github/QD-project
	# 字典
	<Directory  "E:/desk/github/github/QD-project">
		Options +Indexes +Includes +FollowSymLinks +MultiViews
		AllowOverride All
		Require local
	</Directory>
</VirtualHost>

如果真的要使用projectpractice域名的话,就只能通过修改 hosts (地址:Windows:C:\Windows\System32\drivers\etc macOS:\etc)文件达到目的,原因很简单:这个域名不是我们自己的,我们没有办法修改这个域名在公网上的 DNS。

注意:

  • 如果使用了虚拟主机,则默认必须全部使用虚拟主机,即之前的默认网站也必须通过虚拟主机方式配置,否则访问不到。参考:http://skypegnu1.blog.51cto.com/8991766/1532454
  • 如果虚拟主机的端口使用的不是 80 ,则需要在主配置文件中添加一个对这个端口的监听
# localhost name resolution is handled within DNS itself.
#	127.0.0.1       localhost
#	::1             localhost

127.0.0.1 project
127.0.0.1 practice

配置 PHP 支持

PHP 文件的扩展名就是 .php 我们可以尝试在刚刚配置的网站中添加一个扩展名为 php 的文件,具体步骤

  • 在服务器上安装 PHP
  • 解压 php 到纯英文路径目录中
  • 在 Apache 中添加支持 PHP 的配置
  • 在 Apache 添加 PHP 处理模块
#LoadModule watchdog_module modules/mod_watchdog.so
#LoadModule xml2enc_module modules/mod_xml2enc.so

#在引号中引入php文件地址
LoadModule php5_module "${INSTALL_DIR}/bin/php/php5.6.25/php5apache2_4.dll"
  • <IfModule mime_module> 节点中添加 .php 扩展名解析支持
    #
    # If the AddEncoding directives above are commented-out, then you
    # probably should define those extensions to indicate media types:
    #
    AddType application/x-compress .Z
    AddType application/x-gzip .gz .tgz
    AddType application/x-httpd-php .php
    AddType application/x-httpd-php .php3

默认文档配置节点 <IfModule dir_module> 中添加 index.php
默认文档指的是在访问一个目录而不是具体文件名时,默认执行的文件名

<IfModule dir_module>
    DirectoryIndex index.php index.php3 index.html index.htm
</IfModule>

重启Apache

Apache 与 PHP

他们两者各自有各自负责的领域,各自的职责,但是我们在使用 PHP 做动态网站开发时,两者就会产生联系
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/lucky541788/article/details/82919332