Up in the Air!
在云端
Home
Categories
Archives
Tags
About
Home
在Centos 6和7上安装设置phpMyAdmin 4.8
在Centos 6和7上安装设置phpMyAdmin 4.8
取消
在Centos 6和7上安装设置phpMyAdmin 4.8
由
aoeII
发布于 2015-07-08
·
最后更新:2018-05-22
1173
本文介绍在Centos 6和7上如何安装设置 phpMyAdmin 4.8 欢迎转载,转载请注明出处:https://aoeii.com/posts/how_to_install_phpmyadmin_on_centos_6_and_7 # 准备工作 安装Centos的epel源 Centos6 yum install -y epel-release && rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6 Centos7 yum install -y epel-release && rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 安装centos的remi源 (强烈建议,因为这个源里有最新版稳定版的phpmyadmi 4.x) Centos6 yum install -y http://rpms.famillecollet.com/enterprise/remi-release-6.rpm && rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-remi cp /etc/yum.repos.d/remi.repo /etc/yum.repos.d/remi.repo.`date +%Y%m%d%H%M%S`.bak num=$(awk '/enabled=0/{print NR}' /etc/yum.repos.d/remi.repo | sed 'q') && sed -i ''$num'c enabled=1' /etc/yum.repos.d/remi.repo Centos7 yum install -y http://rpms.famillecollet.com/enterprise/remi-release-7.rpm && rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-remi cp /etc/yum.repos.d/remi.repo /etc/yum.repos.d/remi.repo.`date +%Y%m%d%H%M%S`.bak num=$(awk '/enabled=0/{print NR}' /etc/yum.repos.d/remi.repo | sed 'q') && sed -i ''$num'c enabled=1' /etc/yum.repos.d/remi.repo 显示已生效的源列表 yum repolist 更新组件并安装必要的软件 yum makecache && yum update -y && yum -y install wget vim zip unzip gzip xz bzip2 l*zip p7zip # 从remi源安装phpmyadmin yum install -y phpmyadmin --enablerepo=remi 通过yum安装的phpmyadmin的安装路径是:`/usr/share/phpMyAdmin` 同时自动将添加apache配置文件到`/etc/httpd/conf.d/phpMyAdmin.conf` ``` # phpMyAdmin - Web based MySQL browser written in php # # Allows only localhost by default # # But allowing phpMyAdmin to anyone other than localhost should be considered # dangerous unless properly secured by SSL Alias /phpMyAdmin /usr/share/phpMyAdmin Alias /phpmyadmin /usr/share/phpMyAdmin <Directory /usr/share/phpMyAdmin/> AddDefaultCharset UTF-8 <IfModule mod_authz_core.c> # Apache 2.4 Require local </IfModule> <IfModule !mod_authz_core.c> # Apache 2.2 Order Deny,Allow Deny from All Allow from 127.0.0.1 Allow from ::1 </IfModule> </Directory> <Directory /usr/share/phpMyAdmin/setup/> <IfModule mod_authz_core.c> # Apache 2.4 Require local </IfModule> <IfModule !mod_authz_core.c> # Apache 2.2 Order Deny,Allow Deny from All Allow from 127.0.0.1 Allow from ::1 </IfModule> </Directory> # These directories do not require access over HTTP - taken from the original # phpMyAdmin upstream tarball # <Directory /usr/share/phpMyAdmin/libraries/> Order Deny,Allow Deny from All Allow from None </Directory> <Directory /usr/share/phpMyAdmin/setup/lib/> Order Deny,Allow Deny from All Allow from None </Directory> <Directory /usr/share/phpMyAdmin/setup/frames/> Order Deny,Allow Deny from All Allow from None </Directory> # This configuration prevents mod_security at phpMyAdmin directories from # filtering SQL etc. This may break your mod_security implementation. # #<IfModule mod_security.c> # <Directory /usr/share/phpMyAdmin/> # SecRuleInheritance Off # </Directory> #</IfModule> ``` 注意: 在此默认配置下,只允许从本机localhost或者127.0.0.1访问phpmyadmin,要启用远程访问,需要把上面的配置文件中`< Directory /usr/share/phpMyAdmin/>`段 的 1、Apache 2.2:`Deny from All`注释或者删掉,并将`Allow from 127.0.0.1` 改为 `Allow from 0.0.0.0` 2、Apache 2.4:`Require local` 改为 `Require all granted` 改完如下: # phpMyAdmin - Web based MySQL browser written in php # # Allows only localhost by default # # But allowing phpMyAdmin to anyone other than localhost should be considered # dangerous unless properly secured by SSL Alias /phpMyAdmin /usr/share/phpMyAdmin Alias /phpmyadmin /usr/share/phpMyAdmin <Directory /usr/share/phpMyAdmin/> AddDefaultCharset UTF-8 <IfModule mod_authz_core.c> # Apache 2.4 # Require local Require all granted </IfModule> <IfModule !mod_authz_core.c> # Apache 2.2 Order Deny,Allow # Deny from All Allow from 0.0.0.0 </IfModule> </Directory> <Directory /usr/share/phpMyAdmin/setup/> <IfModule mod_authz_core.c> # Apache 2.4 Require local </IfModule> <IfModule !mod_authz_core.c> # Apache 2.2 Order Deny,Allow Deny from All Allow from 127.0.0.1 </IfModule> </Directory> # These directories do not require access over HTTP - taken from the original # phpMyAdmin upstream tarball # <Directory /usr/share/phpMyAdmin/libraries/> Order Deny,Allow Deny from All Allow from None </Directory> <Directory /usr/share/phpMyAdmin/setup/lib/> Order Deny,Allow Deny from All Allow from None </Directory> <Directory /usr/share/phpMyAdmin/setup/frames/> Order Deny,Allow Deny from All Allow from None </Directory> # This configuration prevents mod_security at phpMyAdmin directories from # filtering SQL etc. This may break your mod_security implementation. # #<IfModule mod_security.c> # <Directory /usr/share/phpMyAdmin/> # SecRuleInheritance Off # </Directory> #</IfModule> # 为配置文件增加短语密码 用编辑器打开目录`/usr/share/phpMyAdmin/libraries/`中的`config.default.php`文件 vim /usr/share/phpMyAdmin/libraries/config.default.php 查找下面这行:`$cfg['blowfish_secret'] = '';` 在''里随意填写一串32位的字符串,如 > XPCh5RZfEeMg42e2hXneRqvGtvr2HYUp ,保存退出。 用编辑器打开目录`/etc/phpMyAdmin/config.inc.php`文件 vim /etc/phpMyAdmin/config.inc.php 查找下面这行:`$cfg['blowfish_secret'] = '';` 在''里随意填写一串32位的字符串,如 > XPCh5RZfEeMg42e2hXneRqvGtvr2HYUp ,保存退出。 # 为nginx添加配置文件 通过yum安装的phpmyadmin默认只自动添加apache配置文件,如果使用的是nginx,需要手动添加配置文件到nginx配置文件夹,例如 `/etc/nginx/default.d/phpmyadmin.conf` vim /etc/nginx/default.d/phpmyadmin.conf 或者 `/etc/nginx/templates/phpmyadmin.tmpl` vim /etc/nginx/templates/phpmyadmin.tmpl 输入以下内容: location /phpMyAdmin { root /usr/share; index index.php; } location ~ ^/phpMyAdmin/.+\.php$ { root /usr/share/; fastcgi_pass php_workers; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } location ~* ^/phpMyAdmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ { root /usr/share/; access_log off; } location ^~ /phpMyAdmin/setup { root /usr/share; allow 127.0.0.1; deny all; } location ^~ /phpMyAdmin/(libraries|setup/frames|setup/libs) { root /usr/share; deny all; } location /phpmyadmin { rewrite ^/* /phpMyAdmin last; } 其中,`fastcgi_pass php_workers;` 是指向`php-fpm`解释器,请按照本地的实际设置进行修改 **注意:** `location{ }` 应位于某个主机配置 `server{ }` 的内部,所以,在默认主机或某个主机配置文件的 `server{ }` 中,应包括下面这句 server{ ...... include /etc/nginx/default.d/phpmyadmin.conf; # 或者 include /etc/nginx/templates/phpmyadmin.tmpl; ...... } 设置访问权限,假设运行nginx的用户是nginx.nginx,使它具有读写以下路径的权限 chown nginx.nginx -R /var/lib/php /var/lib/phpMyAdmin/ 有的nginx版本还是用到了`/var/lib/nginx` chown nginx.nginx -R /var/lib/nginx # 使用htpasswd实现apache/nginx验证访问 基于安全的考虑,我们不希望phpMyAdmin的门户对外公开,可以使用htpasswd实现apache/nginx验证访问。 ## 安装htpasswd htpasswd是Apache密码生成工具,nginx支持auth_basic认证,因此我门可以将生成的密码用于nginx中,先安装工具: yum -y install httpd-tools 参数如下: -c 创建passwdfile.如果passwdfile 已经存在,那么它会重新写入并删去原有内容. -n 不更新passwordfile,直接显示密码 -m 使用MD5加密(默认) -d 使用CRYPT加密(默认) -p 使用普通文本格式的密码 -s 使用SHA加密 -b 命令行中一并输入用户名和密码而不是根据提示输入密码,可以看见明文,不需要交互 -D 删除指定的用户 ## 生成密码 #进入web server的配置文件目录 cd /etc/httpd cd /etc/nginx #生成密码 htpasswd -c ./phpmyadmin.users username #执行上命令后会要求输入两次密码,./phpmyadmin.users 是在当前目录下创建密码文件phpmyadmin.users ,username即为需要设置的账号 如果你不想安装htpasswd,也可以通过在线 htpasswd 生成器来完成。 ## 载入配置 ### nginx 接下来在nginx配置文件中`location /phpMyAdmin { }`段和其他包括`/phpMyAdmin`的`location{ }`内,加入如下两行,保存。 vim /etc/nginx/templates/phpmyadmin.tmpl location /phpMyAdmin { ..... auth_basic "Please input password"; #这里是验证时的提示信息 auth_basic_user_file /etc/nginx/phpmyadmin.users; } 测试配置文件 nginx -t 重启服务 # Centos 6 service nginx restart # Centos 7 systemctl restart nginx ### httpd 在站点配置文件中的`<Directory /usr/share/phpMyAdmin/> </Directory>`中加入 AllowOverride AuthConfig //这个相当于打开认证的开关 AuthName "Please input password" //自定义认证的名字,作用不大 AuthType Basic //认证的类型,一般为Basic,其他类型没用过 AuthUserFile /etc/httpd/phpmyadmin.users //指定密码文件所在位置 require valid-user //指定需要认证的用户为全部可用用户 测试配置文件 httpd -t 重启服务 # Centos 6 service httpd restart # Centos 7 systemctl restart httpd ## 访问测试 再访问站点,提示需要输入用户名和密码才可以访问,这样可避免被弱口令扫描,无疑再上了一把锁。
blog
linux
phpmyadmin
centos
linux
该博客文章由作者通过
CC BY 4.0
进行授权。
分享
最近更新
ESXi 6.7 离线升级 7.0U3
N5105 软路由安装 ESXi 7 直通核显给 Debian / Ubuntu 虚拟机通过 Docker 实现 jellyfin 硬件转码视频文件(硬解/编码)
Leanote 支持 emoji、chart.js 以及 mermaid
手把手教你自建开源免费私有云盘服务nextcloud 14
在Centos 6和7上安装设置MySQL / MariaDB 5.5或以上的版本
热门标签
linux
centos
python
ESXi
windows
leanote
mysql
font
Docker
phpmyadmin
文章目录
在Centos 6和7上安装设置MySQL / MariaDB 5.5或以上的版本
在Centos 6和7上安装设置php 5.6/7.0/7.1/7.2