![Apache 不执行 PHP 文件,但让我下载它们](https://linux22.com/image/847590/Apache%20%E4%B8%8D%E6%89%A7%E8%A1%8C%20PHP%20%E6%96%87%E4%BB%B6%EF%BC%8C%E4%BD%86%E8%AE%A9%E6%88%91%E4%B8%8B%E8%BD%BD%E5%AE%83%E4%BB%AC.png)
所以我使用这教程,当我使用我的服务器的 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:
这最终让我走上了正确的道路:
解决方案如下:
在该
<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)