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


15

因此,我使用教程设置了服务器,并且当使用服务器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

您是否知道这是LAMP服务器?
Braiam 2014年

@Braiam,老实说,我迷失在LAMP和Apache之间...我不知道区别...但是,您对我的问题有答案吗?
量子物理学家2014年

我在哪里可以找到这个目录?它对我不起作用。请帮忙?如何重新加载vhost vie终端?
神的世界

@Godworld什么目录?Apache配置文件位于中/etc/apache2/
量子物理学家2016年

Answers:


19

我得到了它与生产线一起工作:

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

sudo service apache2 restart

感谢您命名该库。我知道我必须安装一个库来解决此问题,但不知道名称。
Rahul Prasad

libapache2-mod-php7.0软件包在主Ubuntu存储库中不存在。直到16.04发布。您应该libapache2-mod-php5改用。
Dan

4

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


5
我几乎认为这不是一个真正的答案,但我想它确实是。
赛斯2014年

3
如果您有足够数量的机器,并且在傍晚时分,这绝对是一个有效的答案。
Avio 2015年

1
确实是一个有效的答案。我在处理php5,php5-cli,php5-fpm和php-whatnot时遇到问题。Apache只是缺少正确的软件包。
famousgarkin

0

我在这里找到了解决方案。原来我不得不启用一些模块...


来自这个堆栈溢出的答案user1075581

这终于使我走上了正确的道路:

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>

0

我已经搜索了很长时间,但我发现了一种适用于我的情况的解决方案。我已将文件(processorder.php5)放在/var/www标准ubuntu安装目录中。我以为这是php看的地方。但是对于html(或可能被认为是同一事物的php文件),它查找了/var/www/html,即的html子目录/var/www

当我将文件移到目录下时,它可以工作。我很可疑,因为我认为我没有在任何地方看到过此文件


0

权限问题也可能导致出现这种奇怪的行为

chmod -R u=rwX,go=rX my_publishing_directory

将摆脱权限问题(文件为644,目录为755)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.