Apache Virtual Host无法解析PHP

use*_*581 20 php apache

我决定在我的Apache服务器上启用虚拟主机,并选择使其基于端口.

当然,我做的第一件事就是RTM.我按照这里的说明进行操作.嗯,它有效 - 有点.就虚拟主机运行而言,确实如此.拉出的内容:80不同于:8080.

但是PHP没有用."原始站点"(端口80)运行PHP非常棒.但是,端口8080站点将PHP发送到浏览器.我在浏览器中看不到任何内容,但源代码显示:

<?php
echo "It worked!";
?>
Run Code Online (Sandbox Code Playgroud)

这个主题似乎在一些网站上非常松散地记录,但要么我找不到解决方案,要么列出的解决方案对我不起作用.

同样,虚拟主机本身运行正常.另一方面,PHP不是.

关于它可能是什么的任何想法?我应该提供哪些来自我的httpd.conf文件的内容,所以我不会通过复制/粘贴整个事情来解决我的问题?

(对不起,我忘了发帖说我有这些,菲尔.加上以避免进一步混淆)

Listen 80
Listen 8080

NameVirtualHost *:80
NameVirtualHost *:8080

<VirtualHost *:80>
    ServerName mysite.com
    DocumentRoot /var/www/vhosts/Site1/httpdocs
</VirtualHost>

<VirtualHost *:8080>
    ServerName mysite.com
    DocumentRoot /var/www/vhosts/Site2/httpdocs
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

我尝试在标签内添加:

AddHandler php5-script .php
AddType text/html .php
Run Code Online (Sandbox Code Playgroud)

......但无济于事.

小智 25

这也可能是由于php文件使用短的php标签<?而不是<?php.默认情况下,php.ini配置文件中未启用短标记.


use*_*581 18

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

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>
Run Code Online (Sandbox Code Playgroud)

或者,在我的服务器上对解决方案进行编辑的复制/粘贴:

<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>
Run Code Online (Sandbox Code Playgroud)


Los*_*ses 7

就我而言,问题是通过运行以下命令解决的:

apt-get install libapache2-mod-php
Run Code Online (Sandbox Code Playgroud)


Laz*_*zik 6

你的回答对我不起作用.

对于Ubuntu 12.04:

sudo a2enmod php5
sudo service apache2 restart
Run Code Online (Sandbox Code Playgroud)

这样做了.

来源:https://help.ubuntu.com/community/ApacheMySQLPHP