
为了方便在Linux上操作mysql数据库,打算安装一个phpmyadmin,不过在下载安装的过程中出现了一些坑,特此记录。
1. 在官网上下载phpmyadmin
https://files.phpmyadmin.net/phpMyAdmin/4.9.7/phpMyAdmin-4.9.7-all-languages.tar.gz
2. 解压
tar -zxvf phpMyAdmin-4.9.0.1-all-languages.tar.gz
3. 移动到网站目录下
mv phpMyAdmin-4.9.0.1-all-languages.tar.gz /var/www/html
4. 复制配置文件
cp config.sample.inc.php config.inc.php
5. 在浏览器*问时出现403错误:You don't have permission to access /phpmyadmin/ on this server
在网上查找相关资料,可能是SELinux的问题。把目录或文件设成了user_home_t类型,因此apache的进程没有权限,造成无法访问。因为针对 Apache的进程所使用的SELinux target policy规定了apache的进程只能访问httpd_sys_content_t类型的目录或文件。
解决办法:
# chcon -R -t httpd_sys_content_t /var/www/html/phpmyadmin
6. 再次通过浏览器访问时可以正常打开phpmyadmin的登录界面了。
7. 不过在输入用户名和密码后,提示如下错误
8. 在网上找了很多资料,尝试了很多方法:
- 在php.ini 找到session.save_path 这一行,设成session.save_path = “/var/lib/php/session”,并把前面的分号去掉。
- 以上的/var/lib/php/session根据你实际情况设定。
- 修改此目录的权限和属主:
- # chown -R nobody:nobody /var/lib/php/session # nobody权限很低,最好设置它为web运行账户!
- # chmod 777 /var/lib/php/session #session目录至少设置770权限以上,否则phpmyadmin登录会有问题。
- 重启相关服务,如果是apache,就重启apache服务:/etc/init.d/httpd restart;如果是Nginx,就重启php-fpm服务:/etc/init.d/php-fpm restart
9. but,但是依然没有效果。
后来将 $cfg['Servers'][$i]['host'] = '127.0.0.1'; 修改成$cfg['Servers'][$i]['host'] = 'localhost'; 重启apache服务,phpmyadmin就能正常登录了
10. 因为没有完全重现服务器状态,所以在不知道是把配置文件中的host修改成localhost的功劳,还是第8步修改session权限的缘故。