引言: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';