Apache 不执行 PHP 文件,但让我下载它们

Apache 不执行 PHP 文件,但让我下载它们

所以我使用教程,当我使用我的服务器的 IP 输入地址时,test.php 文件可以正常工作

http://1.2.3.4/test.php

但是,如果我使用虚拟主机,浏览器只会提供下载文件而不是执行它。因此:

http://blog.mydomain.com/test.php

提供下载文件而不是执行脚本。

我在 /etc/apache2/apache2.conf 中用于虚拟主机的代码如下:

Include /etc/phpmyadmin/apache.conf
Include /etc/apache2/mods-available/php5.conf

<VirtualHost *:80>
    DocumentRoot /path/to/vhosts/folder1
    ServerName www.mydomain.com
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot /path/to/vhosts/folder2
    ServerName blog.mydomain.com
</VirtualHost>

NameVirtualHost *:80

但我不得不说,当我重新启动 apache2 服务器时我收到一条警告消息:

[....] Restarting web server: apache2
[Sun Jan 19 13:33:40 2014] [warn] NameVirtualHost *:80 has no VirtualHosts ... waiting [Sun Jan 19 13:33:41 2014] [warn] NameVirtualHost *:80 has no VirtualHosts

答案1

我让它与以下行一起工作:

sudo apt-get install libapache2-mod-php7.0

sudo service apache2 restart

答案2

有时甚至会发生更糟糕的事情......我只是忘了安装 php

答案3

我找到了解决方案这里。原来我必须启用一些模块……


取自这个 Stack Overflow 上的答案经过用户1075581

这最终让我走上了正确的道路:

http://www.linuxquestions.org/questions/linux-server-73/php-not-working-on-one-vhost-but-works-on-all-others-851093/

解决方案如下:

在该<Directory>部分中,我添加了以下几行:

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

或者,在我的服务器上复制/粘贴该解决方案:

<Directory "/var/www/vhosts/A2/httpdocs">
    <IfModule sapi_apache2.c>
        php_admin_flag engine on
    </IfModule>
    <IfModule mod_php5.c>
        php_admin_flag engine on
    </IfModule>

    (Other configuration parameters)

</Directory>

答案4

权限问题也会导致这种奇怪的行为

chmod -R u=rwX,go=rX my_publishing_directory

将消除权限问题(文件为 644,目录为 755)

相关内容