虚拟主机不解析PHP

时间:2015-05-26 21:34:19

标签: php apache virtualhost

好吧,我花了几个小时搜索非常相似的问题,但我似乎还没有找到答案:

我已在httpd-vhosts.conf

中设置了包含以下内容的虚拟主机
Listen 80

<VirtualHost *:80>
    ServerName test.dev
    ServerAlias test.dev
    DocumentRoot "/Users/OrangeSoda/OneDrive/Projects/Test/Website"
    ErrorLog "/private/var/log/apache2/test.dev-error_log"
    CustomLog "/private/var/log/apache2/test.dev-access_log" common

    <Directory "/Users/OrangeSoda/OneDrive/Projects/Test/Website">
         Options all
         AllowOverride all
         Require all granted
    </Directory>
 </VirtualHost>

在我的http.confInclude /private/etc/apache2/extra/httpd-vhosts.conf以及LoadModule vhost_alias_module libexec/apache2/mod_vhost_alias.so取消注释。

当我去test.dev/index.php时只有<?php echo "PHP TEST"; ?>,我看到文件输出的内容是一个字符串。

似乎PHP未启用,因此无法识别。

如果我去localhost,我确实看到&#34;它有效!&#34;页面,所以我知道php正在工作,只是因为某些原因不在我的虚拟主机上。

有人建议放php_admin_flag engine on,但这会让整个页面崩溃。

有人理解为什么这里没有启用php吗?

4 个答案:

答案 0 :(得分:0)

您是否检查过端口80是否已打开?如果您包含详细日志,可能会有所帮助。

答案 1 :(得分:0)

您已经走上正轨,但您需要将php实际加载到虚拟主机上。在<Directory>条目上,添加以下行:

<IfModule sapi_apache2.c>
    php_admin_flag engine on
</IfModule>
<IfModule mod_php5.c>
    php_admin_flag engine on
</IfModule>

我从here获得了解决方案。

答案 2 :(得分:0)

看起来好像没有安装mod-php。你在用什么操作系统?

在Ubuntu / debian上:

sudo apt-get install php5

关于redhat:

sudo yum install php

答案 3 :(得分:0)

解决方案是,虽然php已启用,但出于某种原因,httpd.conf中的默认设置不是将.php文件读为.php。

虽然我不确定为什么这不是默认设置,但我在httpd.conf添加了以下内容,现在它可以正常工作:

AddType application/x-httpd-php .php