设为首页 收藏本站
查看: 1198|回复: 0

[经验分享] 4.Apache和PHP结合 Apache默认虚拟主机

[复制链接]

尚未签到

发表于 2018-11-17 13:47:00 | 显示全部楼层 |阅读模式
  [toc]

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

11.14 ~11.5 配置Apcahe(httpd)支持PHP

1.Apache(httpd)的主配置文件:/usr/local/apache2.4/conf/httpd.conf,编辑该文件
  

[root@xavi ~]# vim /usr/local/apache2.4/conf/httpd.conf  

2.修改配置文件前,为何要修改ServerName
  

[root@xavi ~]# /usr/local/apache2.4/bin/apachectl restart
  
AH00558: httpd: Could not>  
httpd not running, trying to start
  
/usr/local/apache2.4/bin/apachectl: 行 79:  2759 段错误               (吐核)$HTTPD -k $ARGV
  

2.1 把ServerName www.example.com:80前的#去除
  fg返回上一条命令
  修改它的目的是,允许所有请求,否则我们访问时回报403错误。
  

[root@xavi ~]# fg  
vim /usr/local/apache2.4/conf/httpd.conf
  

DSC0000.jpg


2.2 再次启动/usr/local/apache2.4/bin/apachectl restart,失败是因为有两个
  

[root@xavi ~]# /usr/local/apache2.4/bin/apachectl restart  
httpd not running, trying to start
  
/usr/local/apache2.4/bin/apachectl: 行 79:  2827 段错误               (吐核)$HTTPD -k $ARGV
  

  回到vim /usr/local/apache2.4/conf/httpd.conf,找到79行,把句首加上#,但是任然报错,想起文档最后启用了两个PHP,应该禁止一个
DSC0001.jpg


2.3 先关闭httpd,然后vim修改,再启动,否则报错:httpd not running, trying to start
  

[root@xavi ~]# /usr/local/apache2.4/bin/apachectl restart  
httpd not running, trying to start
  

3.启动httpd,查看是否启动成功:netstat -lnp |grep httpd
  

[root@xavi ~]# /usr/local/apache2.4/bin/apachectl stop  
[root@xavi ~]# vim /usr/local/apache2.4/conf/httpd.conf
  
[root@xavi ~]# /usr/local/apache2.4/bin/apachectl start
  

  以下说明已经启动成功
  

[root@xavi ~]# netstat -lnp |grep httpd  
tcp6       0      0 :::80                   :::*                    LISTEN      3163/httpd
  

4. 修改denied

4.1为什么要修改,修改前,访问虚拟机IP
DSC0002.jpg


4.2 排查这个IP地址是否ping通
DSC0003.jpg


4.3 在看看80端口是否通,结果没有telent
DSC0004.jpg



  • 找到telent
DSC0005.jpg

DSC0006.jpg

DSC0007.jpg

DSC0008.jpg

  此处暂停,不成功,有可能和之前课程里的iptables设置有关系。

/usr/local/apache2.4/bin/apachectl start这句启动httpd80是关键
DSC0009.jpg

DSC00010.jpg


4-. 修改denied为granted,允许所有请求,防止访问时报403错误。
  

  AllowOverride none
  Require all denied
  

  

  

  AllowOverride none
  Require all granted
  

  

5.增加:AddType application/x-httpd-php .php,增加和php相关的配置,可以解析的php
  

AddType application/x-compress .Z  
AddType application/x-gzip .gz .tgz
  

  
AddType application/x-compress .Z
  
AddType application/x-gzip .gz .tgz
  
AddType application/x-httpd-php .php
  

6.修改为DirectoryIndex index.html index.php 访问网址时不需输入
  

  DirectoryIndex index.html
  

  

  

  DirectoryIndex index.html index.php
  

  

DSC00011.jpg

DSC00012.jpg


测试LAMP是否成功

1. 测试httptd配置文件是否正确:/usr/local/apache2.4/bin/apachectl -t
  

[root@xavi ~]# /usr/local/apache2.4/bin/apachectl -t  
Syntax OK
  

  正确的则显示为 “Syntax OK”,否则继续检查修改httpd配置文件。

1.2如果修改完成后,重新加载:/usr/local/apache2.4/bin/apachectl graceful

2.测试是否正确解析PHP
  编写一个测试脚本,如下:
  

[root@xavi ~]# vim /usr/local/apache2.4/htdocs/test.php //写入如下内容  

  

DSC00013.jpg


2.1 注释掉 #AddType application/x-httpd-php .php,然后检查编辑有无错误,然后重新加载,解析失败
  

[root@xavi ~]# vim /usr/local/apache2.4/conf/httpd.conf  
[root@xavi ~]# /usr/local/apache2.4/bin/apachectl -t
  
Syntax OK
  
[root@xavi ~]# /usr/local/apache2.4/bin/apachectl graceful
  

  只能显示源代码了,无法解析
DSC00014.jpg


2.4 出现源代码是,要从apache配置文件入手检查

第一项: /usr/local/apache2.4/bin/apachectl -M,看有没有php5_module (shared)这个模块

第二项:[root@xavi ~]# ls /usr/local/apache2.4/modules/libphp5.so
  /usr/local/apache2.4/modules/libphp5.so

第三项,文件存在但在httpd配置中没有loadmoudle也是不行的
DSC00015.jpg


第四项:AddType application/x-httpd-php .php
DSC00016.jpg


3. index.php
  很多php架构的网站其网址后缀都有index.php
DSC00017.jpg


3.1之前it works的由来:解析了index.html
  

[root@xavi ~]# ls /usr/local/apache2.4/htdocs/  
index.html  test.php
  

用php7做测试

1.修改httpd配置文件 vim /usr/local/apache2.4/conf/httpd.conf
DSC00018.jpg


2.检查语法错误,重新加载配置
  

[root@xavi ~]# /usr/local/apache2.4/bin/apachectl -t  
Syntax OK
  
[root@xavi ~]# /usr/local/apache2.4/bin/apachectl graceful
  

DSC00019.jpg


11.6 设置httpd默认虚拟主机

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


1.Windows下的hosts作用

  hosts文件是一个没有扩展名的系统文件,它的主要作用是能加快域名解析,还可以屏蔽网站等。
  windows的hosts

DSC00020.jpg


1.1 windows xp/2003/vista/2008/7/8用户HOSTS文件是在“c:\windows\system32\drivers\etc,
  注意这个文件一定是在系统盘,如果你的系统在D盘请自行修改前面的盘符。如下图所示
DSC00021.jpg

  在hosts下增加一下代码
DSC00022.jpg


1.2 用windows下的cmd下,ping刚才输入的IP和网址,都可以ping通
DSC00023.jpg

  把刚才编辑的ip和网站都用#号注释掉,ping网址时显示的是公网的ip地址,而不是刚才虚拟试验机的ip
DSC00024.jpg


1.3 保存之前在hosts的编辑内容(IP和网址),打开浏览器,输入网址,显示itworks
DSC00025.jpg

  这里需要注意的是打开httpd服务:
  

[root@xavi ~]# /usr/local/apache2.4/bin/apachectl start  

  同样也可访问test.php
DSC00026.jpg


2.编辑httpd配置文件
  

[root@xavi ~]# vim /usr/local/apache2.4/conf/httpd.conf  

2.1在文件内容中搜索/extra,找到虚拟主机配置文件,然后把注释符去掉


  今天再重新看笔记的时候发现到这里错了:昨天的报错就有httpd-vhosts
  

AH00526: Syntax error on line 36 of /usr/local/apache2.4/conf/extra/httpd-manual.conf:  



3. 编辑虚拟主机配置文件/usr/local/apache2.4/conf/extra/httpd-vhosts.conf
  

[root@xavi ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf  


  将其内容编辑为:
  

                                     //每个VirtualHost代表一个主机,一个主机代表一个网站  #ServerAdmin webmaster@dummy-host.example.com     //定义管理员的邮箱,作用不大可以删除
  DocumentRoot "/data/wwwroot/abc.com"                  //指定网站的根目录在哪
  ServerName abcd.com                                                   //定义网站名称,只能写一个
  ServerAlias www.abcd.com www.123.com                                             //设置网站别名,支持多个网站
  ErrorLog "logs/abcd.com-error_log"       //错误日志,保存和虚拟主机网站一样的名字方便读取
  CustomLog "logs/abcd.com-error_log" common
  

  

3.1 虚拟主机生效后,原Apache配置文件中的默认主机(www.example.com 192.168.)就会失效。
  

  

  DocumentRoot "/data/wwwroot/abcd.com"
  ServerName abcd.com
  ServerAlias www.abcd.com www.123.com
  ErrorLog "logs/abcd.com-error_log"
  CustomLog "logs/abcd.com-access_log" common
  

  

  

  

  DocumentRoot "/data/wwwroot/xavi.com"
  ServerName xavi.com
  iServerAlias www.example.com
  ErrorLog "logs/xavi.com-error_log"
  CustomLog "logs/xavi.com-access_log" common
  

  

  检查错误:
  

[root@xavi ~]# /usr/local/apache2.4/bin/apachectl -t  
Syntax OK
  

3.2 创建和虚拟主机对应的站点根目录
  

[root@xavi ~]# mkdir /data/wwwroot/  
[root@xavi ~]# mkdir /data/wwwroot/abcd.com
  
[root@xavi ~]# mkdir /data/wwwroot/xavi.com
  



3.3在对应的站点根目录下创建index.php,vim
  

[root@xavi ~]# vim /data/wwwroot/abcd.com/index.php  

  

  

  也可简单编辑php代码,不加结尾

  

[root@xavi ~]# vim /data/wwwroot/abcd.com/index.php  
[root@xavi ~]# vim /data/wwwroot/xavi.com/index.php
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-636289-1-1.html 上篇帖子: 40次课( Apache用户认证、域名跳转、Apache访问日志) 下篇帖子: 11.18 Apache用户认证;11.19-11.20 域名跳转(上下);11.21 Apache
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表