phpmyadmin 显示代码而不是网页
Posted
技术标签:
【中文标题】phpmyadmin 显示代码而不是网页【英文标题】:phpmyadmin displays code not web page 【发布时间】:2014-01-11 10:11:33 【问题描述】:我正在升级我的发行版,从 kali(wheezy) 升级到 sid。但是当我设置我的网络服务器时,我重新安装了apache2,php,mysql等,但是当我访问localhost/phpmyadmin
时出现这个错误:那个URL没有显示phpmyadmin的索引/登录页面,而是显示代码。在我的/var/www
中,默认是index.html,我将它重命名为index.php,没关系,页面加载完毕,我对/var/www
中的其他目录做同样的事情我添加了index.php或foo.php和访问它,没问题,但是当我输入phpmyadmin
时,它正在显示代码。我尝试安装phpminiadmin
和adminer
,但我得到同样的错误,两者都显示代码而不是网页。
这是我的apache2.conf
http://pastebin.com/MLYNQc6S
这是我的规格:
#php -v
PHP 5.5.7-2 (cli) (built: Dec 13 2013 00:25:07)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2013 Zend Technologies
with Zend OPcache v7.0.3-dev, Copyright (c) 1999-2013, by Zend Technologies
with Xdebug v2.2.3, Copyright (c) 2002-2013, by Derick Rethans
# mysql --version
mysql Ver 14.14 Distrib 5.5.33, for debian-linux-gnu (i686) using readline 6.2
# apache2 -v
Server version: Apache/2.4.6 (Debian)
Server built: Aug 12 2013 18:20:23
uname -a
Linux angga.id 3.7-trunk-686-pae #1 SMP Debian 3.7.2-0+kali8 i686 GNU/Linux
在my /var/log/apache2/*log
中没有发现错误
我找到了这个Localhost/phpmyadmin/ returns php code,但没有帮助。
那么我的服务器出了什么问题?
编辑 1:
就像@Matt 在第一条评论中所说的那样。 libapache2-mod-php5
未安装,所以我使用来自 repo 的 apt-get
安装它。
apt-get install libapache2-mod-php5
但它返回一个错误,像这样。
dpkg: error processing libapache2-mod-php5 (--configure):
subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
libapache2-mod-php5
E: Sub-process /usr/bin/dpkg returned an error code (1)
我打开 synaptic 并搜索 libapache2-mod-php5
显示两个包名为 libapache2-mod-php5filter
和 libapache2-mod-php5
,我检查了所有内容并安装它,成功,没有发现错误,
我重新启动 apache2 并转到 localhost/phpmyadmin
及其工作。
谢谢你的马特。
【问题讨论】:
我不相信这个问题最好在 Stack Overflow 上提出;它更多地与服务器管理有关,而不是编程。也许试试Super User? (这看起来可能是一个非常简单的配置错误,我猜你只是没有在 Apache 中加载 PHP 模块。鉴于instructions in the wiki,我可能会确保你安装了libapache2-mod-php5
,但是我不是 Debian 专家。)
@MattGibson 你说得对,libapache2-mod-php5
没有安装,但我收到了安装错误dpkg: error processing libapache2-mod-php5 (--configure): subprocess installed post-installation script returned error exit status 1 Errors were encountered while processing: libapache2-mod-php5 E: Sub-process /usr/bin/dpkg returned an error code (1)
。我会先修复这个安装错误,完成后测试访问phpmyadmin
:) 感谢您的帮助:)
【参考方案1】:
我在 Debian 10 (buster) 和 PHP 7.3.19.1 和 apache2 版本 2.4.38 和 phpmyadmin 5.02 上遇到了同样的问题。
文件usr/share/phpmyadmin/index.php
未被解释。
在验证了所有手动安装后,我运行了以下命令:
apt-get update
apt-get install libapache2-mod-php7.3
systemctl restart apache2
终于成功了。 apache2 的 PHP 模块不可用。
【讨论】:
【参考方案2】:如果所有其他 PHP 页面都工作正常,那么这可能不是 PHP 相关问题。
由于只有 phpmyadmin 登录页面显示 php 代码而不是实际登录页面,因此您的 apache Web 根目录 /var/www/html/phpmyadmin
中的 符号链接 可能正在引用 phpmyadmin 索引文件 @987654322 @而不是phpmyadmin目录/usr/share/phpmyadmin
。
这是一个不正确的符号链接:
$ ll /var/www/html
lrwxrwxrwx 1 root root timestamp phpmyadmin -> /usr/share/phpmyadmin/index.php
这是一个正确的符号链接:
$ ll /var/www/html
lrwxrwxrwx 1 root root timestamp phpmyadmin -> /usr/share/phpmyadmin/
如果符号链接不正确,请更改它:
$ sudo ln -sfn /usr/share/phpmyadmin /var/www/html/phpmyadmin
(或者改为删除它并重新创建它:)
$ sudo unlink /var/www/html/phpmyadmin
$ sudo ln -s /usr/share/phpmyadmin /var/www/html/phpmyadmin
【讨论】:
【参考方案3】:在我的情况下,这是因为我在事后安装了 apache2,然后没有链接正确的 php mods 并因此被激活。你需要做什么:
cd /etc/apache2/mods-enabled
sudo ln -s ../mods-available/php7.2.conf
sudo ln -s ../mods-available/php7.2.load
然后你只需通过执行以下命令来重新启动服务器:
sudo systemctl restart apache2
【讨论】:
【参考方案4】:试试这个
sudo apt-get install libapache2-mod-php7.0
这会为 apache2 安装库以使用 php7.0
【讨论】:
提供更多解释安装这个的原因是什么? @Elin 这是否也会更改应用程序的 PHP 版本?我不想通过更改 PHP 版本来破坏其他页面。 @FarimanKashani 是的。这总是不利的一面。但是安全性改进是一个很大的好处。【参考方案5】:sudo apt install php libapache2-mod-php
sudo apt install php7.0-mbstring
sudo a2dismod mpm_event
sudo a2enmod mpm_prefork
service apache2 restart
之后
gedit /etc/apache2/apache2.conf
添加以下行
包括 /etc/phpmyadmin/apache.conf
服务 apache2 重启
libapache2-mod-php 服务器端,嵌入 HTML 的脚本语言(Apache 2 模块)所以我们必须添加这个
【讨论】:
【参考方案6】:请检查以下内容,从一些差异链接中为您找到:
1. Make sure that PHP is installed. This sounds silly, but you never
know.
2. Make sure that the PHP module is listed and uncommented inside of your Apache's httpd.conf This should be something like
LoadModule php5_module "c:/php/php5apache2_2.dll" in the file.
Search for LoadModule php, and make sure that there is no comment
(;) in front of it.
3. Make sure that the http.conf file has the PHP MIME type in it. This should be something like AddType application/x-httpd-php
.php. This tells Apache to run .php files as PHP. Search for
AddType, and then make sure there is an entry for PHP, and that
it is uncommented.
4. Make sure your file has the .php extension on it, otherwise it will not be executed as PHP.
5. Make sure you are not using short tags in the PHP file (<?), these are deprecated, and usually disabled. Use <?php instead.
Actually run your file over said webserver using an URL like http://localhost/file.php not via local access
file://localhost/www/file.php
或查看http://php.net/install
谢谢
【讨论】:
以上是关于phpmyadmin 显示代码而不是网页的主要内容,如果未能解决你的问题,请参考以下文章
phpMyAdmin - #1044 - 用户 ''@'localhost' 拒绝访问数据库