安装phpmyadmin

有很多朋友用惯了phpmyadmin,不习惯用mysql客户端(比如nacicat)。

并且他们根据网上的教程,自己安装过程中总是出现一大堆问题和报错,太不靠谱了。

所以,我就亲自示范 来讲解如何安装nginx下的phpmyadmin

还是以ubuntu服务器为例讲解。

第一步,安装phpmyadmin源代码

注意:如果你之前已经安装配置过phpmyadmin,需要先卸载再重新安装。
卸载phpmyadmin命令:

sudo apt-get purge phpmyadmin

再安装phpmyadmin:
因为ubuntu下已经有phpmyadmin的源,直接用命令安装即可。
安装phpmyadmin命令:

sudo apt-get install phpmyadmin

会出现图形化界面,有个非常重要的地方需要注意下,看图,
tab键来切换。



这样就安装成功了。

注意:
第一步里不要选apache2或者lighttpd,因为我们的nginx不在这2个选项里面,直接按tab跳到<Ok>就行。

第二步,设置phpmyadmin路径

因为用命令安装的phpmyadmin默认是存放在/usr/share/phpmyadmin下面,而我们的nginx指定的项目路径是在/var/www/html下面。
所以我们创建个软链接,把/usr/share/phpmyadmin指向/var/www/html

sudo ln -s /usr/share/phpmyadmin /var/www/html

可以看到: 默认是777权限,并且所有者是root用户。

这样的话,你就可以直接在浏览器通过 IP地址/phpmyadmin来访问了。
比如

http://120.78.205.87/phpmyadmin/

但是,这样访问会出现403 forbidden的错误。

为什么呢?

因为在nginx默认的虚拟主机配置文件里,没有配置php解析器。
我们需要修改下nginx默认的虚拟主机配置文件。

第三步,修改nginx默认的虚拟主机配置文件

默认的虚拟主机配置文件路径为/etc/nginx/sites-available/default

sudo vim /etc/nginx/sites-available/default

改为:

server {
        listen 80 default_server;
        listen [::]:80 default_server;
        # SSL configuration
        #
        # listen 443 ssl default_server;
        # listen [::]:443 ssl default_server;
        #
        # Note: You should disable gzip for SSL traffic.
        # See: https://bugs.debian.org/773332
        #
        # Read up on ssl_ciphers to ensure a secure configuration.
        # See: https://bugs.debian.org/765782
        #
        # Self signed certs generated by the ssl-cert package
        # Don't use them in a production server!
        #
        # include snippets/snakeoil.conf;
        root /var/www/html;
        # Add index.php to the list if you are using PHP
        index index.html index.htm index.php index.nginx-debian.html;
        server_name _;
        location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
                try_files $uri $uri/ =404;
        }
        location /phpmyadmin {
            index index.php;
        }
        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
        #
        #       # With php7.0-cgi alone:
        #       fastcgi_pass 127.0.0.1:9000;
        #       # With php7.0-fpm:
                fastcgi_pass unix:/run/php/php7.0-fpm.sock;
        }
        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #       deny all;
        #}
}

保存后,重启nginx服务器。

sudo systemctl restart nginx

第四步 测试

最后再测试下,正常情况下应该没问题了。
比如:

http://120.78.205.87/phpmyadmin/


其余的话

其实真的不建议用phpmyadmin,因为web端是最容易受攻击的,特别是phpmyadmin,如果受攻击 获取了root权限,那后果不堪设想。
我们一般建议用mysql客户端,比如nacicat,虽然难操作,但是安全很多。

既然这么不安全,那么能不能稍微改完全一点呢?

可以的,我们可以这么做:

  1. 更改默认的phpMyAdmin URL
  2. 设置Nginx身份验证网关

更改默认的phpMyAdmin URL

也就是说把urlhttp://IP/phpmyadmin改成其他名字,比如改成
http://IP/nothingtosee
那么我们就直接通过http://IP/nothingtosee去访问phpmyadmin就行了。
比如:

http://120.78.205.87/nothingtosee/

先在服务器,把phpmyadmin文件夹改成nothingtosee;

再测试:

http://120.78.205.87/phpmyadmin/

http://120.78.205.87/nothingtosee/

设置Nginx身份验证网关

什么意思呢?
就是另外设个http弹窗密码,只有这个弹窗密码输入对了,才显示phpmyadmin登录界面。
这样:

所以你需要先想个用户名和密码。
比如我的http弹窗用户名和密码是
zou123456
这个密码不能明文写,需要加密处理下:

也就是输入openssl passwd命令,输入密码,给密码加密。

然后再创建一个文件,来保存用户名和密码。

sudo vim /etc/nginx/pma_pass

文件里的内容是:

zou:FMMbNGcvZZ/us

zou就是用户名。
FMMbNGcvZZ/us就是加密后的密码。

注意:用户名和密码用:隔开。

用户名和密码的文件保存好了,我们下一步就需要配置nginx虚拟主机来读取该文件来验证。

sudo vim /etc/nginx/sites-available/default

添加如下代码:

location /nothingtosee {
	auth_basic "Admin Login";
	auth_basic_user_file /etc/nginx/pma_pass;
}

保存后,重启nginx服务

sudo systemctl restart nginx

前台测试就ok了。

如何禁止root登录phpmyadmin?

为了安全,我们可以禁止root登录。
到phpmyadmin的安装目录。
本教程的是在/var/www/html,编辑配置文件config.inc.php

cd /var/www/html
vim config.inc.php

搜索下AllowRoot
如果存在的话就改成false

$cfg['Servers'][$i]['AllowRoot'] = FALSE;

如果不存在的话就添加一行

$cfg['Servers'][$i]['AllowRoot'] = FALSE;

这样就ok了。
前台用root登录测试下,看是否生效。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值