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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了apache和php结合apache的默认虚拟主机相关的知识,希望对你有一定的参考价值。

一:apache和php结合

修改 apache 配置文件
#vi /usr/local/apache2/conf/httpd.conf
找到:
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
</Directory>
改为:
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Allow from all
</Directory>
说明:如果不修改这个地方,我们访问网站会禁止访问,显示 403。
然后找到:
AddType application/x-gzip .gz .tgz
在该行下面添加:
AddType application/x-httpd-php .php
说明,要想支持 php 脚本解析,必须要加上对应的类型。
再找到:
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>
将该行改为:
<IfModule dir_module>
DirectoryIndex index.html index.htm index.php
</IfModule>
说明: 增加针对 php 的索引,如果一个站点默认页为 index.php,那么就得加上这个
index.php 的支持。
再找到:
#ServerName www.example.com:80
修改为:
ServerName localhost:80
如果不去掉#,则启动 apache 时,会有警告信息“httpd: Could not reliably determine the
server‘s fully qualified domain name, using localhost.localdomain for ServerName”,看起来像是
错误,其实没有影响。
查看配置文件是否有问题:
/usr/local/apache2/bin/apachectl -t
如果显示 Syntax OK,说明配置没问题了。然后启动服务:
/usr/local/apache2/bin/apachectl start
检查 apache 是否正常启动的命令是:
ps aux |grep httpd
看有没有进程列表。

vi /usr/local/apache2/htdocs/1.php
写入:
<?php
echo "php works.";
?>
保存后,继续测试:
curl localhost/1.php
php works. 只有显示这个信息,才算正常解析。否则就是没有成功解析。当然,你也可
以用真机上的浏览器通过 ip 访问,比如你的虚拟机 ip 为 192.168.1.101,那么在浏览器输入
http://192.168.1.101/1.php 看是否只显示一行 php works. 如果你的访问不太顺畅,请检测
iptables 规则。
iptables -nvL
如果有一些规则,请执行
iptables -F
service iptables save

二:apache默认虚拟主机

vim /usr/local/apache2/conf/extra/httpd-vhosts.conf
把下面的配置:
<VirtualHost :80>
ServerAdmin [email protected]
DocumentRoot "/usr/local/apache2/docs/dummy-host.example.com"
ServerName dummy-host.example.com
ServerAlias www.dummy-host.example.com
ErrorLog "logs/dummy-host.example.com-error_log"
CustomLog "logs/dummy-host.example.com-access_log" common
</VirtualHost>
修改为:
<VirtualHost
:80>
DocumentRoot "/tmp/tmp"
ServerName tmp.com
<Directory /tmp/tmp/>
Order allow,deny
Deny from all
</Directory>
创建配置中提到的目录
#mkdir /tmp/tmp
chmod 600 /tmp/tmp
/usr/local/apache2/bin/apachectl graceful #重新加载
其实这个默认虚拟主机就是配置文件里的第一个虚拟主机。关于默认虚拟主机有个特
点,凡是解析到这台机器的域名,不管是什么域名,只要在配置文件中没有配置,那么都会
访问到这个主机上来。 举例,我们直接用ip 访问,会访问到这个站点上来。为了避免别人
乱解析,所以应该把默认也就是第一个虚拟主机给禁止掉。在这里我们使用allow,deny语句,
已经禁掉了,至于它的含义,后面会介绍。这时候,我们用 ip去访问,发现已经提示:
Forbidden
You don‘t have permission to access / on this server.

以上是关于apache和php结合apache的默认虚拟主机的主要内容,如果未能解决你的问题,请参考以下文章

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

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

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

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

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

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