阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

使用Nginx搭建phpMyAdmin

200次阅读
没有评论

共计 4486 个字符,预计需要花费 12 分钟才能阅读完成。

Nginx 有什么用?

Nginx可读作 EngineX是由俄罗斯程序员 Igor Sysoev 开发的高性能的 web 服务器。
它采用了与 Apache 完全不同的模型,能够处理接收更多的请求。
由于 Nginx 优秀的性能,Nginx 几乎可以和 Apache 并驾齐驱。
对 Apache 来说,Nginx 可谓是后起之秀。
可以说 Apache 代表了经典,Nginx 则代表了新锐。
那 Nginx 具体有什么功能呢?

基本功能:
  • 静态资源的 web 服务器,能缓存打开的文件描述符。
  • http, smtp, pop3 协议的反向代理服务器,缓存、负载均衡。
  • 支持 FastCGI
  • 模块化,过滤器 zip,SSI 及图像大小调整
  • 支持 SSL。

需要注意的是:
a. 如果单纯只安装一个 Nginx 的软件包,服务器只会响应静态请求。
所以 Nginx 在配合 php-fpm 的时候就可以解析 php 网页的动态请求。
Apache 的时候,php 一般作为一个插件安装使用。
而 php-fpm 则是一个独立的进程,一般监听在 9000 端口。
b.Nginx 不仅作为 web 服务器具有高性能,而且作为反向代理服务器也是十分优秀的。
c. 与 Apache 的动态加载模块不同,nginx 虽然支持第三方模块,但是也需要编译。

扩展功能:
  • 基于名称和 IP 的虚拟主机
  • 支持长连接
  • 支持平滑升级
  • 定制访问日志,支持使用日志缓冲区提高日志存储性能
  • 支持 url 重写
  • 支持路径别名
  • 支持基于 IP 及用户的访问控制
  • 支持速率限制,支持并发数限制
    虽然看上去她好像跟 Apache 服务器没什么区别,下面我们将从几个方面与 Apache 进行对比。

Nginx 与 Apache 的不同之处

明明已经有 Apache 了,Nginx 有什么特别的好处吗?
  • Nginx 和 Apache 的最大 不同之处 ,在于其网络 IO 模型。
    上一次我们在讲解 LAMP 的时候有说过,Apache 最大支持 1024 最大请求。
    这个是由 Apache 的网络 IO 模型 Select() 决定的。
    Nginx 使用异步 IO 模型 Epoll(),则没有 Apache 最大并发 1024 个请求这种限制。
    其实 Select()最大并发 1024 也不少了,想想一天有 86400 秒,假如一秒并发 1024 个。
    不过这要建立在硬件性能满足最大请求的硬件基础上。因为不合穿的鞋怎么会让一个跑步运动员跑得快呢?
  • 配置文件相比较于 Apache,更加简单易懂。
    而 Apache 在这方面,如反向代理的配置都相对麻烦。
    并且 Nginx 有很详尽的官方文档。
    例如 Apache 将动态请求通过 fastcgi 转发给 php-fpm,或者 ajp 协议转发给 tomcat,在配置上都没有 Nginx 直观。

  • 作为反向代理服务器的时候,有健康状态检测。
    能够监测后端的主机,如果有下线的话则不会到代理到下线的主机上。
    自带健康状态监测功能,如果是 lvs 则需要手动编写脚本来监测后端主机的状态。

  • Nginx 更加轻量
    响应请求的时候,Nginx 占用的内存更加的少。

虽然 Nginx 还有很多很吸引人的地方,但是我觉得这三点是我感受最深的。
往后的文章里,在讲反向代理的时候我们也会使用到 Nginx。
如果以后时间比较充足的话,我还会配置一次 Apache 反向代理到 tomcat。
到时候大家可以自行比较一下两者在实现同样功能上到底有什么不同。

使用 Nginx 搭建 phpMyAdmin

phpMyAdmin 是一个图形化管理 MySQL 数据库的一个工具。
他可以配置在 web 服务器上,用于统计数据库信息,备份数据库,实现增删改查等功能。
phpMyAdmin 十分好用,而且直观。

主机名 主机地址
node1 192.168.2.201  

本次使用的系统为 CentOS7.1,数据库:MariaDB-5.5.50,web 服务器:nginx-1.10.2,phpMyAdmin-4.6.5.2
注意:系统关闭了 selinux,以及 iptables。

由于这次我们需要安装 phpMyAdmin 的高版本,需要 php5.5+ 的版本。
所以我们需要先配置一个 remi 的 yum 源,而这个源在清华大学有镜像。
Remi’s RPM repository

而 phpMyAdmin 我们则可以访问他的官网
phpMyAdmin 官方网站

(1)配置 remi 镜像

  [root@bc ~]# wget https://mirrors.tuna.tsinghua.edu.cn/remi/enterprise/remi-release-7.rpm
  [root@bc ~]# yum install remi-release-7.rpm

在官网中选择合适的镜像安装,因为我们这里使用的是 CentOS7,所以选择的是 7 的包。

(2)安装需要的组件

  [root@bc ~]# yum install nginx mariadb mariadb-server php-mysql  php56-php-fpm php56-php-mbstring php56-php-mysqlnd

这里需要注意的是,这次我们选择了 php56-php-fpm,也就是 php5.6 版本的 php-fpm。
系统默认提供的 php-fpm 是 5.4 版本的。

(3)下载 phpMyAdmin,并解压放置在 Nginx 的 web 根目录下

  [root@bc ~]# wget https://files.phpmyadmin.net/phpMyAdmin/4.6.5.2/phpMyAdmin-4.6.5.2-all-languages.tar.gz
  [root@bc ~]# tar xf phpMyAdmin-4.6.5.2-all-languages.tar.gz 
  [root@bc ~]# cp -Ra /root/phpMyAdmin-4.6.5.2-all-languages /usr/share/nginx/html/pma/
  [root@bc ~]# chown nginx.nginx -R /usr/share/nginx/html/pma

(4)启动 mariadb 并初始化安全设置

[root@bc ~]# systemctl start mariadb.service
[root@bc ~]# mysql_secure_installation

这里主要是设置密码,以及清除一些测试库等。
输出结果挺长的就不截取了。
待会儿在 phpMyAdmin 的页面上登陆的账号密码其实就是这里设置的。

(5)修改 nginx 设置

[root@bc ~]# vim /etc/nginx/nginx.conf
    server {listen       80 default_server;
        server_name  node1.bc.com;
        root         /usr/share/nginx/html/pma;
        index        index.php index.html;

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;

        location / { }

        location ~ \.php$ {
            root           html/pma/;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /usr/share/nginx/html/pma/$fastcgi_script_name;
            include        fastcgi_params;
        }
    }

(6)修改 phpMyAdmin 的配置

[root@bc ~]# cp /usr/share/nginx/html/pma/config.sample.inc.php /usr/share/nginx/html/pma/config.inc.php 
[root@bc ~]# vim !$
  $cfg['blowfish_secret'] = '0OYNHGWmgBWP/GtG3hLVwYlCeH0ZBs4hew'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */

修改一行就可以了,这个主要是加密的字串,可以随便打一段进去,但是不要把我的这行复制进去。
需要注意的是,这个字符串需要在单引号里面,有一次眼神不好漏了一边单引号,结果报错了好久都没有找出问题。

(7)重启 nginx 以及启动 php-fpm

[root@bc ~]# systemctl restart nginx.service 
[root@bc ~]# systemctl start php56-php-fpm.service

如果启动 nginx 不成功,可以使用 nginx - t 来测试配置文件是否有语法错误。

(8)在浏览器上键入主机的 ip 地址就可以访问 phpMyadmin。

phpMyAdmin.jpg

这里输入的是刚才初始化数据库的时候,自己设置的账号密码。
注意:安装 phpMyAdmin 的时候,因为要安装 mbstring 和 mysqli 组件。
假如没有安装,这里就会报错。
不过这些在 remi 的源中有提供,默认的源也有提供,不过要安装对应版本。
这里安装的是 php56-php-fpm,所以安装 mbstring 的包名就是 php56-php-mbstring
安装组件之后,php-fpm 需要重启一下才能使组件生效。

(9)键入 MySQL 的账号密码就可以正常使用了!

phpMyAdmin 使用成功.jpg
 

CentOS 7 配置 phpMyAdmin 及实现 HTTPS 服务  http://www.linuxidc.com/Linux/2017-05/144022.htm

Ubuntu 16.04 LTS 安装 Apache2+PHP7.0+MySQL+phpMyAdmin 图文详解  http://www.linuxidc.com/Linux/2017-02/140098.htm

Ubuntu 16.04 安装 phpMyAdmin 数据库管理工具  http://www.linuxidc.com/Linux/2016-11/137483.htm

CentOS 7.3 下 phpMyAdmin 安装部署  http://www.linuxidc.com/Linux/2017-08/146018.htm

在 LAMP 基础上实现 SSL 功能并安装 phpMyAdmin http://www.linuxidc.com/Linux/2012-07/66905.htm

CentOS 7.2 编译安装方式搭建 phpMyAdmin  http://www.linuxidc.com/Linux/2017-09/146812.htm

Ubuntu Server 14.04 LTS 下搭建 LAMP 环境图文详解  http://www.linuxidc.com/Linux/2016-12/138758.htm

Ubuntu Server 16.04 下配置 LAMP 环境 http://www.linuxidc.com/Linux/2016-12/138757.htm

Ubuntu 14.04 配置 LAMP+phpMyAdmin PHP(5.5.9)开发环境 http://www.linuxidc.com/Linux/2014-10/107924.htm

phpMyAdmin 的详细介绍:请点这里
phpMyAdmin 的下载地址:请点这里

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-21发表,共计4486字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中