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

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

[复制链接]

尚未签到

发表于 2018-11-18 06:07:35 | 显示全部楼层 |阅读模式
11.14-11.15 Apache和PHP结合
  Apache(httpd)的配置文件:/usr/local/apache2.4/conf/httpd.conf。
配置Apache
  选择要调用的PHP
  因为本机安装了两个版本的PHP,所以需要进行该配置,如果只装一个PHP服务则会默认调用存在的PHP服务(在此选用PHP5)。
  [root@centos-01inux ~]# vim /usr/local/apache2.4/conf/httpd.conf
……
LoadModule php5_module        modules/libphp5.so
#LoadModule php7_module        modules/libphp7.so
说明:在php7前面加# 。 指定Apache调用PHP5。
  物理机:启用win7中telnet命令
  graph LR
开始-->控制面板
控制面板-->程序
程序-->打开或关闭Windows功能
打开或关闭Windows功能-->选择telnet客户端
进行Apache的配置
  更改配置文件:
[root@centos-01inux ~]# vim /usr/local/apache2.4/conf/httpd.conf
……

AllowOverride none
Require all granted

……
  检测配置是否存在语法错误:
[root@centos-01inux ~]# /usr/local/apache2.4/bin/apachectl -t
Syntax OK
  重新加载服务:
[root@centos-01inux ~]# /usr/local/apache2.4/bin/apachectl graceful
注:该命令不会使服务重启,只是加载配置文件的内容。
说明: 将此处的“Require all denied”改为“Require all granted”。
  添加监听80端口的规则:
  [root@centos-01inux ~]# iptables -I INPUT -p tcp --dport 80 -j ACCEPT
说明: 至此,可以使用浏览器直接访问本地虚拟机IP。
DSC0000.png

添加PHP服务
  授权PHP服务解析本机服务器
[root@centos-01inux ~]# vim /usr/local/apache2.4/conf/httpd.conf
……
#
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
AddType application/x-httpd-php .php
  ……
说明: 在此添加“AddType application/x-httpd-php .php”,意思是允许PHP服务解析该服务器。
  增加索引页
[root@centos-01inux ~]# vim /usr/local/apache2.4/conf/httpd.conf
……

DirectoryIndex index.html index.php

……
  检测、加载:
[root@centos-01inux ~]# /usr/local/apache2.4/bin/apachectl -t
Syntax OK
[root@centos-01inux ~]# /usr/local/apache2.4/bin/apachectl graceful
  说明: 在此添加“index.php”,
  检测服务器是否支持PHP解析:
  [root@centos-01inux ~]# vim /usr/local/apache2.4/htdocs/1.php
  
#该命令的含义是:在访问该地址时,直接打印PHP的相关信息
说明: 创建一个php文件,然后使用浏览器访问该文件(此时不需要重启服务器):
DSC0001.png

  即,可以正常访问,说明该服务器支持PHP解析,如果不支持php解析的话,访问该文件时会显示源代码。
  完成PHP解析配置!
常见故障:
  故障: 服务器无法进行PHP解析!
解决办法:
第一步:
检查Apache是否已加载PHP模块
[root@centos-01inux ~]# /usr/local/apache2.4/bin/apachectl -M
  php5_module (shared)
如果php5,则需要检查系统中有没有PHP模块:
第二步:
[root@centos-01inux ~]# ls /usr/local/apache2.4/modules/libphp5.so
/usr/local/apache2.4/modules/libphp5.so
如果该模块存在但是没有加载,则检查Apache配置文件中有没有加载PHP的配置:
DSC0002.png
第三步:
检查配置文件中是否有PHP服务加载命令:
DSC0003.png

  执行命令“/usr/local/apache2.4/bin/apachectl -t”检查配置文件是否存在语法错误。
第四步:
检查是否有索引页(该行影响不大):
DSC0004.png

Apache配置PHP7解析
  编辑配置文件(调用PHP7):
[root@centos-01inux ~]# vim /usr/local/apache2.4/conf/httpd.conf
……
#LoadModule php5_module        modules/libphp5.so
LoadModule php7_module        modules/libphp7.so
  检测、加载:
[root@centos-01inux ~]# /usr/local/apache2.4/bin/apachectl -t
Syntax OK
[root@centos-01inux ~]# /usr/local/apache2.4/bin/apachectl graceful
说明: 因在进行PHP5解析配置时已完成其他相关配置,所以在此只需更改要调用的PHP版本即可,如果初次配置,操作同PHP5.
DSC0005.png
  补充:快捷键 Ctrl+r
  ctrl+r用途:反向搜索并调用执行过的命令。(reverse-i-search)。
使用方法:按ctrl+r后命令行会变成“(reverse-i-search)`': ”状态,然后输入使用过的参数,此时会直接显示出相关的命令,回车即可执行该命令。
11.16-11.17 Apache默认虚拟主机
  Windows系统hosts管理
  Windows系统中hosts位置“C:\Windows\System32\drivers\etc\hosts”。
用记事本打开该文件:
  说明: 在此可以自定义匹配本地IP和域名,目的是添加临时访问地址(在DNS未生效的时候使用)。
  添加虚拟主机
  在hosts文件中添加“192.168.239.187 www.abc.com”即可将本地虚拟主机添加到Windows系统,访问该域名时会自动解析到本地虚拟主机“ServerName www.example.com:80”。
  LinuxApache虚拟主机管理
  在物理机访问的域名“www.abc.com”并未在虚拟机Apache配置文件中定义,虚拟机中只定义了“ServerName www.example.com:80”一个域名,该域名即为Apache的默认主机,此时通过任何一个绑定该虚拟机IP的域名进行访问都会跳转到该主机。
因为一台服务器可以跑多个域名,为了方便管理,需要对虚拟主机进行配置:
配置虚拟主机
  编辑Apache配置文件:
[root@centos-01inux ~]# vim /usr/local/apache2.4/conf/httpd.conf
……
#Virtual hosts
Include conf/extra/httpd-vhosts.conf
……
说明: 编辑“Virtual hosts(虚拟主机)”的参数,去掉#,启用虚拟主机配置文件“httpd-vhosts.conf”。
注: Apache也支持单独管理每个虚拟主机,配置参数如下:
  [root@centos-01inux ~]# vim /usr/local/apache2.4/conf/httpd.conf
……
#Virtual hosts
Include conf/extra/vhosts/*.conf
……
[root@centos-01inux ~]# mkdir /usr/local/apache/conf/extra/vhosts
之后在/usr/local/apache/conf/extra/vhosts目录中创建虚拟主机就可以。
  编辑虚拟主机配置文件
[root@centos-01inux ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
该配置文件下每组“< VirtualHost *:80 >”代表一个主机(即:一个网站):
DSC0006.png

编辑虚拟主机:
  
DocumentRoot &quot;/data/wwwroot/abc.com&quot;
#指定域名所指向的地址
ServerName abc.com
#定义网站名称
ServerAlias www.abc.com www.123.com
#设置别名(可设置多个)
ErrorLog &quot;logs/abc.com-error_log&quot;
CustomLog &quot;logs/abc.com-error_log&quot; common
#日志文件

  
DocumentRoot &quot;/data/wwwroot/111.com&quot;
ServerName 111.com
ServerAlias www.example.com
ErrorLog &quot;logs/111.com-error_log&quot;
CustomLog &quot;logs/111.com-access_log&quot; common

DSC0007.png

  此时即定义了一个网站,定义网站的核心参数即为:DocumentRoot(网站根目录)、ServerName(域名)。
注意: 虚拟主机生效后,原Apache配置文件中的默认主机(www.example.com ~ 192.168.239.187)就会失效(在此用www.example.com ~ 111.com进行验证)。
添加虚拟主机相应目录
  [root@centos-01inux ~]# mkdir /data/wwwroot/
[root@centos-01inux ~]# mkdir /data/wwwroot/abc.com
[root@centos-01inux ~]# mkdir /data/wwwroot/111.com
  在相应目录创建PHP文件:
  [root@centos-01inux ~]# vim /data/wwwroot/abc.com/index.php
  
  [root@centos-01inux ~]# vim /data/wwwroot/111.com/index.php
  
检测、重载Apache配置文件:
  [root@centos-01inux ~]# /usr/local/apache2.4/bin/apachectl -t
Syntax OK
[root@centos-01inux ~]# /usr/local/apache2.4/bin/apachectl graceful
虚拟主机测试
  在此使用浏览器和curl命令分别进行测试。
  如果不在虚拟机中进行本地域名配置(hosts),在进行ping命令测试虚拟主机域名时会访问到外网。
  [root@centos-01inux ~]# ping www.abc.com
PING abc.com (199.181.132.250) 56(84) bytes of data.
如果想在访问“abc.com”时指向到本地虚拟机IP,可以在/etc/hosts文件中指定域名,或者使用curl命令进行访问,如下:
  eg:
  curl -x 指定访问端口
[root@centos-01inux ~]# curl -x192.168.239.187:80 abc.com
welcom to abc.com
注意: 此时访问所有未定义的域名都会将访问地址指向到默认虚拟主机,因为已经自定义添加了虚拟主机,所以此时的默认虚拟主机为配置文件“httpd-vhosts.conf”中的第一个虚拟主机(在此为abc.com),效果如下:
  [root@centos-01inux ~]# curl -x192.168.239.187:80 www.abcde.com
welcom to abc.com




运维网声明 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-636306-1-1.html 上篇帖子: 2.MariaDB和Apache安装 下篇帖子: Apache的用户认证、域名跳转、Apache的访问日志
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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