帮助中心 >  技术知识库 >  网站相关 >  建站知识 >  Nginx设置alias别名目录访问phpmyadmin

Nginx设置alias别名目录访问phpmyadmin

2016-09-16 22:26:52 8097

引言:Nginx服务器通过设置alias别名可以使特定的目录(phpmyadmin目录)不出现在网站根目录下面, 即使网站根目录被攻破,也不会影响到phpmyadmin目录里面的文件。

说明:

站点:http://www.landui.com/,如下图

blob.png


站点根目录:/usr/local/nginx/html/

Nginx运行账户:www

Nginx运行账户组:www

phpmyadmin目录:/home/phpmyadmin

MySQL用户名:root

密码:123456

实现目的:通过http://www.landui.com/phpmyadmin访问这个地址,实现对MySQL数据库的管理

操作步骤

1、下载phpmyadmin

 cd /home

 wget http://www.landui.com/project/phpmyadmin/phpMyAdmin/3.5.1/phpMyAdmin-3.5.1-all-languages.tar.gz    #下载

tar xvfz  phpMyAdmin-3.5.1-all-languages.tar.gz       #解压

mv   phpMyAdmin-3.5.1-all-languages  phpmyadmin       #更改文件夹名字为phpmyadmin

未修改nginx配置文件之前,访问http://www.landui.com/phpmyadmin如下?,提示404错误,找不到文件

blob.png


2、修改nginx配置文件

cp /usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf/nginx.confbak  #备份配置文件

vi /usr/local/nginx/conf/nginx.conf  #修改配置文件,在

server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
            index index.php  index.html index.htm;
        }

下面添加以下内容:

location /phpmyadmin {
        alias /home/phpmyadmin;
        index index.php;
    }

location ~ /phpmyadmin/.+.php$ {
    if ($fastcgi_script_name ~ /phpmyadmin/(.+.php.*)$) {
         set $valid_fastcgi_script_name $1;
        }
    include fastcgi_params;
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    fastcgi_param SCRIPT_FILENAME /home/phpmyadmin/$valid_fastcgi_script_name;
    }

:wq!   #保存,退出


3、设置/home/phpmyadmin目录权限

chown www.landui.com /home/phpmyadmin -R  #修改目录所有者为www账号

service nginx restart   #重启nginx

service php-fpm restart    #重启php-fpm

4、现在可以使用域名+phpmyadmin来访问了

 http://www.landui.com/phpmyadmin/,出现下面的界面


blob.png

输入MySQL的账号密码,点执行,即可登录到phpmyadmin的管理界面,如下图

blob.png

至此,Nginx设置alias别名目录访问phpmyadmin教程完成


备注:
      一、在登录phpmyadmin管理数据库,会出现“配置文件现在需要一个短语密码”的警告

     解决方法:
     打开目录phpmyadmin/libraries中的config.default.php文件
     查找下面这行:$cfg['blowfish_secret'] = '这里就是需要的短语密码';(短语密码请随意填写)
     比如修改为:$cfg['blowfish_secret'] = 'cookiess'
     查找:$cfg['Servers'][$i]['auth_type'] = ‘cookie’  #后面的值默认为cookie,不做更改

     原因:会出现这个问题,就是因为这段:$cfg['Servers'][$i]['auth_type'] = ‘cookie'
     这里有四?值可供填写:cookie http HTTP config
     config方式即输入phpmyadmin的访问网址即可直接进入,无需输入用户名和密码,是不安全的,不推荐使用。
     cookie,http或HTTP时,登录phpmyadmin需要数据用户名和密码进行验证,
     具体如下:PHP安装模式为Apache,可以使用http和cookie;PHP安装模式为CGI,可以使用cookie
     通常这个值设置为cookie即可

二、phpmyadmin 高级功能未全部设置,部分功能不可用。要查出原因请点这里

    解决方法:
    1、在mysql中创建名为phpmyadmin的数据库。
    2、将phpmyadmin安装目录下的scripts/create_tables.sql导入这个数据库。
    3、修改config.inc.php文件,内容如下:
    /* User for advanced features */
    $cfg['Servers'][$i]['controluser'] = 'root'; (你的用户名)
    $cfg['Servers'][$i]['controlpass'] = '123456'; (你的密码)
   /* Advanced phpMyAdmin features */
   $cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
   $cfg['Servers'][$i]['bookmarktable'] = 'pma_bookmark';
   $cfg['Servers'][$i]['relation'] = 'pma_relation';
   $cfg['Servers'][$i]['table_info'] = 'pma_table_info';
   $cfg['Servers'][$i]['table_coords'] = 'pma_table_coords';
   $cfg['Servers'][$i]['pdf_pages'] = 'pma_pdf_pages';
   $cfg['Servers'][$i]['column_info'] = 'pma_column_info';
   $cfg['Servers'][$i]['history'] = 'pma_history';
   $cfg['Servers'][$i]['designer_coords'] = 'pma_designer_coords';
   /* Contrib / Swekey authentication */
   // $cfg['Servers'][$i]['auth_swekey_config'] = '/etc/swekey-pma.conf';
  $cfg['Servers'][$i]['tracking'] = 'pma_tracking';
  $cfg['Servers'][$i]['userconfig'] = 'pma_designer_coords';


提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: