Phpmyadmin 的 PHP 不执行,但其他 php 脚本工作 [英] PHP of Phpmyadmin does not execute but other php scripts work
问题描述
当调用 phpmyadmin 网站时,application/x-httpd-php-
会出现一个保存文件"对话框,因此我的服务器不会执行 phpmyadmin php 脚本,而是将代码传输到我的浏览器.其他 php(例如 roundcube 或 ispconfig)按预期工作.
When calling the phpmyadmin website a "save file" dialog appears for application/x-httpd-php-
so my server does not execute the phpmyadmin php script but transfers the code to my browser. Other php such as roundcube or ispconfig work as supposed.
- 我在这里找到了一个主题,说明在 php.ini 中启用 short_open_tags 但这没有帮助(即默认情况下它已经启用).
- 此外,我还检查了是否已安装并启用了 apache 2 php5 模块.
- 在日志文件中显然没有列出任何错误.
- 我想知道 phpmyadmin.conf 是否被视为,因为只有一个符号链接指向 etc/apache2/conf.d/目录中的/usr/share/phpmyadmin,但由于别名/phpmyadmin 工作,这不是问题.
- 我检查了 apache2 配置文件,但没有发现任何错误.
尽管如此,我还是想在这里发布一些内容:apache2.conf
Nevertheless I'd like to post some here: apache2.conf
<IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxClients 150
MaxRequestsPerChild 0
</IfModule>
<IfModule mpm_worker_module>
StartServers 2
MinSpareThreads 25
MaxSpareThreads 75
ThreadLimit 64
ThreadsPerChild 25
MaxClients 150
MaxRequestsPerChild 0
</IfModule>
<IfModule mpm_event_module>
StartServers 2
MinSpareThreads 25
MaxSpareThreads 75
ThreadLimit 64
ThreadsPerChild 25
MaxClients 150
MaxRequestsPerChild 0
</IfModule>
User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}
AccessFileName .htaccess
<Files ~ "^\.ht">
Order allow,deny
Deny from all
Satisfy all
</Files>
DefaultType None
HostnameLookups Off
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
Include mods-enabled/*.load
Include mods-enabled/*.conf
Include ports.conf
LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %O" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
Include conf.d/
Include sites-enabled/
phpmyadmin.conf
phpmyadmin.conf
Alias /phpmyadmin /usr/share/phpmyadmin
<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_admin_flag allow_url_fopen Off
php_value include_path .
php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp
php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/
</IfModule>
</Directory>
<Directory /usr/share/phpmyadmin/setup>
<IfModule mod_authn_file.c>
AuthType Basic
AuthName "phpMyAdmin Setup"
AuthUserFile /etc/phpmyadmin/htpasswd.setup
</IfModule>
Require valid-user
</Directory>
<Directory /usr/share/phpmyadmin/libraries>
Order Deny,Allow
Deny from All
</Directory>
<Directory /usr/share/phpmyadmin/setup/lib>
Order Deny,Allow
Deny from All
</Directory>
这些是启用的 apache 2 mods:
These are the enabled apache 2 mods:
actions alias auth_basic auth_digest authn_file authz_default authz_groupfile authz_host authz_user autoindex cgi dav dav_fs deflate dir env fcgid include mime negotiation php5 reqtimeout rewrite ruby setenvif ssl status suexec suphp
以及已安装的与 apache 2 或 php 相关的软件包:
and the installed packages related to apache 2 or php:
ii libapache2-mod-php5 5.4.4-14 i386 server-side, HTML-embedded scripting language (Apache 2 module)
ii libapache2-mod-suphp 0.7.1-3 i386 Apache2 module to run PHP scripts with the owner permissions
ii php-auth 1.6.2-1 all PHP PEAR modules for creating an authentication system
ii php-pear 5.4.4-14 all PEAR - PHP Extension and Application Repository
ii php5 5.4.4-14 all server-side, HTML-embedded scripting language (metapackage)
ii php5-cgi 5.4.4-14 i386 server-side, HTML-embedded scripting language (CGI binary)
ii php5-cli 5.4.4-14 i386 command-line interpreter for the php5 scripting language
ii php5-common 5.4.4-14 i386 Common files for packages built from the php5 source
ii php5-curl 5.4.4-14 i386 CURL module for php5
ii php5-gd 5.4.4-14 i386 GD module for php5
ii php5-imagick 3.1.0~rc1-1+b2 i386 ImageMagick module for php5
ii php5-imap 5.4.4-14 i386 IMAP module for php5
ii php5-intl 5.4.4-14 i386 internationalisation module for php5
ii php5-mcrypt 5.4.4-14 i386 MCrypt module for php5
ii php5-mysql 5.4.4-14 i386 MySQL module for php5
ii phpmyadmin 4:3.4.11.1-2 all MySQL web administration tool
ii suphp-common 0.7.1-3 i386 Common files for mod suphp
ii apache2 2.2.22-13 i386 Apache HTTP Server metapackage
ii apache2-doc 2.2.22-13 all Apache HTTP Server documentation
ii apache2-mpm-prefork 2.2.22-13 i386 Apache HTTP Server - traditional non-threaded model
ii apache2-suexec 2.2.22-13 i386 Standard suexec program for Apache 2 mod_suexec
ii apache2-utils 2.2.22-13 i386 utility programs for webservers
ii apache2.2-bin 2.2.22-13 i386 Apache HTTP Server common binary files
ii apache2.2-common 2.2.22-13 i386 Apache HTTP Server common files
ii libapache2-mod-fcgid 1:2.3.6-1.2 i386 an alternative module compat with mod_fastcgi
ii libapache2-mod-php5 5.4.4-14 i386 server-side, HTML-embedded scripting language (Apache 2 module)
ii libapache2-mod-ruby 1.2.6-2 i386 Embedding Ruby in the Apache2 web server
ii libapache2-mod-suphp 0.7.1-3 i386 Apache2 module to run PHP scripts with the owner permissions
我在这里的想法不多了.需要说明的是,我错误地直接从Debian 5升级到Debian 7,这是一个很大的痛苦并造成了很多麻烦.当前的问题是其中的一部分,可能涉及一些奇怪的原因,例如折旧的配置条目或其他什么.
I am running out of ideas here. I need to mention, that I mistakenly upgraded directly from Debian 5 to Debian 7 which was a big pain and caused a lot of trouble. This current problem is part of it and there might be weird causes involved, such as depreciated config entries or whatever.
推荐答案
首先,PHP是什么版本?
First of all, what is the version of PHP?
如果除 phpMyAdmin 之外的其他 .php 脚本也能工作,那么可以很安全地假设 phpMyAdmin 安装出现问题.(无论是文件还是虚拟主机)
If other .php scripts work except for phpMyAdmin, the is pretty safe to assume something is wrong with phpMyAdmin installation. (either with the files or the Virtual Host)
疑难解答:
你能在 phpMyAdmin 目录中运行另一个脚本吗?尝试使用包含 phpinfo() 的文件;如果它不起作用,那么问题出在您的 apache 配置中.
Can you run another script in phpMyAdmin directory? Try with a file containing phpinfo(); If it does not work then the problem is in your apache configuration.
如果上述情况属实,那么解析器由于某种原因没有将 phpMyAdmin/index.php 识别为 php 文件.尝试重新安装 phpMyAdmin.
If the above is true, then the parser is not recognising phpMyAdmin/index.php as a php file, for some reason. Try reinstalling phpMyAdmin.
<小时>
想法:
删除AddType application/x-httpd-php .php
.你不应该需要它.
Remove AddType application/x-httpd-php .php
. You should not need it.
在 PHP 5.4 magic_quotes_gpc
中被删除.如果您运行的是 PHP5,请删除该行.
In PHP 5.4 magic_quotes_gpc
was removed. If you're running PHP5, remove that line.
从 PHP 4.0.3 开始,track_vars
始终处于打开状态,因此也将其删除.
As of PHP 4.0.3, track_vars
is always turned on, so remove it also.
自 PHP 4.2.0 起,register_globals
该指令默认为关闭.在 PHP5.3 中 register_globals
被弃用,从 PHP5.4 register_globals
开始被移除.所以如果运行 PHP > 4.2.0 删除该行.
As of PHP 4.2.0, register_globals
this directive defaults to off. In PHP5.3 register_globals
is deprecated, as of PHP5.4 register_globals
was removed. SO if running PHP > 4.2.0 remove that line.
这篇关于Phpmyadmin 的 PHP 不执行,但其他 php 脚本工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!