Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
虚拟主机未解析PHP_Php_Apache_Virtualhost - Fatal编程技术网

虚拟主机未解析PHP

虚拟主机未解析PHP,php,apache,virtualhost,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/te

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

我在我的
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>
听80
ServerName test.dev
ServerAlias test.dev
DocumentRoot“/用户/OrangeSoda/OneDrive/Projects/Test/Website”
ErrorLog“/private/var/log/apache2/test.dev-error\u log”
CustomLog“/private/var/log/apache2/test.dev-access_log”通用
选项全部
允许超越所有
要求所有授权
在我的
http.conf
中,我有
Include/private/etc/apache2/extra/httpd vhost.conf
以及
LoadModule vhost_alias_module libexec/apache2/mod_vhost_alias.so
未注释

当我转到test.dev/index.php,它只有
,我看到文件输出的内容是一个字符串

似乎PHP未启用,因此未被识别

如果我转到localhost,我确实会看到“It Works!”页面,因此我知道php正在工作,只是出于某种原因,它不在我的虚拟主机上

有人建议将
php\u admin\u标志引擎置于
上,但这只会使整个页面崩溃


有人知道为什么这里不启用php吗?

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

您的思路是正确的,但您需要将php实际加载到虚拟主机上。在
条目中,添加以下行:

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

php_admin_标志引擎打开
php_admin_标志引擎打开

我从中获得了解决方案。

看起来可能没有安装mod php。你在用什么操作系统

在Ubuntu/debian上:

sudo apt-get install php5
关于redhat:

sudo yum install php

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

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

AddType application/x-httpd-php .php

那么apache中的php模块在哪里加载?可能它只是在每个目录或每个vhost的基础上启用的。当您在命令行中使用
php-v
时,您会得到什么?我知道端口已打开,因为我可以在虚拟主机上查看html页面,javascript也可以工作,只是php没有被呈现