Apache和PHP结合,Apache默认虚拟主机

Stella981
• 阅读 903

Apache和PHP结合:

Apache和PHP结合,Apache默认虚拟主机

      虽然我们已经安装了mysql apache php但是我们一直没有把这些服务全部整合到一起组成咱们的LAMP。现在我们就开始:

1. httpd主配置文件:

    (一)ServerName   

    (二)Require all denied

    (三)AddType application/x-httpd-php .php

    (四)DirectoryIndex index.html index.php

(一)有时候我们在启动apache(httpd)服务的时候,发现有个警告(并不是错误)如何取消呢?

[root@zhdy-02 ~]# /usr/local/apache2.4/bin/apachectl start

AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 202.102.110.203. Set the 'ServerName' directive globally to suppress this message

进入编辑httpd:vim /usr/local/apache2.4/conf/httpd.conf

去掉前面的“#”即可!Apache和PHP结合,Apache默认虚拟主机

当我们使用外部主机访问我们配置的httpd,发现如下报错: 

Apache和PHP结合,Apache默认虚拟主机

  • 首先我们先确认下IP是否可以ping通!
  • 再次telnet一下站点的80端口.
  • 检查服务器内的iptables,要么对所有的80端口的数据包全部放行,要么就禁掉firewall

[root@zhdy-02 ~]# iptables -I INPUT -p tcp --dport 80 -j ACCEPT    放行80端口

然后再次访问!

Apache和PHP结合,Apache默认虚拟主机

(二)有时候也会有这种情况:出现 403 forbidden

搜索 /Require,更改Denied 为如下granted 

Apache和PHP结合,Apache默认虚拟主机

每次配置完成之后建议一定要使用如下命令去检查有没有错误

/usr/local/apache2.4/bin/apachectl -t     可以检查配置文件语法是否错误

Apache和PHP结合,Apache默认虚拟主机

显示Syntax即没有问题!! 然后再次加载配置文件!

/usr/local/apache2.4/bin/apachectl graceful     =重新加载配置文件并不会重启服务   graceful

(三)因为需要支持PHP所以我们要在配置文件中增加一行与PHP相关的配置:

搜索 /AddType, 增加一行如下,注意点前面的空格!(如果不增加则PHP无法解析)

AddType application/x-httpd-php .php

Apache和PHP结合,Apache默认虚拟主机

(四)增加一个索引页面

搜索 /Index, 在原有基础上增加一个index.php

Apache和PHP结合,Apache默认虚拟主机

然后再次的检查,加载即可!

Apache和PHP结合,Apache默认虚拟主机

为了验证我们的PHP支不支持解析我们需要一个测试页

然后我们编写一个测试页:vim /usr/local/apache2.4/htdocs/1.php

Apache和PHP结合,Apache默认虚拟主机

再次输入IP地址例:192.168.209.128 就可以显示一个很规整的PHP页面信息,如果不可以加载,分析如下:

/usr/local/apache2.4/bin/apachectl -M 确认下没有加载PHP模块,如果没有输入如下去查看一下

ls /usr/local/apache2.4/modules/libphp5.so

/usr/local/apache2.4/modules/libphp5.so

Apache和PHP结合,Apache默认虚拟主机

如果还是不可以那就检查一下httpd配置文件中有没有加载

vim /usr/local/apache2.4/conf/httpd.conf    里面是否加入了php解析行

Apache和PHP结合,Apache默认虚拟主机

小提示:

当我们需要查找一个已经输入的命令的时候,可以尝试 ctrl+r 然后输入关键字即可查找!

Apache默认虚拟主机:

Apache和PHP结合,Apache默认虚拟主机

Windows系统hosts管理

Windows系统中hosts位置“C:\Windows\System32\drivers\etc\hosts”。
用记事本打开该文件:

Apache和PHP结合,Apache默认虚拟主机

Apache和PHP结合,Apache默认虚拟主机

说明: 在此可以自定义匹配本地IP和域名,目的是添加临时访问地址(在DNS未生效的时候使用)。

添加虚拟主机

在hosts文件中添加“192.168.8.131 www.adai.com”即可将本地虚拟主机添加到Windows系统,访问该域名时会自动解析到本地虚拟主机“ServerName www.example.com:80”。

LinuxApache虚拟主机管理

在物理机访问的域名“www.adai.com”并未在虚拟机Apache配置文件中定义,虚拟机中只定义了“ServerName www.example.com:80”一个域名,该域名即为Apache的默认主机,此时通过任何一个绑定该虚拟机IP的域名进行访问都会跳转到该主机。
因为一台服务器可以跑多个域名,为了方便管理,需要对虚拟主机进行配置

配置虚拟主机

  • 编辑Apache配置文件: vim /usr/local/apache2.4/conf/httpd.conf
  • 搜索 Virtual hosts  然后找到这段配置 把注释的#号去掉Include conf/extra/httpd-vhosts.conf

Apache和PHP结合,Apache默认虚拟主机

虚拟主机配置文件:

vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf

<VirtualHost *:80>
    ServerAdmin admin@aminglinux.com     =  可以直接删除不用定义邮箱
    DocumentRoot "/data/wwwroot/aming.com"    =  定义网站根目录
    ServerName aming.com     =  定义网站名称
    ServerAlias www.aming.com      =  定义网站别名,可以写多个中间用空格分开
    ErrorLog "logs/aming.com-error_log"     =   定义网站错误日志
    CustomLog "logs/aming.com-access_log" common     =  定义网站访问日志

<VirtualHost *:80>
    DocumentRoot "/data/wwwroot/www.123.com"
    ServerName www.123.com

Apache和PHP结合,Apache默认虚拟主机

定义完后的配置文件 ↓

Apache和PHP结合,Apache默认虚拟主机  

然后就需要创建一个网站目录以及根目录下面的其他目录

mkdir /data/wwwroot/     =创建网站主目录

mkdir /data/wwwroot/abc.com     =创建根目录abc.com

mkdir /data/wwwroot/111.com       =  创建根目录111.com

mkdir /data/wwwroot/abc.com/index.php     =  给对应根目录下面写一个PHP测试文件

mkdir /data/wwwroot/111.com/index.php     =   给对应根目录下面写一个PHP测试文件

Apache和PHP结合,Apache默认虚拟主机

然后检测php测试文件的语法是否错误,如果没问题那么重启服务。

Apache和PHP结合,Apache默认虚拟主机

虚拟主机测试

在此使用浏览器和curl命令分别进行测试。

如果不在虚拟机中进行本地域名配置(hosts),在进行ping命令测试虚拟主机域名时会访问到外网。

Apache和PHP结合,Apache默认虚拟主机

如果想在访问“abc.com”时指向到本地虚拟机IP,可以在/etc/hosts文件中指定域名,或者使用curl命令进行访问,如下:

eg:

  • curl -x 指定访问IP和端口

Apache和PHP结合,Apache默认虚拟主机

注意: 此时访问所有未定义的域名都会将访问地址指向到默认虚拟主机,因为已经自定义添加了虚拟主机,所以此时的默认虚拟主机为配置文件“httpd-vhosts.conf”中的第一个虚拟主机(在此为abc.com),效果如下:

Apache和PHP结合,Apache默认虚拟主机

打开虚拟主机文件以后那么http主配置文件失效。

注: 使用浏览器访问本地虚拟主机IP时会将IP指向到默认虚拟主机,即 abc.com。(如果想回到原来的地址那么把虚拟主机配置文件中的#号加上注释掉配置文件即可)

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
4个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
PHP创建多级树型结构
<!lang:php<?php$areaarray(array('id'1,'pid'0,'name''中国'),array('id'5,'pid'0,'name''美国'),array('id'2,'pid'1,'name''吉林'),array('id'4,'pid'2,'n
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
10个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这