咨询热线:4006-75-4006
售前:9:00-23:30 备案:9:00-18:00 技术:7*24h
引言:Nginx服务器通过设置alias别名可以使特定的目录(phpmyadmin目录)不出现在网站根目录下面, 即使网站根目录被攻破,也不会影响到phpmyadmin目录里面的文件。
说明:
站点:http://www.landui.com/,如下图
站点根目录:/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错误,找不到文件
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/,出现下面的界面
输入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';