phpmyadmin-配合nginx与php安装
1. 概况
phpMyAdmin是用来在网页端图形化操作MySQL数据库的工具,使用起来非常直观,目前最新版本是4.8.3。在搭建web集群架构时可能有这样的需求,数据库安装在专门的一台机器上,但是希望管理机器可以通过web界面操作数据库机器,这时就需要把phpMyAdmin安装在管理机器上,但是操作的是数据库机器的数据。
本文安装phpMyAdmin使用的是如下环境:
- phpMyAdmin-4.8.3-all-languages
- php7.1
- nginx1.14
- MySQL5.7
- CentOS7.5
- vmware12
- xshell5
- windows10
准备两台虚拟机,一台IP10.0.0.61是管理机器,上面安装nginx,php,phpMyAdmin,另一台是数据库机器,IP10.0.0.51,上面安装MySQL5.7
大致操作步骤如下:
- 安装php-7.1(webtatic源yum安装)
- 安装nginx-1.14(官方yum源)
- 安装MySQL-5.7(官方yum源-安装在10.0.0.51机器上)
- 授权远程连接用户账号和密码
- 下载phpMyAdmin-4.8.3(到官网下载)
- 简单优化下php和nginx
- 配置nginx配置文件
- 配置phpMyAdmin config.inc.php
- 浏览器访问
2. php-mysql-nginx-简单优化
全新安装MySQL5.7,授权远程连接用户,可参考如下命令:
[root@db01 ~]# hostname -I
10.0.0.51 172.16.1.51
[root@db01 ~]# mysql -uroot -p$(awk '/temporary password/ {print $NF}' /var/log/mysqld.log) \
--connect-expired-password -e "ALTER USER 'root'@'localhost' IDENTIFIED BY 'As4k.top'";
#创建账号并授权(这里把权限打满)
# mysql -uroot -pAs4k.top -e 'GRANT ALL PRIVILEGES ON *.* TO "as4k"@"%" IDENTIFIED BY "As4k.top"';
# mysql -uroot -pAs4k.top -e "CREATE DATABASE jpress";
对php和nginx简单优化,可参考如下命令:
[root@m01 ~]# hostname -I
10.0.0.61 172.16.1.61
#添加虚拟用户www
groupadd -g 666 www
useradd -u666 -g666 -s /sbin/nologin -M www
#设置nginx运行用户为www
sed -i '/^user/c user www;' /etc/nginx/nginx.conf
#设置nginx上传文件大小为2G
grep 'client_max_body_size' /etc/nginx/nginx.conf
[ $? -eq 1 ] && sed -i '/^http/a client_max_body_size 2048M;' /etc/nginx/nginx.conf
#设置php-fpm运行用户为www
sed -i '/^user/c user = www' /etc/php-fpm.d/www.conf
sed -i '/^group/c group = www' /etc/php-fpm.d/www.conf
#设置php上传文件大小为2G
sed -i '/^post_max_size/c post_max_size = 2048M' /etc/php.ini
sed -i '/^memory_limit/c memory_limit = 128M' /etc/php.ini
sed -i '/^upload_max_filesize/c upload_max_filesize = 2048M' /etc/php.ini
#重启nginx和php-fpm
systemctl restart nginx
systemctl enable nginx
systemctl restart php-fpm
systemctl enable php-fpm
#快速验证nginx和php是否配置正确
id www
netstat -lntup | egrep 'nginx|php'
ps aux | egrep 'nginx|php'
nginx -t
systemctl status nginx | grep running
systemctl status php-fpm | grep running
sed批量修改,一次性粘贴太多到Xshell中批量执行,似乎会导致错乱,不知为何,大家可以一块一块复制。
3. 配置nginx和phpMyAdmin
[root@m01 ~]# hostname -I
10.0.0.61 172.16.1.61
1 准备好phpMyAdmin代码
[root@m01 ~]# mkdir -p /code; cd /code; pwd
/code
[root@m01 code]# ll -lh
total 11M
drwxr-xr-x 12 root root 4.0K Aug 22 09:37 phpMyAdmin-4.8.3-all-languages
-rw-r--r-- 1 root root 11M Oct 2 18:36 phpMyAdmin-4.8.3-all-languages.zip
[root@m01 code]# unzip -q phpMyAdmin-4.8.3-all-languages.zip
[root@m01 code]# mv phpMyAdmin-4.8.3-all-languages phpmyadmin
phpMyAdmin-4.8.3-all-languages.zip在官网phpmyadmin.net下载
2 配置nginx phpmyadmin.conf
[root@m01 conf.d]# cat /etc/nginx/conf.d/phpmyadmin.conf
server {
listen 3307;
server_name 10.0.0.61;
root /code/phpmyadmin;
index index.php index.html;
location ~ \.php$ {
root /code/phpmyadmin;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
[root@m01 conf.d]# nginx -t
[root@m01 conf.d]# systemctl restart nginx
[root@m01 conf.d]# netstat -lntp | grep 3307
端口我用的是3307,用默认的80或其它都可,只要注意不要和系统内其它软件使用的端口冲突即可。
3 配置phpmyadmin config.inc.php
config.inc.php这个配置文件放在/code/phpmyadmin/也就是phpMyAdmin的安装目录,此配置文件是phpMyAdmin是安装官方要求手动安装phpMyAdmin配置的,具体细节可参考文末的链接,这里面主要就是用来配置远程数据库机器的信息,在没有安装phpMyAdmin之前,该文件也可以访问10.0.0.61:3307/setup来自动生成,我已经生成好了,大家改把改把即可据为己用。
此刻打开
10.0.0.61:3307/setup会报错,原因见下文。
[root@m01 ~]# vim /code/phpmyadmin/config.inc.php
<?php
/*
* Generated configuration file
* Generated by: phpMyAdmin 4.8.3 setup script
* Date: Tue, 02 Oct 2018 12:46:28 +0000
* config.inc.php
*/
/* Servers configuration */
$i = 0;
/* Server: 172.16.1.51 [1] */
$i++;
$cfg['Servers'][$i]['verbose'] = '';
$cfg['Servers'][$i]['host'] = '172.16.1.51';
$cfg['Servers'][$i]['port'] = 3306;
$cfg['Servers'][$i]['socket'] = '';
$cfg['Servers'][$i]['auth_type'] = 'cookie';
$cfg['Servers'][$i]['user'] = 'as4k';
$cfg['Servers'][$i]['password'] = 'As4k.top';
/* End of servers configuration */
$cfg['DefaultLang'] = 'zh_CN';
$cfg['ServerDefault'] = 1;
$cfg['blowfish_secret'] = 'b:*hP-87360)+znI#P[/fKC@fH~gvkbW';
$cfg['UploadDir'] = '';
$cfg['SaveDir'] = '';
?>
可以看到,把数据库主机IP,端口,授权账号密码改成自己的,即可使用。
4 在浏览器中访问10.0.0.61:3307
此时你在浏览器中访问,会看到下面这张错误截图:

这个错误也让我忙活了很久,百度和谷歌都没能给出让我信服的解释,上面这段英文大致的含义是说phpMyAdmin没有读取session的权限,phpMyAdmin-4.8官方教程也确实说到,需要启动php的session功能,但事实上php的session功能已经启动了,如下phpinfo()函数的截图所示:

如果大家观察/var/lib/php/session这个目录,会发现其所属用户"貌似"有点问题,如下:
[root@m01 ~]# ls -ld /var/lib/php/session
drwxrwx--- 2 root apache 6 Aug 25 22:50 /var/lib/php/session
而且有时/var/lib/php/session会提示并不存在,不管如何,新建该目录并更改所属用户身份,可解决phpMyAdmin上述报错问题,操作如下:
[root@m01 ~]# mkdir -p /var/lib/php/session
[root@m01 ~]# chown -R www:www /var/lib/php/session
不过再此我要说明,上述方法并不完善,事实上在我自己的机器是上做上述操作后,已经正常部署的wecenter服务,突然就打不开,提示错误也是和session有关,另外网上还有一些小道消息说把/var/lib/php/session权限直接打满(777),原理都是一样的,但都不能令人满意。权限修改完之后,phpMyAdmin立刻就能打开,如下:

登录远程数据库,必须使用已经准备好的授权账号,无法使用root用户直接登录。

关于session错误等问题,应当就是就是php不是官方源的问题
参考资料
官方安装帮助
https://docs.phpmyadmin.net/en/latest/require.html
作者:阿胜4K
出处:https://www.cnblogs.com/asheng2016/p/phpmyadmin.html
phpmyadmin-配合nginx与php安装的更多相关文章
- Nginx的编译安装及选项
编译安装Nginx1.安装常见的工具和库(GCC.PCRE.zlib.OpenSSL) Nginx是一个由C语言编写的,所以需要一个编译工具如GNU的GCC[root@www ~]# yum inst ...
- GridFS使用及配合nginx实现文件服务
Mongodb下GridFS使用及配合nginx实现文件服务 一.GridFS简介 GridFS是mongodb下用来存储文件的一种规范,所有官方支持的驱动均实现了GridFS规范. Mongodb本 ...
- 初识Nginx及编译安装Nginx
初识Nginx及编译安装Nginx 环境说明: 系统版本 CentOS 6.9 x86_64 软件版本 nginx-1.12.2 1.什么是Nginx? 如果你听说或使用过Apache软件 ...
- Haproxy配合Nginx搭建Web集群部署
Haproxy配合Nginx搭建Web集群部署实验 1.Haproxy介绍 2.Haproxy搭建 Web 群集 1.Haproxy介绍: a)常见的Web集群调度器: 目前常见的Web集群调度器分为 ...
- Nginx 的编译安装和URL地址重写
本文转自:http://www.178linux.com/14119#rd?sukey=ecafc0a7cc4a741b573a095a3eb78af6b4c9116b74d0bbc9844d8fc5 ...
- Nginx源码安装及调优配置
导读 由于Nginx本身的一些优点,轻量,开源,易用,越来越多的公司使用nginx作为自己公司的web应用服务器,本文详细介绍nginx源码安装的同时并对nginx进行优化配置. Nginx编译前的优 ...
- Linux 下的php,nginx,mysql的安装
yum -y install wget make vim install gcc gcc-c++ ncurses ncurses-devel autoconf libjpeg libjpeg-deve ...
- Nginx 介绍和安装
Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器. Nginx 是由 Igor Sysoev ...
- Nginx与Tomcat安装、配置与优化
Nginx与Tomcat安装.配置与优化 Nginx与Tomcat安装.配置与优化 Nginx的安装与使用 Nginx是一款优秀的反向代理服务器 安装: rpm(或者是pkg安装),是预编译好的程序包 ...
- Nginx简介与安装
| 简介 Nginx是一个高性能的HTTP和反向代理服务器,可以作为负载均衡服务器,也是一个IMAP/POP3/SMTP服务器.它的特点是占有内存少,并发能力强.目前有很多大型公司都在使用Nginx, ...
随机推荐
- EventHandler 与常见的.Net预定义委托
看着下面这两句事件定义及激发忽然有点不明白了, public event EventHandler<ExternalDataEventArgs> Submit; Submit(null, ...
- java基础---->java多线程的使用(十)
这里介绍一下java中关于线程状态的知识,主要通过代码演示各种状态出现的时机.少年时我们追求激情,成熟后却迷恋平庸,在我们寻找,伤害,背离之后,还能一如既往的相信爱情,这是一种勇气.每个人都有属于自己 ...
- echarts - 特殊需求实现代码汇总之【饼图】篇
2018-07-24 15:36:43 起 - 饼图单项不同颜色的设置 效果图: 实现: 说明: 其实很简单,就是设置全局的color属性即可.color属性可以是一套数组,里边的样式以字符串格式设置 ...
- python函数定义语法总结
见下面代码及注释: def calc(value): sum=0 for m in value: sum=sum+m return sum data=[1,2,3,4,5,6,7,8,9,10] pr ...
- ldap 配置过程详解
ldap常用名称解释 1.环境搭建 操作系统:centos6.5 x86_64关闭防火墙.selinux开启时间同步# crontab -e加入# time sync*/5 * * * * /usr/ ...
- C# IO流的操作(一)
C# IO流的操作非常重要,我们读写文件都会使用到这个技术,这里先演示一个文件内容复制的例子,简要说明C#中的IO操作. namespace ConsoleApplication1 { class P ...
- 玩node-images模块---Node.js轻量级跨平台图像编解码库
Node.js轻量级跨平台图像编解码库 github:https://github.com/zhangyuanwei/node-images Features 功能特性 轻量级:无需安装任何图像处理库 ...
- yii---获取当前sql语句
我们在用YII开发项目的时候,会查看当前执行的SQL语句来排查错误,那么YII该如何获取当前的SQL语句呢? $list = user::find()->where(['title'=>$ ...
- 8.20 前端 js
2018-8-20 17:40:12 js参考: https://www.cnblogs.com/liwenzhou/p/8004649.html 2018-8-20 20:33:31 css学完了 ...
- Spring Framework核心概念之Bean生命周期管理
目录 Spring Bean的生命周期 相关接口的分类 测试SpringBean生命周期的Demo程序 小结 Spring Bean的生命周期 Spring容器既Application或者WebApp ...