/ 中存储网

Nginx服务器中以alias别名方式访问phpMyAdmin

2014-07-13 15:46:22 来源:中存储网

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

说明:

站点:http://192.168.21.160/,如下图

系统运维 温馨提醒:qihang01原创内容版权所有,转载请注明出处及原文链接

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

Nginx运行账户:www

Nginx运行账户组:www

phpmyadmin目录:/home/phpmyadmin

MySQL用户名:root

密码:123456

实现目的:通过访问这个地址,实现对MySQL数据库的管理

操作步骤

1、下载phpmyadmin

cd /home

wget #下载

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

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

未修改nginx配置文件之前,访问如下图,提示404错误,找不到文件

系统运维 温馨提醒:qihang01原创内容版权所有,转载请注明出处及原文链接

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! #保存,退出

系统运维 温馨提醒:qihang01原创内容版权所有,转载请注明出处及原文链接

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

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

service nginx restart #重启nginx

service php-fpm restart #重启php-fpm

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

http://192.168.21.129/phpmyadmin/,出现下面的界面

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

至此,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';