新安装的bt宝塔面板,访问phpMyAdmin报错,最可能的原因是端口888没有放行。
首先检查/etc/sysconfig/iptables
里看看888端口有没有打开,如果没有,需要添加放行888端口的配置,然后执行service iptables restart
重启iptables。
-A INPUT -p tcp -m state --state NEW -m tcp --dport 888 -j ACCEPT
当然,在宝塔面板后台-安全的端口控制里,输入888然后点击放行,也能达到同样的效果。
如果放行了888端口,访问phpMyAdmin仍然报错,如果你的VPS是阿里云服务器ECS或腾讯云主机等,还需要在安全组规则里放行888端口,如果是阿里云轻量服务器,则需要在后台swas.console.aliyun.com的安全-防火墙里添加规则。
如果端口888配置没有问题,还是打不开phpMyAdmin,例如报错502 Bad Gateway
,尝试更换php版本看能否解决:在宝塔面板后台,点击软件管理,找到phpMyAdmin,点击设置,再点击php版本,选择php版本,保存,如图所示:
以下措施可以提升phpMyAdmin的安全性:
- 将默认的888端口改为其他端口
- 在宝塔后台的phpMyAdmin管理里面设置访问密码
- 设置必须通过域名才能访问phpMyAdmin
- 安装后删除setup目录
- 目录名不要起pma、phpmyadmin、myadmin这样的名字,改成只有你自己知道的
注意宝塔升级或更改nginx版本后,nginx的主配置文件会被覆盖掉,需要手动重新配置。
宝塔面板如何手动升级phpMyAdmin
安装宝塔面板后,phpMyAdmin默认版本是4.4,很久都没有提示存在最新版本,或者提示更新的版本并不是phpMyAdmin官方最新的4.8.3版本,忍不住想升级到最新的4.8.3版本。
进入到/www/server/phpmyadmin
目录,下载phpMyAdmin 4.8.3,然后替换掉之前的版本。
cd /www/server/phpmyadmin
wget https://files.phpmyadmin.net/phpMyAdmin/4.8.3/phpMyAdmin-4.8.3-all-languages.zip
unzip phpMyAdmin-4.8.3-all-languages.zip
mv phpmyadmin_xxx phpmyadmin_xxx_bak #注:这里的xxx在每台VPS里都不一样,请自行替换
mv phpMyAdmin-4.8.3-all-languages phpmyadmin_xxx
echo '4.8' > version.pl #注:这里填的版本为4.8,不要填4.8.3
然后就可以访问phpMyAdmin 4.8.3了,但还存在问题需要完善,第一个是在宝塔面板后台的数据库里点击phpMyAdmin不能自动登录,第二个是登录后提示配置文件现在需要一个短语密码
。解决办法如下:
将phpmyadmin目录下的config.sample.inc.php
重命名为config.inc.php
,打开config.inc.php
和libraries/config.default.php
,分别找到blowfish_secret
的配置,设置一个长度为32到46的字符串,这里假定为blowfishblowfishblowfishblowfish
:
$cfg['blowfish_secret'] = 'blowfishblowfishblowfishblowfish';
在config.inc.php文件中设置使用"cookie"验证方式:
$cfg['Servers'][$i]['auth_type'] = 'cookie';
还有一个问题:
$cfg['TempDir'] (./tmp/) 读取失败且不能建立缓存, phpMyAdmin运行速度将受影响.
说明一下,这个tmp目录是在phpmyadmin的libraries/vendor_config.php
中设置的:
define('TEMP_DIR', './tmp/');
解决办法是给phpmyadmin文件夹授权,访问phpmyadmin时会自动在phpmyadmin下创建tmp文件夹。
chmod 777 phpmyadmin_xxx #注:改为实际的目录名
另外一个办法是将phpmyadmin文件夹的所有者由root用户改为www用户。
chown www:www phpmyadmin_xxx #注:改为实际的目录名