Apache不执行php文件,但启用了mod_php5

时间:2012-11-01 20:51:22

标签: php module apache2 install execution

我不明白为什么。他没有执行php文件,而是将其作为下载服务。

在下载的文件中有php源。

我的测试文件非常简单,名为info.php

<?php

phpinfo();

我的虚拟主机:

<VirtualHost some_ip:80>
DocumentRoot /var/www/vhosts/my_vhost/htdocs
ServerName www.my_vhost.com

<Directory /var/www/vhosts/my_vhost/htdocs/>
    Options All -MultiViews
    AllowOverride None
    Order allow,deny
    allow from all
</Directory>

ErrorLog  /var/www/vhosts/my_vhost/logs/error.log
LogLevel warn   
CustomLog /var/www/vhosts/my_vhost/logs/access.log combined

</VirtualHost>

在apache2 conf中我有一行:

AddType application/x-httpd-php .php

启用Apache的模块:

apache2ctl -M
Loaded Modules:
 core_module (static)
 log_config_module (static)
 logio_module (static)
 mpm_prefork_module (static)
 http_module (static)
 so_module (static)
 actions_module (shared)
 alias_module (shared)
 auth_basic_module (shared)
 auth_digest_module (shared)
 authn_file_module (shared)
 authz_default_module (shared)
 authz_groupfile_module (shared)
 authz_host_module (shared)
 authz_user_module (shared)
 autoindex_module (shared)
 bw_module (shared)
 cgi_module (shared)
 dav_module (shared)
 dav_fs_module (shared)
 dav_lock_module (shared)
 dav_svn_module (shared)
 authz_svn_module (shared)
 deflate_module (shared)
 dir_module (shared)
 env_module (shared)
 fcgid_module (shared)
 include_module (shared)
 mime_module (shared)
 negotiation_module (shared)
 perl_module (shared)
 php5_module (shared)
 python_module (shared)
 reqtimeout_module (shared)
 rewrite_module (shared)
 setenvif_module (shared)
 ssl_module (shared)
 status_module (shared)
 suexec_module (shared)
 userdir_module (shared)
 wsgi_module (shared)
Syntax OK

我必须尝试调试并解决此问题吗?

我也安装了phpmyadmin,它可以正常工作。

2 个答案:

答案 0 :(得分:1)

检查你的文件“php5.conf”和“php5.load”是否有“mods-available”(默认路径:/ etc / apache2 / mods-available)

如果没有,请按以下方式创建:

php5.conf:

<IfModule mod_php5.c>
    <FilesMatch ".ph(p3?|tml)$">
        SetHandler application/x-httpd-php
    </FilesMatch>
    <FilesMatch ".phps$">
        SetHandler application/x-httpd-php-source
    </FilesMatch>
    # To re-enable php in user directories comment the following lines
    # (from <IfModule ...> to </IfModule>.) Do NOT set it to On as it
    # prevents .htaccess files from disabling it.
    <IfModule mod_userdir.c>
        <Directory /home/*/site>
            php_admin_value engine Off
        </Directory>
    </IfModule>
</IfModule>

php5.load:

# default PATH : /usr/lib/apache2/module/libphp5.so
LoadModule php5_module PATH/libphp5.so

Phpmyadmin将配置文件名“phpmyadmin.conf”的链接添加到“/etc/apache2/conf.d”中,并附带启用php的必要说明:

<Directory /usr/share/phpmyadmin>
    Options FollowSymLinks
    DirectoryIndex index.php

    <IfModule mod_php5.c>
        AddType application/x-httpd-php .php

        php_flag magic_quotes_gpc Off
        php_flag track_vars On
        php_flag register_globals Off
        php_value include_path .
    </IFModule>
</Directory>

答案 1 :(得分:1)

发现问题。

他们是2:

  • plesk ,哪个配置让我感到困惑并让我回来下载文件
  • 我的虚拟主机中缺少NameVirtualHost 111.22.33.44:80

所以我排除了plesk的所有包含,然后问题很明显;无法解析虚拟主机,因为之前还有另一个基于ip的虚拟主机。

谢谢大家的帮助。