如何升级PHPmyAdmin [重新访问]

这个问题之前已经被问过了,如何升级PHPmyAdmin

给出的答案是

sudo apt-get update
sudo apt-get install phpmyadmin

或者

sudo apt-get update
sudo apt-get upgrade

apt-get 包含的 phpmyadmin 版本是 4.5.4,该版本于 2016 年 1 月 28 日 发布

对这个问题的回答之一是使用 phpMyAdmin 存档,它提供了以下命令。

sudo add-apt-repository ppa:phpmyadmin/ppa
sudo apt-get update

在我的情况下,更新了很多东西,但并不是特别需要更新phpmyadmin,我需要额外的命令。
sudo apt-get install phpmyadmin

这成功地通过了在2019年发布的版本4.9.0.1

根据本文撰写时,似乎需要按照来自docs.phpmyadmin.net的模糊说明进行手动下载和复制。

除了PPA,是否有更新的phpmyadmin存储库,还是需要手动安装?


2@Rinzwind,目前版本是4.5.4,我希望它成为当前版本的4.7.3,这不就是升级吗? - Dwight Wilbanks
12个回答

@Photo Larry基本上说得一针见血!我将根据他的回答给出一个易于理解和遵循的答案。
你的第一步是从官方Ubuntu仓库安装PMA(phpMyAdmin):`apt-get install phpmyadmin`。
接下来,进入usr/share目录:`cd /usr/share`。
第三步,删除phpmyadmin目录:`rm -rf phpmyadmin`。
现在我们需要将最新版本的PMA下载到我们的系统上(请注意,您需要wget:`apt-get install wget`):`wget -P /usr/share/ "https://files.phpmyadmin.net/phpMyAdmin/4.8.2/phpMyAdmin-4.8.2-english.zip"`。让我解释一下这个命令的参数,-P定义了路径,“the link.zip”是当前(7/17/18)最新版本的PMA。您可以在这里找到这些链接。
对于下一步,您需要unzip(`apt-get install unzip`):`unzip phpMyAdmin-4.8.2-english.zip`。我们刚刚解压了PMA,现在我们将把它移动到最终位置。
让我们使用`cp`(复制)命令来移动文件!请注意,由于这是一个文件夹,我们必须添加`-r`参数。`cp -r phpMyAdmin-4.8.2-english phpmyadmin`。
现在是清理的时候了:`rm -rf phpMyAdmin-4.8.2-english`。

继续阅读!

当您登录PMA后,您可能会注意到两个错误。

the configuration file now needs a secret passphrase (blowfish_secret). phpmyadmin
The $cfg['TempDir'] (./tmp/) is not accessible. phpMyAdmin is not able to cache templates and will be slow because of this.

然而,这些问题相对容易解决。对于第一个问题,你只需要打开你喜欢的编辑器并编辑/usr/share/phpmyadmin/config.inc.php,但是有个问题,我们已经删除了它!没关系,你只需要执行以下操作:cd /usr/share/phpmyadmin & cp config.sample.inc.php config.inc.php

phpMyAdmin Blowfish 密钥变量示例:

/*
 * This is needed for cookie based authentication to encrypt password in
 * cookie
 */
$cfg['blowfish_secret'] = '{^QP+-(3mlHy+Gd~FE3mN{gIATs^1lX+T=KVYv{ubK*U0V'; 
/* YOU MUST FILL IN THIS FOR COOKIE AUTH! */

现在保存并关闭文件。

  • 现在我们将为PMA创建一个临时目录:mkdir tmpchown -R www-data:www-data /usr/share/phpmyadmin/tmp。最后一条命令允许Apache Web服务器拥有tmp目录并编辑其内容。

编辑于2018年12月12日

你不想让别人偷走你的Cookie,对吧?

我注意到https://www.question-defense.com/tools/phpmyadmin-blowfish-secret-generator在旧版本的PMA上会导致错误。然而,我不建议你使用这样的网站的主要原因是你无法确定它们是否使用了弱PRNG(伪随机数生成器)(例如rand()mt_rand()lcg_value())或者其中的"洗牌"函数(例如str_shuffle()shuffle()array_rand())。因此,我自己制作了一个工具来解决这个问题。它生成一个32个字符的密码安全字符串,你可以放心使用,不用担心安全性或错误!我使用的生成随机数的PHP函数的手册链接http://php.net/manual/en/function.random-int.php。我用这个链接替换了旧链接:https://www.motorsportdiesel.com/tools/blowfish-salt/pma/

2020年9月11日编辑

由于旧链接无法访问,我已更改了Blowfish生成器的链接。


很好的准则!我基本遵循了它们,只是稍微有几个侧面问题:a)我不会删除旧版本,而是将其重命名;b)创建一个名为phpmyadmin的符号链接可能会很方便,可以轻松在多个版本之间切换。 - AntonK
我已经将你的答案复制到这里,因为我认为这是最好的选择。如果你想自己回答,告诉我,我会删除我的答案。 - PhoneixS
没关系。非常感谢你的信任,并且告知我!@PhoneixS - RatherLogical
作为清理的一部分,您还应该删除已下载的ZIP文件。 - IvanRF
2好像盐发生器无法访问 :( - Siarhey Uchukhlebau
看起来错误已经消失了。 - Džuris
不要从示例中创建config.inc.php文件,而是将libraries/vendor_config.php文件中的define('CONFIG_DIR', ROOT_PATH);更改为define('CONFIG_DIR', '/etc/phpmyadmin/');,以消除指向phpMyAdmin安装的正式配置文件(来自官方Ubuntu存储库)的秘密密码(blowfish_secret)错误。这也会删除“Configuration of pmadb… not OK”警告来源 - William Ardila
2几乎正确,只是你把ZIP文件留在了目录中。 - Raptor
1自从我第一次启动EC2以来,一直遇到phpmyadmin的问题。这个方法解决了我所有的问题。我盲目地按照你的步骤操作,并且没有失望。 - fischgeek

我只是因为php7.2的问题而不得不这样做,收到了错误消息count(): Parameter must be an array or an object that implements Countable
apt版本是4.5.4,ppa没有针对php7.2的修复。我的解决方案是从https://www.phpmyadmin.net/下载最新版本,并将文件复制到/usr/share/phpmyadmin

1对我来说非常有效 - Norman Bird
好的,现在好多了!Debian(以及Ubuntu)应该升级它们的软件包。附言:我甚至在运行PHP 7.3。 - Melroy van den Berg

当前的最佳答案非常好,但有点太复杂了。在这里,我将过程重新写成更简洁的形式。它假设您正在一个安全目录(如home)中工作。
  1. 备份现有配置:
cp /usr/share/phpmyadmin/config.inc.php .

下载最新的phpMyAdmin(或其他版本):
wget https://www.phpmyadmin.net/downloads/phpMyAdmin-latest-english.tar.xz

删除当前安装:
find /usr/share/phpmyadmin -mindepth 1 -delete

将下载的存档文件提取出来,而不是使用旧的安装文件。
tar xf phpMyAdmin-latest-english.tar.xz --strip 1 -C /usr/share/phpmyadmin

更换配置文件:
cp config.inc.php /usr/share/phpmyadmin

[optional] 清理您的工作目录:
rm config.inc.php phpMyAdmin-latest-english.tar.xz

编辑2020年:意识到我们可以轻松保存配置。

好的,很简单。谢谢! - Ivijan Stefan Stipić
谢谢!对我来说,运行“sudo service apache2 restart”是必要的。 - Oleg

如上所述,您需要手动更新文件,但我花了一个小时才找到它们的位置(/usr/share),并且一直看到它将被放置在/ var / www / html中,这是不正确的。如果您在添加了上述声称为当前版本的存储库后使用apt-get install phpmyadmin安装软件,则至少会获得所需的php7.2库。然后,您需要将新版本(4.8)安装到/ usr / share / phpmyadmin中,方法是转到/ usr / share并克隆git: git clone https://github.com/phpmyadmin/phpmyadmin.git (我首先执行了rm -rf phpmyadmin),只是为了确保没有留下旧代码。然后,当进入Web界面时...您会看到正在使用最新版本。然后,请确保cd到phpmyadmin并运行:composer update --no-dev 这将安装所需的附加库。这将安装4.9.0-dev,非常好用,我正在运行Ubuntu 16.04.4。谢谢,希望这能帮助某人节省时间。

谢谢!这真是救了我的一天!但是我决定使用稳定版本 https://github.com/blackmambano5/phpmyadmin.git,这是4.8.1版本,一切都正常工作! - RicardO
谢谢,这很有帮助。我是从压缩文件安装的,而不是从Github上下载,两者之间差别不大。我建议将问题编辑为将大段落分解为一系列步骤的列表。 - pgr
最好从git获取最新的稳定版本,就像这样:git clone -b STABLE https://github.com/phpmyadmin/phpmyadmin.git - Christopher K.

根据在这里找到的说明,我创建了这个简单的脚本来更新PHPMyAdmin到最新的稳定版本。
echo
echo "Backing up"
mv /usr/share/phpmyadmin/ /usr/share/phpmyadmin.bak

echo "Getting lastest PHPMyAdmin version..."
mkdir -p /usr/share/phpmyadmin/
cd /usr/share/phpmyadmin/
wget https://www.phpmyadmin.net/downloads/phpMyAdmin-latest-all-languages.tar.gz
tar xzf phpMyAdmin-latest-all-languages.tar.gz
mv phpMyAdmin-*/* /usr/share/phpmyadmin

echo "Updating vendor_config"
sed -i -r "s/('TEMP_DIR'\s*,)[^\)]*/\1 '\/var\/lib\/phpmyadmin\/tmp\/'/" /usr/share/phpmyadmin/libraries/vendor_config.php
sed -i -r "s/('CONFIG_DIR'\s*,)[^\)]*/\1 '\/etc\/phpmyadmin\/'/" /usr/share/phpmyadmin/libraries/vendor_config.php

echo "Cleaning up..."
rm /usr/share/phpmyadmin/phpMyAdmin-latest-all-languages.tar.gz
rm -rf /usr/share/phpmyadmin/phpMyAdmin-*
rm -rf /usr/share/phpmyadmin.bak

echo "Done!"
echo

谢谢,伙计。剧本写得不错。 - Taavi

Crimson501的回答很完美,除非你使用的是Ubuntu系统。为了解决Ubuntu上的blowfish和tmp文件问题,你需要修改以下文件,以引用现有的配置和Ubuntu使用的tmp目录。
使用你喜欢的文本编辑器进行修改:
/usr/share/phpmyadmin/libraries/vendor_config.php
find TEMP_DIR
modify './tmp/' to '/var/lib/phpmyadmin/tmp/'
find CONFIG_DIR
modify '' to '/etc/phpmyadmin/'
save the changes
现在当你返回并刷新页面时,错误将会消失。


2我觉得他是在问如何将它更新到最新版本,而不是从哪里下载安装文件。 - Tarik
12018年7月,那个PPA仍然停留在4.6.6版本(带有错误),而phpMyAdmin已经更新到了4.8版本(没有错误)。看起来这个PPA不再维护了? - Steve
刚刚使用了这个PPA -- 4.9.0,还不错 -- 最新版本是4.9.1。让生活变得简单。不过我确实需要升级PHP到7.3。 - nrapopor

你可以简单地手动安装最新版本的phpmyadmin。
请访问https://www.phpmyadmin.net/downloads并下载最新版本,但请确保您的PHP和MySQL版本与网站上列出的兼容版本相匹配。
将其解压到服务器的公共文件夹中,并编辑config.inc.php文件。 确保您的auth_type设置为cookie,host设置为您的主机。这个设置将在登录时要求您输入用户名和密码。
/*Authentication type*/
$cfg['Servers'][$i]['auth_type'] = 'cookie';
$cfg['Servers'][$i]['host'] = 'localhost';


该仓库没有Release文件,因此默认禁用。 - Raptor
它只适用于Bionic和Eoan。 - William Desportes

我建议使用Docker来运行最新的phpmyadmin。它设置简单,所有依赖项都会自动管理,并且不会与您本地安装产生冲突。它只使用25MB的内存,因此也不会占用过多的内存资源。
在任何平台上都可以轻松运行最新版本的phpmyadmin。

https://docs.phpmyadmin.net/en/latest/setup.html#installing-using-docker