一 apache和php结合
# vim /usr/local/apache2.4/conf/httpd.conf
位置1修改后如下图
域名修改后,可以解决下图的问题
位置2修改:
小知识-通过IP访问不到服务器时的检查方法:1、物理机ping对应IP 2、如果1是没问题的,那么则telnet对应IP的对应端口(windows中telnet默认没有打开,需要到控制面板-程序和功能-启用或关闭windows功能-选中telnet客户端并确认)
Linux默认80端口是关闭的,我们这时访问不到服务器上的网页,我们可以临时将80端口打开,如下
打开后,就能访问到服务器上的网页
但是有时候会出现403 fobbiden的报错,这个提示是因为httpd配置文件中的Require all denied
我们将上图中的denied改为granted
配置修改完成后,需要重新加载配置
# /usr/local/apache2.4/bin/apachectl -t //检查配置文件语法是否正确
# /usr/local/apache2.4/bin/apachectl graceful //重新加载配置文件,但不会重启服务
位置3修改后:
位置3增加如下内容:
此处是设置默认首页
下面我们来写一个测试php页面,看apache和php是否配结合OK
# vi /usr/local/apache2.4/htdocs/test.php
在这个php文件里面加入代码
<?php
phpinfo();
?>
保存退出后,不需要重启服务和配置,可以直接在浏览器中打开这个网页
出现上述页面则说明服务器上的php支持解析了,如果不支持解析,则会出现下图现象
遇到上图php不支持解析的现象,需要检查apache的配置文件:
1)# /usr/local/apache2.4/bin/apachectl -M //查看php5_module是否加载
如果未加载,需要查看/usr/local/apache2.4/modules/libphp5.so文件是否存在,如果存在,需要查看httpd配置文件中有没有加载libphp5.so的这一行配置,
2)还需要检查配置文件中是否写入AddType application/x-httpd-php .php或者写错
小技巧:使用ctrl+r 可以搜索命令历史
二 apache默认虚拟主机
网站根目录定义,由配置文件中的DocumentRoot参数定义
域名是ServerName
httpd配置文件一个主机只能对应一个域名,可以通过修改配置文件打开虚拟主机,方式为搜索vhost,去掉行首的#号,如下图
然后打开一个二级的配置文件
# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
框内内容表示一个虚拟主机,修改其中的网站根目录(DocumentRoot)和域名(ServerName),如果有多个域名解析到主机,就需要设置别名ServerAlias
将上述配置文件内容修改如下
随后创建对应目录或文件
随后测试配置文件语法正确性
# /usr/local/apache2.4/bin/apachectl -t
再重新加载配置文件
# /usr/local/apache2.4/bin/apachectl graceful
再来绑定虚拟主机和IP 端口号
方式一# vim /etc/hosts
方式二# curl -x192.168.75.136:80 abc.com
上图可以看到无论哪个域名访问绑定的这个主机,都是访问的abc.com,因abc.com是虚拟主机配置文件中的第一个主机,因此它属于默认虚拟主机
上图可以看出配置虚拟主机后原来httpd.conf配置文件中的域名、根目录等配置会失效,均以虚拟主机配置文件为准