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

11.14-11.15 Apache和PHP结合

Apache(httpd)的配置文件:/usr/local/apache2.4/conf/httpd.conf。

配置Apache

选择要调用的PHP

因为本机安装了两个版本的PHP,所以需要进行该配置,如果只装一个PHP服务则会默认调用存在的PHP服务(在此选用PHP5)。

[[email protected] ~]# vim /usr/local/apache2.4/conf/httpd.conf
……
LoadModule php5_module modules/libphp5.so
#LoadModule php7_module modules/libphp7.so
说明: 指定Apache调用PHP5。

物理机:启用win7中telnet命令

graph LR
开始-->控制面板
控制面板-->程序
程序-->打开或关闭Windows功能
打开或关闭Windows功能-->选择telnet客户端
进行Apache的配置

更改配置文件:
[[email protected] ~]# vim /usr/local/apache2.4/conf/httpd.conf
……
<Directory />
AllowOverride none
Require all granted
</Directory>
……

检测配置是否存在语法错误:
[[email protected] ~]# /usr/local/apache2.4/bin/apachectl -t
Syntax OK

重新加载服务:
[[email protected] ~]# /usr/local/apache2.4/bin/apachectl graceful
注:该命令不会使服务重启,只是加载配置文件的内容。
说明: 将此处的“Require all denied”改为“Require all granted”。

添加监听80端口的规则:

[[email protected] ~]# iptables -I INPUT -p tcp --dport 80 -j ACCEPT
说明: 至此,可以使用浏览器直接访问本地虚拟机IP。

mark

添加PHP服务

授权PHP服务解析本机服务器
[[email protected] ~]# 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服务解析该服务器。

增加索引页
[[email protected] ~]# vim /usr/local/apache2.4/conf/httpd.conf
……
<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>
……

检测、加载:
[[email protected] ~]# /usr/local/apache2.4/bin/apachectl -t
Syntax OK
[[email protected] ~]# /usr/local/apache2.4/bin/apachectl graceful

说明: 在此添加“index.php”,

检测服务器是否支持PHP解析:

[[email protected] ~]# vim /usr/local/apache2.4/htdocs/1.php

<?php
phpinfo();
#该参数的含义是PHP的信息
?>
#该命令的含义是:在访问该地址时,直接打印PHP的相关信息
说明: 创建一个php文件,然后使用浏览器访问该文件(此时不需要重启服务器):

mark

即,可以正常访问,说明该服务器支持PHP解析,如果不支持php解析的话,访问该文件时会显示源代码。

完成PHP解析配置!

常见故障:

故障: 服务器无法进行PHP解析!
解决办法:

检查Apache是否已加载PHP模块
[[email protected] ~]# /usr/local/apache2.4/bin/apachectl -M
如果没有加载,则需要检查系统中有没有PHP模块:

[[email protected] ~]# ls /usr/local/apache2.4/modules/libphp5.so
/usr/local/apache2.4/modules/libphp5.so
如果该模块存在但是没有加载,则检查Apache配置文件中有没有加载PHP的配置:

mark

检查配置文件中是否有PHP服务加载命令:

mark

执行命令“/usr/local/apache2.4/bin/apachectl -t”检查配置文件是否存在语法错误。

检查是否有索引页(该行影响不大):

mark

Apache配置PHP7解析

编辑配置文件(调用PHP7):
[[email protected] ~]# vim /usr/local/apache2.4/conf/httpd.conf
……
#LoadModule php5_module modules/libphp5.so
LoadModule php7_module modules/libphp7.so

检测、加载:
[[email protected] ~]# /usr/local/apache2.4/bin/apachectl -t
Syntax OK
[[email protected] ~]# /usr/local/apache2.4/bin/apachectl graceful
说明: 因在进行PHP5解析配置时已完成其他相关配置,所以在此只需更改要调用的PHP版本即可,如果初次配置,操作同PHP5.

补充:快捷键 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”。
用记事本打开该文件:

mark

说明: 在此可以自定义匹配本地IP和域名,目的是添加临时访问地址(在DNS未生效的时候使用)。

添加虚拟主机

在hosts文件中添加“192.168.8.131 www.adai.com”即可将本地虚拟主机添加到Windows系统,访问该域名时会自动解析到本地虚拟主机“ServerName www.example.com:80”。

LinuxApache虚拟主机管理

在物理机访问的域名“www.adai.com”并未在虚拟机Apache配置文件中定义,虚拟机中只定义了“ServerName www.example.com:80”一个域名,该域名即为Apache的默认主机,此时通过任何一个绑定该虚拟机IP的域名进行访问都会跳转到该主机。
因为一台服务器可以跑多个域名,为了方便管理,需要对虚拟主机进行配置:

配置虚拟主机

编辑Apache配置文件:
[[email protected] ~]# vim /usr/local/apache2.4/conf/httpd.conf
……

Virtual hosts

Include conf/extra/httpd-vhosts.conf
……
说明: 编辑“Virtual hosts(虚拟主机)”的参数,去掉#,启用虚拟主机配置文件“httpd-vhosts.conf”。
注: Apache也支持单独管理每个虚拟主机,配置参数如下:

[[email protected] ~]# vim /usr/local/apache2.4/conf/httpd.conf
……

Virtual hosts

Include conf/extra/vhosts/*.conf
……
[[email protected] ~]# mkdir /usr/local/apache/conf/extra/vhosts
之后在/usr/local/apache/conf/extra/vhosts目录中创建虚拟主机就可以。

编辑虚拟主机配置文件
[[email protected] ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
该配置文件下每组“< VirtualHost *:80 >”代表一个主机(即:一个网站):

mark

进行如下编辑:

<VirtualHost *:80>
DocumentRoot "/data/wwwroot/abc.com"
#指定域名所指向的地址
ServerName abc.com
#定义网站名称
ServerAlias www.abc.com www.123.com
#设置别名(可设置多个)
ErrorLog "logs/abc.com-error_log"
CustomLog "logs/abc.com-error_log" common
#日志文件
</VirtualHost>

<VirtualHost *:80>
DocumentRoot "/data/wwwroot/111.com"
ServerName 111.com
ServerAlias www.example.com
ErrorLog "logs/111.com-error_log"
CustomLog "logs/111.com-access_log" common
</VirtualHost>

此时即定义了一个网站,定义网站的核心参数即为:DocumentRoot(网站根目录)、ServerName(域名)。
注意: 虚拟主机生效后,原Apache配置文件中的默认主机(www.example.com ~ 192.168.8.131)就会失效(在此用www.example.com ~ 111.com进行验证)。

添加虚拟主机相应目录

[[email protected] ~]# mkdir /data/wwwroot/
[[email protected] ~]# mkdir /data/wwwroot/abc.com
[[email protected] ~]# mkdir /data/wwwroot/111.com
在相应目录创建PHP文件:

[[email protected] ~]# vim /data/wwwroot/abc.com/index.php
<?php
echo "welcome to abc.com";
?>

[[email protected] ~]# vim /data/wwwroot/111.com/index.php
<?php
echo "welcome to 111.com";
?>
检测、重载Apache配置文件:

[[email protected] ~]# /usr/local/apache2.4/bin/apachectl -t
Syntax OK
[[email protected] ~]# /usr/local/apache2.4/bin/apachectl graceful
虚拟主机测试

在此使用浏览器和curl命令分别进行测试。

如果不在虚拟机中进行本地域名配置(hosts),在进行ping命令测试虚拟主机域名时会访问到外网。

[[email protected] ~]# 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 指定访问端口
[[email protected] ~]# curl -x192.168.8.131:80 abc.com
welcom to abc.com
注意: 此时访问所有未定义的域名都会将访问地址指向到默认虚拟主机,因为已经自定义添加了虚拟主机,所以此时的默认虚拟主机为配置文件“httpd-vhosts.conf”中的第一个虚拟主机(在此为abc.com),效果如下:

[[email protected] ~]# curl -x192.168.8.131:80 www.abcde.com
welcom to abc.com

原文地址:http://blog.51cto.com/13242922/2074520

时间: 2024-08-03 07:25:38

Apache和PHP结合 Apache默认虚拟主机的相关文章

Apache默认虚拟主机

之前我们配置了两个域名:test和aaa,或者访问IP的时候也能跳转到discuz论坛,这有一个概念叫做默认的虚拟主机配置文件,不管是哪一个域名只要是你解析过来都能解析到该论坛,举个列子:比如我们打开计算机-C盘-windows-systmes32-drivers-etc-hosts用写字板打开 加入:192.168.140.100  www.test.com   www.aaa.com  www.222.com 它也能解析到192.168.140.100这个discuz论坛里面去,ping w

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

Apache和PHP结合 1.先禁用之前的php7的模块 [[email protected] ~]# cat /usr/local/apache2.4/conf/httpd.conf| grep 'php' LoadModule php5_module        modules/libphp5.so #LoadModule php7_module        modules/libphp7.so 2.查看下是否禁用php7模块 [[email protected] ~]# /usr/lo

LAMP架构(apache与php结合,apache默认虚拟主机)

一.apache与php结合 主配置文件/usr/local/apache2.4/conf/httpd.conf [[email protected] ~]# /usr/local/apache2.4/bin/apachectl graceful  (重新加载服务,并不重启服务) [[email protected] ~]# /usr/local/apache2.4/bin/apachectl start    (启动httpd服务) AH00558: httpd: Could not reli

Apache的默认虚拟主机

Apache的默认虚拟主机 访问主机的自定义域名 访问linux自定义域名 原文地址:http://blog.51cto.com/13515599/2074432

2018-3-1 10周2次课 Apache和PHP结合、Apache默认虚拟主机

11.14/11.15 Apache和PHP结合 1,修改ServerName 在启动apache时,会有类似错误提示 [[email protected] ~]# /usr/local/apache2.4/bin/apachectl restart AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain. Set the 

11.14/11.15 Apache和PHP结合 11.16/11.17 Apache默认虚拟主机

11.14/11.15 Apache和PHP结合 编辑:httpd主配置文件/usr/local/apache2.4/conf/httpd.conf 去掉#号 将php7加# Telnet IP+80 端口不通,需要开启iptables防火墙 更改require 更改配置后需要操作才能生效 重新加载服务 增加一行php进行解析 页面显示 结果访问的是源代码 如果遇到php无法解析,需要检查相关的apache的配置文件 (1)检查apache的php 有没有加载php5 查看是否有libphp5.

Apache与PHP的结合配置、Apache默认虚拟主机

Apache和PHP结合 配置httpd支持php 1. 修改配置文件: [[email protected] php-7.1.6]# vim /usr/local/apache2.4/conf/httpd.conf 修改一: 修改httpd的主配置文件/usr/local/apache2.4/conf/httpd.conf,搜索ServerName,把#ServerName www.example.com:80前面的#号删除. 找到如下内容更改: <Directory /> AllowOve

LAMP(4)Apach和php结合、Apache默认虚拟主机

                        Apach和php结合 1.修改apache配置文件   vim /usr/local/apache2.4/conf/httpd.conf (1)修改ServerName  把前面注释的#取消 (这里在启动httpd的时候,会提示要定义一个ServerName,若定义了则在启动时就不会再提示) 在window浏览器中访问我们的linux机器的ip: 出现这种问题的时候:我们首先排查网络的原因(在window测试) 第一步:ping 192.168.

apache和php结合、apache的默认虚拟主机

一:apache和php结合 修改 apache 配置文件#vi /usr/local/apache2/conf/httpd.conf找到:<Directory />Options FollowSymLinksAllowOverride NoneOrder deny,allowDeny from all</Directory>改为:<Directory />Options FollowSymLinksAllowOverride NoneOrder deny,allowA