水莹儿 发表于 2018-11-17 12:56:45

40.apache与php结合、Apache默认虚拟主机

一、apache与php结合


[*]首先打开本地的telnet客户端(测试端口使用)



  

/usr/local/apache2.4/bin/apachectl start //启动apache服务  


[*]修改apache配置文件
[*]因为之前加载了php5和php7,所以这里关闭其中一个,运行其中一个
  vim /usr/local/apache2.4/conf/httpd.conf      //修改以下4个地方

[*]ServerName 前面的#去掉
[*]Require all denied改为 Require all granted
[*]添加   AddType application/x-httpd-php .php
[*]  DirectoryIndex index.html   后加   index.php






[*]保存配置文件之后  /usr/local/apache2.4/bin/apachectl -t//测试语法是否正确
  /usr/local/apache2.4/bin/apachectl graceful//重新加载配置文件(无需重启apache)

  在浏览器输入主机地址看看是否进入

  无法连接
  首先测试是否可以ping通,然后测试80端口是否通

  经测试ip可以ping通,但是80端口不通,怀疑服务器防火墙没有打开80端口
  

iptables -nvL   //发现确实没有80端口  
iptables -I INPUT -p tcp --dport 80 -j ACCEPT//临时打开80端口
  

  这时候在cmd中telnet 192.168.127.133 80 出现黑窗口,证明80端口已经测通
  重新在浏览器输入IP地址



  

vim /usr/local/apache2.4/htdocs/test.php //增加如下内容  

  
  在浏览器中打开http://192.168.127.133/test.php

  成功显示php5的配置文件


[*]如果apache无法解析php,而是显示源代码,那么我们需要检查以下项目
[*]/usr/local/apache2.4/bin/apachectl-M检查php扩展是否加载,有无  /usr/local/apache2.4/modules/libphp5.so文件,确认是php问题还是apache配置问题

[*]检查apache配置  loadmodule是否加载php
  3.检查apache配置
  AddType application/x-httpd-php .php   是否添加
  4.检查apache配置
  DirectoryIndex index.html index.php    是否添加


二、Apache默认虚拟主机
  一台服务器可以访问多个网站,每个网站都是一个虚拟主机
  概念:域名(主机名)、DNS、解析域名、hosts
  任何一个域名解析到这台机器,都可以访问的虚拟主机就是默认虚拟主机
  

vim /usr/local/apache2.4/conf/httpd.conf   //搜索httpd-vhost,去掉#  


  

vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf //改为如下  

  
  DocumentRoot "/data/wwwroot/abc.com"
  ServerName abc.com
  ServerAlias www.abc.com
  ErrorLog "logs/abc.com-error_log"
  CustomLog "logs/abc.com-access_log" common
  
  
  DocumentRoot "/data/wwwroot/123.com"
  ServerName 123.com
  ServerAliaswww.123.comwww.456.com
  ErrorLog "logs/123.com-error_log"
  CustomLog "logs/123.com-access_log" common
  

  

/usr/local/apache2.4/bin/apachectl   –t  /usr/local/apache2.4/bin/apachectlgraceful
  

mkdir -p/data/wwwroot/abc.com//data/wwwroot/123.com/  
echo "abc.com" > /data/wwwroot/abc.com/index.html
  
echo "123.com" > /data/wwwroot/123.com/index.html
  

curl-x192.168.127.133:80 www.good.com   //这样会去访问www.abc.com/index.html  curl-x192.168.127.133:80 www.123.com   //访问www.123.com
  curl-x192.168.127.133:80 www.abc.com
  


  www.abc.com就是默认虚拟主机


页: [1]
查看完整版本: 40.apache与php结合、Apache默认虚拟主机