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

[经验分享] 4.12任务 apache结合php以及apache默认虚拟主机

[复制链接]

尚未签到

发表于 2018-11-17 12:31:11 | 显示全部楼层 |阅读模式
apache和php结合
  

虽然我们现在已经安装好了apache,mysql,php。但是我们还没有让他们结合起来,虽然apache调用了php作为它的一个模块,但我们还不知道他是否能解析php。这时我们还需要去编辑一下httpd的配置文件。  
它的配置文件是/usr/local/apache的全名名字/conf/httpd.conf
  

  [root@linletao-001 ~]# vim /usr/local/apache2.4/conf/httpd.conf
  在这里我们需要编辑几个地方
  1.ServerName
  在我们重启httpd的时候经常会遇到一下提示
  [root@linletao-001 ~]# /usr/local/apache2.4/bin/apachectl restart

  AH00558: httpd: Could not>  乍一看上去是一个报错,但其实是一个警告,看着很别扭,我们想要删掉他。我们可以搜索
  ServerName,然后将#ServerName www.example.com:80前面的“#”号删掉就可以。
  完成后我们重启httpd,然后出现了另一个错误提示
  [root@linletao-001 ~]# /usr/local/apache2.4/bin/apachectl start
  /usr/local/apache2.4/bin/apachectl: 行 79:  1399 段错误               $HTTPD -k $ARGV
  这是因为我们刚才在这里添加了两个php,我们只要在其中一个前面加一个“#”号注释掉就可以。
  LoadModule php5_module        modules/libphp5.so
  #LoadModule php7_module        modules/libphp7.so
  然后我们重启httpd,就不会出现提示了。
  2.Require all denied改成,Require all granted。如果不改这一行,我们是访问不到linux的ip的,他会提示我们检查服务器和防火墙,如果我们遇到这样的问题,首先应该查看我们的ip是否畅通。然后我们查看80端口是否畅通。先进入windows中的DOS模式,查看80端口是否打开,如果进入DOS后没有可以查找的命令,我们就进图windows的控制面板,进入程序,然后点击程序与功能,然后点击打开或关闭windows功能,点击telnet前面的方块,就安装上了telnet客户端,然后在DOS中输入telnet+IP地址+端口号查看,只要DOS界面无任何显示,就证明我们的80端口通了。如果不通,它则显示一直在连接。我们也可以用iptabs -nvL去查看80端口的是否打开。
  [root@linletao-001 ~]# iptables -nvL
  Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
  pkts bytes target     prot opt in     out     source               destination

  2614  228K ACCEPT     all  --         0.0.0.0/0            0.0.0.0/0            state>  1    60 ACCEPT     icmp --         0.0.0.0/0            0.0.0.0/0
  0     0 ACCEPT     all  --  lo            0.0.0.0/0            0.0.0.0/0           
  1    52 ACCEPT     tcp  --               0.0.0.0/0            0.0.0.0/0            state NEW tcp dpt:22
  2370 2330K REJECT     all  --        *       0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited
  Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
  pkts bytes target     prot opt in     out     source               destination
  0     0 REJECT     all  --         0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited
  Chain OUTPUT (policy ACCEPT 2143 packets, 336K bytes)
  pkts bytes target     prot opt in     out     source               destination
  结果是没有打开,我们可以先用一条命令去打开80端口。
  iptables -I INPUT -p tcp --dport 80 -j ACCEPT
  然后去windows的浏览器去输入我们虚拟机的ip,这时候就可以连通了。
  有时候我们的浏览器连通了,却显示403,这是因为在我们的配置文件中有一个
  Require all denied,我们要将denied改为granted,配置文件中有两处,都要改。
  我们改完配置首先要去检查一下它的语法,比如我们要检查apache的配置文件语法,就可以这样输入
  /usr/local/apache2.4/bin/apachectl -t //-t就是测试语法的参数
  [root@linletao-001 ~]#  /usr/local/apache2.4/bin/apachectl -t
  Syntax OK(出现这个提示,则证明语法正确)
  然后重新加载配置文件,在文件的结尾处加graceful,重新加载。
  3.增加一行和php相关的配置
  AddType application/x-httpd-php .php
  首先我们搜索ADDType
  然后在AddType application/x-compress .Z和AddType application/x-gzip .gz .tgz的下面加一行,AddType application/x-httpd-php .php,这样就可以解析php了。
  4.增加一个索引页
  先进入配置文件进行编辑,然后找到# DirectoryIndex: sets the file that Apache will serve if a directory,
  然后将它替换掉以前的文件,DirectoryIndex index.html index.php
  然后我们验证一下apache是否可以验证php,先写一个测试的脚本
  vim /usr/local/apache2.4/htodcs/1.php
  内容如下
  
  然后我们再浏览器中输入我们的ip后面接/1.php,如果出现页面,则证明成功,但是如果出现了源代码,则证明我们apache的配置文件出错了。一旦出错,我们需要检查一下一个方面。
  1.查看加载模块有没有加载php
  /usr/local/apache2.4/bin/httpd -M
  但是如果没发现有php模块,我们则要查看一下有没有libphp5.so这个文件。
  2.查找libphp5.so文件
  [root@linletao-001 htdocs]# ls /usr/local/apache2.4/modules/libphp5.so
  /usr/local/apache2.4/modules/libphp5.so
  如果有,但是没有加载,我们就要去配置文件中有没有加载它
  LoadModule php5_module        modules/libphp5.so
  如果有加载,我们还要去看他有没有AddType application/x-httpd-php .php
  3.查找AddType application/x-httpd-php .php
  这里一定要注意一下,在最后的.php前一定要加一个空格,不加空格的话语法检查会报错。
  检查完这几步我们就可以解析我们的php了。
  我们检查修改完配置文件后一定要做一个语法检测,然后再进行graceful加载,否则网站会出错。

anache默认虚拟主机
  一台服务器可以访问多个网站,每个网站都是一个虚拟主机。
  概念:域名(主机名)、DNS、解析域名、hosts
  虚拟主机:任何一个域名,指向到这个ip,他都会访问到这站点,这个站点就叫默认虚拟主机。
  windows下写hosts
  这个文件在储存的位置在windiws/system32/drives/etc下,用记事本打开,在 For example:下先写入ip,然后后面写网站,保存退出。这样网站就会指向指定的ip。
  打开apache的配置文件
  vim /usr/local/apache2.4/conf/httpd.conf
  查找extra,找到# Virtual hosts
  然后将Include conf/extra/httpd-vhosts.conf前面的“#”去掉。
  #Virtual hosts
  Include conf/extra/httpd-vhosts.conf
  保存退出。
  然后我们打开一个二级配置文件,这个二级配置文件就是虚拟主机的配置文件。在这个配置文件中我们可以配置多个servename。他们都是以开始,以结束
  虚拟主机配置文件:vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
  
  ServerAdmin webmaster@dummy-host.example.com
  (管理员邮箱,可以删除)
  

DocumentRoot "/usr/local/apache2.4/docs/dummy-host.example.com"  
(定义网站的根目录)我们可以修改为 DocumentRoot "/data/wwwroot/123.com",这还是要根据我们的实际网站名需求去改。
  

  
ServerName dummy-host.example.com
  

  (服务器名)可以改为123.com。可以根据实际情况,修改成网站名。
  ServerAlias www.dummy-host.example.com
  (服务器别名) www.123.com www.abc.com 可以根据实际情况,修改成网站名,而且可以写多个。
  

ErrorLog "logs/dummy-host.example.com-error_log"  
错误日志,可根据实际情况改名。
  

  
CustomLog "logs/dummy-host.example.com-access_log" common
  
访问日志,可根据实际情况修改。
  

  
  一对一对出现,这就代表着一台虚拟主机。一个主机就是一个网站。
  定义一个网站最核心的是DocumentRoot和  ServerName。serveralias可以写多个,但ServerName只能写一个。
  修改完后我们去创建对应的目录
  [root@linletao-001 ~]# mkdir /data/wwwroot/
  [root@linletao-001 ~]# mkdir /data/wwwroot/123.com
  [root@linletao-001 ~]# mkdir /data/wwwroot/111.com
  可根据网站名具体修改
  然后在对应的站点根目录下创建一个index.php
  [root@linletao-001 ~]# vim /data/wwwroot/123.com/index.php
  然后在vim中编辑
  

运维网声明 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-636221-1-1.html 上篇帖子: Apache日志轮询配置详解 下篇帖子: 4.13 apache用户认证,跳转和访问日志
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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