十周第二次课
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了十周第二次课相关的知识,希望对你有一定的参考价值。
11.14/11.15 Apache和php结合1 配置httpd支持php
httpd主配文件:
/usr/local/apache2/conf/httpd.conf
2 vim /usr/local/apache2/conf/httpd/conf
[email protected] ~]# vim /usr/local/apache2.4/conf/httpd.conf
//修改以下4个地方 ServerName 开启 Require all denied
[[email protected] ~]# vim /usr/local/apache2.4/conf/httpd.conf
AddType application/x-httpd-php.php
在此添加“AddType application/x-httpd-php .php”,意思是允许PHP服务解析该服务器。
Directorylndex index.html index.php 增加索引页
3 /usr/local/apache2.4/bin/apachectl -t //测试语法
[[email protected] ~]# /usr/local/apache2.4/bin/apachectl -t
Syntax OK
4 /usr/local/apache2.4/bin/apachectl start //启动服务
[[email protected] ~]# /usr/local/apache2.4/bin/apachectl graceful
//注:该命令只是加载配置文件的内容
5 netstat -lntp //查看是否有监听端口
[[email protected] ~]# iptables -I INPUT -p tcp --dport 80 -j ACCEPT
//防火墙添加允许规则
6 curl localhost //模拟访问
7 vim /usr/local/apache2.4/htodcs/1.php //增加如下内容
[[email protected] ~]# vim /usr/local/apache2.4/htodcs/1.php
<?php
echo 123;
?>
[[email protected] ~]# vim /usr/local/apache2.4/htdocs/phpinfo.php
<?php
phpinfo();
?>
#可以解析PHP代码,如果不支持,访问该文件时会显示源代码。
如果服务器无法解析PHP代码: 解决方法: 1. 检查Apache是否加载PHP模块 2. 检查系统中有没有PHP模块 3. 检查Apache配置文件中是否有错误或者没有加载PHP的配置
[[email protected] ~]# vim /usr/local/apache2.4/htdocs/1.php
#phpinfo() 在访问该地址时,直接打印PHP的相关信息
8 curl localhost/test.php
[[email protected] ~]# curl localhost/1.php
123
11.16/11.17 Apache默认虚拟主机
- 一台服务器可以访问多个网站,每个网站都是一个虚拟机主机
- 概念:域名(主机名)、DNS、解析域名、hosts
- 任何一个域名解析到这台机器,都可以访问的虚拟主机就是默认虚拟主机
- 打开vhost配置,httpd的servername,document失效
vim /usr/local/apache2/conf/httpd.conf //搜索httpd-vhost,去掉# 配置Apache配置文件,取消注释掉的虚拟主机参数
[[email protected] ~]# vim /usr/local/apache2/conf/conf/httpd.conf
# Virtual hostsInclude conf/extra/httpd-vhosts.conf
# Local access to the Apache HTTP Server Manual
#Include conf/extra/httpd-manual.conf
# Distributed authoring and versioning (WebDAV)
#Include conf/extra/httpd-dav.conf:wq
1 编辑虚拟主机配置文件
vim /usr/local/apache2/conf/extra/httpd-vhosts.conf //改为如下
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "/home/wwwroot/abc.com"
ServerName abc.com
ServerAlias www.abc.com www.123.com
ErrorLog "logs/abc.com-error_log"
customLog "logs/abc.com-access_log" common
</VirtualHost>
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "/home/wwwroot/111.com"
ServerName 111.com
ServerAlias www.123.cn
ErrorLog "logs/111.com-error_log"
CustomLog "logs/111.com-access_log" common
</VirtualHost>
- 此时即定义了一个网站,定义网站的核心参数即为
- DocumentRoot(网站根目录)
- ServerName(域名)
- 注意: 虚拟主机生效后,原Apache配置文件中的默认主机(www.example.com ~ 192.168.0.173)就会失效(在此用www.example.com ~ 111.com进行验证)
- 如果在windows系统下测试,需要配置hosts,用文档编辑器编辑,推荐notepad++
hosts路径:C:\Windows\System32\drivers\etc\hosts - 如果是linux,需要编辑hosts,vim /etc/hosts
2 修改目录权限
<Directory />
AllowOverride none
Require all denied
</Directory>
#如果不想对上面做设置,那就需要在下面对虚拟机的文件目录做设置,不然403
<Directory /home/wwwroot>
AllowOverride none
Require all granted
</Directory>
3 测试
[[email protected] home]# curl -x127.0.0.1:80 abc.com
abc.com
[[email protected] home]# curl -x127.0.0.1:80 111.com
111.com
[[email protected] home]# curl -x127.0.0.1:80 www.abcd.com
abc.com
[[email protected] home]# curl -x127.0.0.1:80 123.com
abc.com
[[email protected] home]# curl -x127.0.0.1:80 111.com
111.com
[[email protected] home]# curl -x127.0.0.1:80 localhost
abc.com
[[email protected] home]# curl -x127.0.0.1:80 www.12.cn
abc.com
[[email protected] home]# curl -x127.0.0.1:80 www.123.cn
111.com
[[email protected] home]# curl -x127.0.0.1:80 www.111.com
abc.com
[[email protected] home]# curl -x127.0.0.1:80 www.123.cn
111.com
[[email protected] home]#
- 你输入任何一个域名都指向到192.168.0.173它都会访问到htdocs下面
- 你访问什么域名 ,只要揭晓到这个ip,都会访问到abc.com 默认的虚拟主机就是abc.com
- 主机配置文件打开,里面可以定义多个host,每一个virtural host 都docunmentroot ,以及servername ,每一个host 代表一个站点,代表一个虚拟主机
- 虚拟主机,无论任何域名解析到这个ip 上,都会去访问默认虚拟主机,
以上是关于十周第二次课的主要内容,如果未能解决你的问题,请参考以下文章