Apache和PHP结合、Apache默认虚拟主机
5月28日任务
课程内容:
11.14/11.15 Apache和PHP结合
11.16/11.17 Apache默认虚拟主机
11.14/11.15 Apache和PHP结合
到目前为止虽然安装好了Apache、MySQL、PHP,但是还没有让他们结合在一起,虽然Apache调用了PHP作为它的模块,但是还没有做实验,还不知道是否能够解析PHP,所以还需要编辑一下Apache的也就是httpd的配置文件。
操作实例步骤如下:
[root@jimmylinux-002 ~]# /usr/local/apache2.4/bin/apachectl restart 重启服务时候出现的提示并非报错,而是一个警告信息,这个警告信息也是可以通过修改配置文件取消掉的。
[root@jimmylinux-002 ~]# vim /usr/local/apache2.4/conf/httpd.conf 修改以下4个地方
ServerName
Require all denied
AddType application/x-httpd-php .php
DirectoryIndex index.html index.php
修改好配置文件以后再重启服务 # /usr/local/apache2.4/bin/apachectl restart,如果出现以下报错,是因为配置文件中设置了PHP5和PHP7模块,把PHP7前面加上#注释掉即可。
重新启动服务已经没有之前的警告信息了
此时也可以通过IE访问虚拟机IP地址 192.168.52.129 是无法直接访问的,如果遇到这样的情况,首先我们要检查下IP地址是否可以ping通,如果可以ping通,可以使用Telnet看看是否能够远程 192.168.52.129 80 端口,默认Windows里面是没有安装Telnet的,可以在控制面板-->打开或关闭Windows功能,勾选Telnet客户端组件进行安装。
[root@jimmylinux-002 ~]# iptables -I INPUT -p tcp --dport 80 -j ACCEPT 可以使用命令方式打开80端口
这个时候再刷新IE浏览器就可以正常访问了
如果把配置文件改为Require all denied
可以使用这个命令/usr/local/apache2.4/bin/apachectl -t 检查语法是否正确,如果正确会显示“syntax ok” 如果配置故意写错,则会显示“tion”。
[root@jimmylinux-002 ~]# /usr/local/apache2.4/bin/apachectl graceful
改完之后需要重新加载配置文件,这个命令只是重新加载配置文件,并不会重启服务,即使配置文件有问题,也只是加载不成功而已,不会杀死进程。这个时候再刷新IE页面就不能够访问了
需要修改的第二个地方,把配置文件的Require all denied修改为Require all granted ,这是为了防止出现403 forbidden。
第三个地方,因为要支持PHP,所以要在配置文件中添加一行内容 AddType application/x-httpd-php .php
如果不增加这行的话,PHP无法解析。
第四个地方,在配置文件中添加一个索引页 index.php
通过上面的操作后可以验证下Apache是否支持解析PHP呢,可以写一个简单的脚本测试一下。
增加一个文件是不需要重启PHP的,在IE访问 192.168.52.129/1.php 可以正常访问并有如下截图内容就说明PHP支持解析了。
假如把配置文件的这一行AddType application/x-httpd-php .php 前面加一个#注释掉,再重新访问IE就会以源代码的方式显示出来。
如果遇到PHP不能够解析的情况,需要检查下Apache配置文件。第一、要检查是否加载php5这个模块,如果没有加载,要看看有没有这个文件,第二、如果有文件并没有显示,那么就需要检查配置文件有没有加载modules/libphp5.so,没有加载也是不能解析的,第三、检查配置文件是否有加这一行AddType application/x-httpd-php .php,第四、需要加index.php。
同样也可以使用php7版本进行解析,在配置文件中把php5加#注释掉,这样就是使用php7版本了。
/usr/local/apache2.4/bin/apachectl graceful 重新加载配置文件后刷新IE浏览器就可以看到是php7版本的内容
11.16/11.17 Apache默认虚拟主机
可以通过修改Windows的host文件指定IP和域名,在Apache的配置文件并没有定义,这个就叫Apache的默认主机,也就是说任何一个域名只要指向到这个IP,同样都可以访问到这个站点,这个站点就叫默认虚拟主机。
C:\Windows\System32\drivers\etc
修改成以下形式
重新访问IE页面就会出现以下界面,同样可以正常访问。
通过上面步骤操作好以后,就可以编辑httpd.conf主配置文件,并删除vhost这一行的注释#
编辑虚拟主机配置文件/usr/local/apache2.4/conf/extra/httpd-vhosts.conf
按照如下截图内容进行修改
然后创建对应的目录
vim /data/wwwroot/abc.com/index.php 需要在对应的站点根目录下创建一个配置文件
vim /data/wwwroot/111.com/index.php 另外一个也需要创建一个配置文件
定义好对应的站点根目录和配置文件后重新加载配置文件 /usr/local/apache2.4/bin/apachectl graceful
接下来测试一下虚拟主机
如果想在本机上访问abc.com,可以编辑host文件绑定,也可以使用curl命令。
无论访问什么域名,只要解析到这个IP上,都会访问这个网站对应的虚拟主机配置(这个虚拟主机配置就是abc.com)
总结:
1、如果在主配置文件中httpd.conf 打开了虚拟主机配置文件,把前面的#删除掉,这个时候虚拟主机配置文件生效,那么在httpd.conf定义的DocumentRoot以及ServerName失效。
2、虚拟主机配置文件一旦打开,它里面可以定义很多个VirtualHost,每个VirtualHost都有一个对应的DocumentRoot和ServerName,ServerName可以写多个,每一个VirtualHost都代表一个站点,都是一个虚拟主机,在虚拟主机里面有一个比较特殊的就是默认虚拟主机,所谓默认虚拟主机是指无论任何域名解析到这个IP上,都会去访问这个默认虚拟主机。
Apache和PHP结合、Apache默认虚拟主机的更多相关文章
- Linux centos7VMware Apache和PHP结合、Apache默认虚拟主机
一.Apache和PHP结合 httpd主配置文件/usr/local/apache2.4/conf/httpd.conf 启动报错 [root@davery ~]# /usr/local/apach ...
- apache禁止默认虚拟主机
禁止默认虚拟主机:作用使除特定域名外,其它的域名/ip无法访问此站点. 在虚拟主机配置文件中 即:/usr/local/apache2/conf/extra/httpd-vhosts.conf 将其中 ...
- 基于Apache在本地配置多个虚拟主机站点
简单的说,打开httpd.conf 在最后加入如下内容: <VirtualHost 127.0.0.2:80> DocumentRoot d:/AppServ/www2 Ser ...
- [转] linux学习第四十四篇:Nginx安装,Nginx默认虚拟主机,Nginx域名重定向
Nginx安装 进入存放源码包的目录: cd /usr/local/src 下载源码包: wget http://nginx.org/download/nginx-1.12.1.tar.gz 解压: ...
- Nginx安装、默认虚拟主机、Nginx用户认证和域名重定向
6月7日任务 12.6 Nginx安装12.7 默认虚拟主机12.8 Nginx用户认证12.9 Nginx域名重定向 扩展nginx.conf 配置详解 http://www.ha97.com/51 ...
- nginx的安装 、Nginx默认虚拟主机、nginx用户认证、nginx 域名重定向
1.nginx:官网:www.nginx.org 下载:wget -c http://nginx.org/download/nginx-1.14.0.tar.gz解压:tar -zxvf nginx ...
- LAMP 1.8默认虚拟主机
默认虚拟主机是为了解决别人域名恶心绑定自己的服务器ip,可导致服务器上的网站排名靠后,即干扰seo优化 我们访问指定的两个网站可以直接访问,ip也可以访问 打开配置文件 vim /usr/local/ ...
- nginx创建默认虚拟主机
创建默认虚拟主机配置文件作用:禁止任何人通过ip或未允许的域名访问web服务. 如:vim vhosts/default.conf server { listen 80 default; server ...
- Linux centosVMware Nginx安装、 默认虚拟主机、Nginx用户认证、Nginx域名重定向
一. Nginx安装 cd /usr/local/src wget http://nginx.org/download/nginx-1.12.1.tar.gz 版本在http://nginx.org/ ...
随机推荐
- Redis开发与运维:SDS
STRING 我们会经常打交道的string类型,在redis中拥有广泛的使用.也是开启redis数据类型的基础. 在我最最开始接触的redis的时候,总是以为字符串类型就是值的类型是字符串. 比如: ...
- [ASP.NET Core 3框架揭秘] 依赖注入[5]: 利用容器提供服务
毫不夸张地说,整个ASP.NET Core框架是建立在依赖注入框架之上的.ASP.NET Core应用在启动时构建管道以及利用该管道处理每个请求过程中使用到的服务对象均来源于依赖注入容器.该依赖注入容 ...
- 三分钟学会Redis在.NET Core中做缓存中间件
大家好,今天给大家说明如何在.NET Core中使用Redis,我们在想要辩论程序的好与坏,都想需要一个可视化工具,我经常使用的是一位国内大牛开发的免费工具,其Github地址为: https://g ...
- 最新JetBrainsPyCharm自动部署Python(Django,tornado等)项目至远程服务器
每次开发Python项目时,对于所有Python开发人员来说,最枯燥的不是修改代码,而是实时将自己的代码上传至远程服务器,进行测试或者部署,本人最初开发也是这样,通过使用Xshell 5,WinSCP ...
- day-5元组专区
*元组,元素不可被修改,不能被增加或者删除tupletu = (11,22,33,44)tu.count(22),获取指定元素在元组中出现的次数tu.index(22),索引22在元组中位置(左到右第 ...
- jdk 错误1316 指定账户已存在 与 jdk1.7安装和配置环境变量 与 jdk1.8与1.7版本的切换使用
问题: 安装JDK,提示错误信息:,指定的账号已存在. 原因: 安装JDK,相当于安装了一个软件,要使用系统的软件卸载功能卸载,不能只删除安装目录文件夹下的文件,如果只 ...
- java多线程与线程并发一:线程基础回顾
本文章内容整理自:张孝祥_Java多线程与并发库高级应用视频教程 线程简单来讲就是程序正在做的事情.多线程即一个程序同时做多件事情,一个线程就是一件事情. 在java中创建线程的方法有两种. 方法一是 ...
- 016.Kubernetes二进制部署所有节点kube-proxy
一 部署 kube-proxy kube-proxy 运行在所有节点上,它监听 apiserver 中 service 和 endpoint 的变化情况,创建路由规则以提供服务 IP 和负载均衡功能. ...
- [spark程序]统计人口平均年龄(HDFS文件)(详细过程)
一.题目描述 (1)请编写Spark应用程序,该程序可以在分布式文件系统HDFS中生成一个数据文件peopleage.txt,数据文件包含若干行(比如1000行,或者100万行等等)记录,每行记录只包 ...
- P4-verilog实现mips单周期CPU
最近对学习的掌控可能出现了问题,左支右绌,p2挂了,p2.p3.p4.p5每周在计组花的连续时间少了很多,学习到的东西也少了很多,流水线都还没真正开始写,和别人比落后了一大截,随笔自然就荒废了,我得尽 ...