这个问题之前有人问过,如何升级 PHPmyAdmin
给出的答案是
sudo apt-get update
sudo apt-get install phpmyadmin
或者
sudo apt-get update
sudo apt-get upgrade
phpmyadmin
apt-get 中包含的版本4.5.4
是发布2016 年 1 月 28 日。
在回答这个问题时,一个答案是使用phpMyAdmin 档案它提供以下命令。
sudo add-apt-repository ppa:phpmyadmin/ppa
sudo apt-get update
在我的例子中,它更新了很多东西,但不是特别的phpmyadmin
,我需要额外的命令
sudo apt-get install phpmyadmin
这确实成功地超越4.9.0.1
了发布在2019年。
截至撰写本文时,似乎使用以下模糊说明手动下载和复制docs.phpmyadmin.net是必须的。
phpmyadmin
是否有比 PPA更新的存储库或是否需要手动安装?
答案1
@照片拉里一针见血!我将根据他的观点给出一个易于理解和遵循的答案。
- 您的第一步是从官方 Ubuntu repo 安装 PMA(phpMyAdmin)
apt-get install phpmyadmin
:。 - 接下来,cd 进入 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 定义路径,“link.zip”是当前(2018 年 7 月 17 日)PMA 的最新版本。您可以找到这些链接这里。
- 下一步您需要解压(
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
。
- 我们现在将添加我们的 Blowfish Secret!
nano config.inc.php
并从中复制安全秘密:https://phpsolved.com/phpmyadmin-blowfish-secret-generator/。
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 创建一个 tmp 目录:
mkdir tmp
&chown -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()
、、)。因此,我为此制作了自己的工具。它会生成一个加密安全的 32 个字符串,您可以放心使用,不用担心安全或错误!我用来生成随机性的函数的 PHP 手册页shuffle()
array_rand()
http://php.net/manual/en/function.random-int.php。我用这个链接替换了旧链接:https://www.motorsportdiesel.com/tools/blowfish-salt/pma/。
编辑于 2020 年 9 月 11 日
我已经更改了 blowfish 生成器链接,因为旧的链接不再可访问。
答案2
count(): Parameter must be an array or an object that implements Countable
由于 php7.2 存在问题并收到错误,我不得不这样做。
apt 的版本是 4.5.4,而 ppa 没有针对 php7.2 的修复。我的解决方案是从 https://www.phpmyadmin.net/并将文件复制到/usr/share/phpmyadmin
。
答案3
当前最佳答案非常好,但有点太复杂了。这里我把这个过程改写得更简洁一些。它假设你在像 home 这样的安全目录中工作。
- 备份现有配置:
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
- [可选]清理你的工作目录:
rm config.inc.php phpMyAdmin-latest-english.tar.xz
编辑 2020:意识到我们可以轻松保存配置。
答案4
按照发现的说明这里,我创建了这个简单的脚本来更新 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