Phpmyadmin的PHP不执行,但其他PHP脚本工作


PHP of Phpmyadmin does not execute but other php scripts work

调用phpmyadmin网站时,出现application/x-httpd-php-的"保存文件"对话框,因此我的服务器不执行phpmyadmin php脚本,而是将代码传输到我的浏览器。其他php如roundcube或ispconfig工作正常

  • 我在这里发现了一个主题,声明在php.ini中启用short_open_tags,但这没有帮助(即它已经在默认情况下启用)。此外,我检查了已经安装并启用了apache 2 php5模块。
  • 在日志文件中显然没有错误被列出。
  • 我想知道phpmyadmin.conf是否被认为,因为只有一个符号链接在etc/apache2/conf中指向/usr/share/phpmyadmin。但是由于别名/phpmyadmin可以工作,所以这不是问题。
  • 我检查了apache2配置文件,但没有发现任何错误。

尽管如此,我还是想在这里发布一些: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

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的mod:

 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相关的安装包:

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,这是一个很大的痛苦,造成了很多麻烦。当前的问题是其中的一部分,可能会有奇怪的原因,如贬值的配置项或其他。

首先,PHP的版本是什么?

如果除了phpMyAdmin以外的其他。php脚本都可以工作,那么可以很安全地假设phpMyAdmin的安装有问题。(无论是与文件或虚拟主机)


排除:

  1. 你可以在phpMyAdmin目录下运行另一个脚本吗?尝试使用包含phpinfo()的文件;

  2. 如果上面是真的,那么解析器不识别phpMyAdmin/index.php作为一个php文件,出于某种原因。重新安装phpMyAdmin.


思想:

移除AddType application/x-httpd-php .php。你不应该需要它。

在PHP 5.4 magic_quotes_gpc 被删除。如果您运行的是PHP5,请删除该行。

从PHP 4.0.3开始, track_vars 总是打开的,所以也删除它。

从PHP 4.2.0开始, register_globals 这个指令默认为关闭。在PHP5.3 register_globals 被弃用,在PHP5.4 register_globals 被移除。因此,如果运行PHP> 4.2.0,删除该行。

我必须添加以下内容,它告诉服务器解析phpMyAdmin目录

中的PHP文件
<Directory /usr/share/phpMyAdmin>
  Options -Indexes +IncludesNOEXEC +SymLinksIfOwnerMatch +ExecCGI
  allow from all
  AllowOverride All Options=ExecCGI,Includes,IncludesNOEXEC,Indexes,MultiViews,SymLinksIfOwnerMatch
  Require all granted
  AddType application/x-httpd-php .php
  AddHandler fcgid-script .php
  AddHandler fcgid-script .php5
  FCGIWrapper /path/fcgi-bin/php5.fcgi .php
  FCGIWrapper /path/fcgi-bin/php5.fcgi .php5
</Directory>

在phpmyadmin配置过程中,MySQL数据库可能使用Unix Socket连接方法,实际上应该使用TCP/IP。然后在配置过程中选择localhost和默认端口[留空],这样就完成了。再次修改,输入terminal:

sudo dpkg-reconfigure phpmyadmin

您可能需要安装php-mysql和libapache2-mod-php,以便您的php安装能够与apache和mysql通信。如果没有这些包,PhpMyadmin将无法与PHP安装通信。

所以尝试运行以下命令并重新启动apache2。

sudo apt install libapache2-mod-php php-mysql

对我来说,问题是服务器没有解析PHP在phpMyAdmin目录。我添加了:

<Directory /usr/share/phpMyAdmin>
  allow from all
  Require all granted
  AddType application/x-httpd-php .php
</Directory>

进入我的phpMyAdmin.conf(在etc/httpd/conf.d/中),这就完成了工作。

服务器是CentOS 7.6.1810